当前位置:首页 > 未命名 > 正文内容

【解题报告】lintcode5寻找第k大数

u3blog8年前 (2016-05-16)未命名241

题意

寻找给定无序数组中第k大的数

解法

设置一个标记数组,扫描给出的数组,在标记数组对应下标的数字上加一 然后遍历标记数组,当综合等于给出数组长度-k时,就找到了第k大数(此时标记数组的下标就是这个数字)

代码

class Solution {
    /*
     * @param k : description of k
     * @param nums : array of nums
     * @return: description of return
     */
     int[] num = new int[10000000];
    public int kthLargestElement(int k, int[] nums) {
        // write your code here
        for (int i =0;i < nums.length;i++)
        {
            num[nums[i]]++; 
        }
        int count = 0;
        int j = 0;
         if (nums.length - k != 0)
        for ( j = 0;count < nums.length - k;j++)
        {
            count += num[j];
        }
        else
        for (j = 0;num[j] == 0;j++){}
        return  j;
    }
};

扫描二维码推送至手机访问。

版权声明:本文由u3blog发布,如需转载请注明出处。

本文链接:https://u3blog.xyz/?id=402

分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。