zoukankan      html  css  js  c++  java
  • Leetcode-215. Kth Largest Element in an Array

    地址:https://leetcode.com/problems/kth-largest-element-in-an-array/

    描述:

    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.

    实例1:

    Input: [3,2,1,5,6,4] and k = 2
    Output: 5

    实例2:

    Input: [3,2,3,1,2,4,5,5,6] and k = 4
    Output: 4

    Note: 
    You may assume k is always valid, 1 ≤ k ≤ array's length.

    方法:

    public int findKthLargest(int[] nums, int k) {
            int start = 0, end = nums.length - 1, index = nums.length - k;
            while (start < end) {
                int pivot = partion(nums, start, end);
                if (pivot < index) start = pivot + 1;
                else if (pivot > index) end = pivot - 1;
                else return nums[pivot];
            }
            return nums[start];
        }
    
        private int partion(int[] nums, int start, int end) {
            int pivot = start, temp;
            while (start <= end) {
                while (start <= end && nums[start] <= nums[pivot]) start++;
                while (start <= end && nums[end] > nums[pivot]) end--;
                if (start > end) break;
                temp = nums[start];
                nums[start] = nums[end];
                nums[end] = temp;
            }
            temp = nums[end];
            nums[end] = nums[pivot];
            nums[pivot] = temp;
            return end;
        }
  • 相关阅读:
    所有者权益
    金融工具
    或有事项
    股份支付
    借款费用
    Keycode对照表
    js(jQuery)获取时间搜集
    jQuery实现CheckBox全选、全不选
    JS 截取字符串函数
    jQuery mouseenter与mouseleave
  • 原文地址:https://www.cnblogs.com/zimengfang/p/10798272.html
Copyright © 2011-2022 走看看