排序思想
学习带师
这个作者很懒,什么都没留下…
展开
-
LeetCode451按字符出现次序对字符串进行排序
题目: 给定一个字符串,请将字符串里的字符按照出现的频率降序排列。 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和't'都只出现一次。 因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。 思路:题目中提到按字符出现的频率排序,这正好符合桶排序的思想, 先用Map对字符串中的字符进行统计 创建一个桶,然后将字符...原创 2019-11-09 09:11:21 · 226 阅读 · 0 评论 -
LeetCode75颜色分类
题目: 给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例: 输入: [2,0,2,1,1,0] 输出: [0,0,1,1,2,2] 思路:标准的荷兰国旗问题: 荷兰国旗问题的模...原创 2019-11-08 12:01:40 · 60 阅读 · 0 评论 -
LeetCode215数组中第k个最大的元素
题目: 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4 思路: 可以利用类似快排的partition方法找到要分隔数组的数的下标,然后还要遍历数...原创 2019-11-07 11:48:17 · 47 阅读 · 0 评论 -
LeetCode347前k个高频元素
题目: 给定一个非空的整数数组,返回其中出现频率前k高的元素。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 说明: 你可以假设给定的k总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(n log n) ,n是...原创 2019-11-07 11:28:31 · 85 阅读 · 0 评论