美文网首页
461. Kth Smallest Numbers in Uns

461. Kth Smallest Numbers in Uns

作者: 鸭蛋蛋_8441 | 来源:发表于2019-06-19 02:13 被阅读0次

    Description

    Find the kth smallest number in an unsorted integer array.

    Example

    Example 1:

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

    Output: 3

    Example 2:

    Input: [1, 1, 1], k = 2

    Output: 1

    Challenge

    An O(nlogn) algorithm is acceptable, if you can do it in O(n), that would be great.

    思路:

    用快速排序的同时,舍弃掉一半不存在答案的结果, 就可以优化时间复杂度。写代码的时候有几个坑要注意, 一是start, end不能直接用来当指针,因为后续判断区间的时候还要用, 二是在舍弃区间时要注意有三种可能情况,可能在左边,也可能在右边, 还可能在中间左右指针之间,三是如果答案落在右边区间,传递的参数就不是原先的k了, 要变成k-(left -start)

    这两个题是类似的就写到一起,唯一的区别就是一个是从大到小排序,另一个是从小到大。

    时间复杂度:

    O(n)

    代码:

    相关文章

      网友评论

          本文标题:461. Kth Smallest Numbers in Uns

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