文章目录
- 前言
- 一、最后一块石头的重量
- 1.1 题目描述
- 1.2 题目解析
- 1.2.1 算法原理
- 1.2.2 代码编写
- 1.2.3 题目总结
- 二、数据流中的第 K 大元素
- 2.1 题目描述
- 2.2 题目解析
- 2.2.1 算法原理
- 2.2.2 代码编写
- 2.2.3 题目总结
- 总结
前言
一、最后一块石头的重量
1.1 题目描述
描述:
有一堆石头,每块石头的重量都是正整数。
每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为
x和y,且x <= y。那么粉碎的可能结果如下:
- 如果
x == y,那么两块石头都会被完全粉碎;- 如果
x != y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回
0。
提示:
1 <= stones.length <= 301 <= stones[i] <= 1000
示例1:
1.2 题目解析
1.2.1 算法原理
1.2.2 代码编写
1.2.3 题目总结

二、数据流中的第 K 大元素
2.1 题目描述
描述:
设计一个找到数据流中第
k大元素的类(class)。注意是排序后的第k大元素,不是第k个不同的元素。请实现
KthLargest类:
KthLargest(int k, int[] nums)使用整数k和整数流nums初始化对象。int add(int val)将val插入数据流nums后,返回当前数据流中第k大的元素。
提示:
1 <= k <= 10^40 <= nums.length <= 10^4-104 <= nums[i] <= 10^4-104 <= val <= 10^4- 最多调用
add方法10^4次- 题目数据保证,在查找第
k大元素时,数组中至少有k个元素
示例1:
2.2 题目解析
2.2.1 算法原理
2.2.2 代码编写
2.2.3 题目总结
总结


