Leetcode 215. Kth Largest Element in an Array
来源:互联网 发布:windows清理垃圾命令 编辑:程序博客网 时间:2024/06/12 23:51
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.
For example,
Given [3,2,1,5,6,4]
and k = 2, return 5.
Note:
You may assume k is always valid, 1 ≤ k ≤ array's length.
思路是运用quick selection 和 quick sort 很像。
1、把数组里的一个数设为pivot, 把小于pivot的数放在左边,把大于pivot的数放在右边
2、比较k和left的大小,如果k大的话,就查找右半边,如果k小的话,就查找左半边
public class Solution { public int findKthLargest(int[] nums, int k) { return findKthLargest(nums, 0, nums.length - 1, nums.length - k); } public int findKthLargest(int[] nums, int start, int end, int k) { int pivot = nums[end]; int left = start; for (int i = start; i < end; i++) { if (nums[i] <= pivot) swap(nums, left++, i); } swap(nums,left,end); if (left == k) return nums[left]; else if (left < k) return findKthLargest(nums, left + 1, end, k); else return findKthLargest(nums, start, left - 1, k); } public void swap(int[] a, int i, int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; }}
0 0
- Leetcode Kth Largest Element in an Array
- Leetcode: Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- [LeetCode] Kth Largest Element in an Array
- [leetcode] Kth Largest Element in an Array
- leetcode--Kth Largest Element in an Array
- #leetcode#Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- 【Leetcode】Kth Largest Element in an Array
- Leetcode: Kth Largest Element in an Array
- Kth Largest Element in an Array -- leetcode
- [Leetcode]Kth Largest Element in an Array
- [LeetCode]Kth Largest Element in an Array
- *LeetCode-Kth Largest Element in an Array
- LeetCode----Kth Largest Element in an Array
- LeetCode Kth Largest Element in an Array
- leetcode-Kth Largest Element in an Array
- LeetCode -- Kth Largest Element in an Array
- 十二.javaweb之Cookie学习
- 十三.javaweb之HttpSession学习
- Give your spirit a break
- Maven项目配置默认JRE/JDK编译版本
- 《将博客搬至CSDN》
- Leetcode 215. Kth Largest Element in an Array
- linux虚拟机在NAT模式下连接外网并对其进行克隆
- Python学习笔记
- Core Java Chapter 3
- CCF NOI1045 元素之和
- c# 网络异步编程
- mybatis-generator 代码自动生成工具
- AngularJS学习(一)------AngularJS简介
- Github全面详解-08 上传本地项目到Github上