
排序
铭节
这个作者很懒,什么都没留下…
展开
-
75. 颜色分类
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]方法一:官方apiclass Solution {public void sortColors(int[] nums) {Arrays.sort(nums);}}方法二:三指针,原创 2022-01-13 21:20:10 · 67 阅读 · 0 评论 -
451. 根据字符出现频率排序
给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。方法一:public String frequencySort(String s) { Map<Character,Integer> map = new HashMap<>(); for(int i=0;i&.原创 2022-01-13 17:59:16 · 75 阅读 · 0 评论 -
215. 数组中的第K个最大元素
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5方法一:先自动排序public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return nums[nums.length-k];}时间复杂度 O(NlogN),空间原创 2022-01-12 17:07:54 · 95 阅读 · 0 评论 -
347. 前 K 个高频元素
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]方法一:利用hashMap计算频率,然后ArrayList排序public int[] topKFrequent(int[] nums, int k) { Map<Integer, Integer> map = new HashMap<>(nums原创 2022-01-12 17:06:33 · 151 阅读 · 0 评论