美文网首页
模拟题 06 寻找k大

模拟题 06 寻找k大

作者: 格林哈 | 来源:发表于2020-08-29 08:44 被阅读0次
  • 题目
在未排序的数组中找到第 k 个最大的元素
  • 思路

    • 快排
  • 代码

public int findKthLargest(int[] nums, int k) {
            return find(nums,0,nums.length - 1,nums.length - k );
        }
        public int find(int[] nums, int begin, int end, int k) {
            int i = index(nums, begin, end);
            if(i  > k) {
                return find(nums,begin,i - 1, k);
            } else  if( i  < k) {
                return find(nums,i + 1, end, k);
            } else {
                return nums[i];
            }

        }

        public int index(int[] nums, int begin, int end) {
            if(begin < end) {
                int key = nums[begin];
                while (begin < end) {
                    while (begin < end && nums[end] > key  ) {
                        end --;
                    }
                    if(begin < end) {
                        nums[begin] = nums[end];
                        begin ++;
                    }
                    while (begin < end && nums[begin] < key) {
                        begin ++;
                    }
                    if(begin < end) {
                        nums[end] = nums[begin];
                        end -- ;
                    }

                }
                nums[begin] = key;
            }

            return begin;
        }

相关文章

  • 模拟题 06 寻找k大

    题目 思路快排 代码

  • golang 寻找第K大

    golang 代码如下

  • 寻找第k大的数

    目录:1、引子2、排序解决法3、类快排解法4、最小堆解法 1、引子 日常编码中,常见遇到这样的问题,“寻找最大的数...

  • Unity UGUI 原理篇(四):Event System M

    http://k79k06k02k.com/blog/440/unity/unity-ugui-原理篇四:even...

  • 算法-Review

    一组N个乱序数中寻找第K大的数 冒泡或者简单排序(时间复杂度:O(K * N))for(int i == 0 ; ...

  • 西藏

    5K,西藏10天游。 2017-06-15

  • django修行路(五)模板

    http://djangobook.py3k.cn/2.0/chapter06/

  • 寻找数组中第K大的元素

    问题 tag: Medium 分析 这题最简单的做法是将数组排序,然后直接返回第K大的元素。复杂度为:O(Nlog...

  • 快慢指针的算法应用

    快慢指针主要解决的问题: 寻找/删除第K个节点; 有关链表环问题解法:寻找/删除第K个节点。 问题一: 给定任意一...

  • 赶海

    大晴天! 带上k和r去赶海,k出来惯了,r 睡了一个大觉。我在寻找上周去崂山吃的海木耳,m给我指点哪里的多,蹲着拔...

网友评论

      本文标题:模拟题 06 寻找k大

      本文链接:https://www.haomeiwen.com/subject/ceedsktx.html