LeetCode刷题笔记——HOT100面试题(5)
快速排序
使用快速排序的partition
函数求第K个最大的元素。
1 | import java.util.Random; |
二维数组的排序
对每个区间按照首位元素排序。如果区间1的右边界大于区间2的左边界,则可以合并,右边界取两者右边界的较大者;否则区间2成为新的区间加入结果集合。
1 | class Solution { |
只需要考虑同时占用的会议室的最大值,无需考虑是哪个会议开始或结束。
1 | class Solution { |
先按照身高从高到低的顺序排列,相同的身高的按照第二项的值从小到大排序;首先安排身高高的,再将剩下的身高低的逐个插入有序的队列中。
1 | class Solution { |
二分查找
二分查找,根据nums[mid]
与两边的大小关系,确定旋转发生在中点的哪一侧,缩小目标数所在的区间。
1 | class Solution { |
查找目标元素在数组中出现的左边界和右边界。参见《剑指offer》数字在排序数组中出现的次数。
1 | class Solution { |