输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2
输出:[1,2] 或者 [2,1]
示例 2:输入:arr = [0,1,2,1], k = 1
输出:[0]链接:https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcofclass Solution:def getLeastNumbers(self, arr: List[int], k: int) -> List[int]:if k >= len(arr):return arrdef quick_sort(l, r):i, j = l, rwhile i < j:while i < j and arr[j] >= arr[l]:j -=1while i < j and arr[i] <= arr[l]:i +=1arr[i], arr[j] = arr[j], arr[i]arr[l], arr[i] = arr[i], arr[l]if k < i:return quick_sort(l, i-1)if k > i:return quick_sort(i + 1, r)return arr[:k]return quick_sort(0, len(arr)-1)

Leetcode 剑指 Offer 40. 最小的k个数 (每日一题 20210825)相关推荐

  1. 【LeetCode】剑指 Offer 40. 最小的k个数

    [LeetCode]剑指 Offer 40. 最小的k个数 文章目录 [LeetCode]剑指 Offer 40. 最小的k个数 一.笨比解法 二.堆排序 三.快速选择 总结 一.笨比解法 选择排序变 ...

  2. 【Java】 剑指offer(40) 最小的k个数

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入n个整数,找出其中最小的k个数.例如输入4.5.1.6.2.7 ...

  3. 最小的k个数 java_【Java】 剑指offer(40) 最小的k个数

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 输入n个整数,找出其中最小的k个数.例如输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 思 ...

  4. 剑指 Offer 40. 最小的k个数

    题目 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 输入:arr = [3,2,1], k = 2 输 ...

  5. LeetCode_Heap_剑指 Offer 40. 最小的k个数 【堆,泛型实现,自定义比较器】【C++/java】【简单】

    目录 一,题目描述 英文描述 中文描述 示例与说明 二,解题思路 1,手动实现堆--C++泛型实现 2,手动实现堆--java泛型实现 3,快速使用堆--C++ 优先队列 pop_heap().pus ...

  6. 剑指offer 40.最小的 K 个数 python代码

    题目 寻找数组中的最小的k个数,也叫topk问题. 牛客网测试地址 注意: 牛客网的提交需要将最终的结果排序 思路 快速排序的 partition() 方法,会返回一个整数 j 使得 a[l-j-1] ...

  7. 【力扣刷题】剑指 Offer 40. 最小的k个数(大顶堆)

    题目: 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例: 输入:arr = [3,2,1], k = 2 ...

  8. 【算法】剑指 Offer 40. 最小的k个数 【重刷】

    1.概述 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 1: 输入:arr = [3,2,1], k ...

  9. 174. 地下城游戏;剑指 Offer 40. 最小的k个数;378. 有序矩阵中第K小的元素;703. 数据流中的第K大元素

    一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主. 骑士的初始 ...

最新文章

  1. SAP RETAIL 通过自动补货功能触发的采购申请有些啥特殊的地方?
  2. 可以由指令直接指定的I/O端口数(一共256个,从0到255一共256个端口号)
  3. 【Android】Vitamio 4.0 公测版发布(2013-05-28)
  4. app.vue只执行一次吗_面包可以只发酵一次吗?
  5. (46)分析 INT 0x2E 和 sysenter
  6. vs(visual studio)调试功能里各个按钮的意义及使用方法?
  7. 高仿国美在线底部代码实现
  8. vm linux数据恢复,VMWARE虚拟机数据恢复
  9. C++类对象创建过程揭密
  10. StringIndexOutOfBoundsException
  11. 请问投稿中要求上传的author_SCI投稿状态解析
  12. python爬虫之 网页正文提取方法
  13. 报错 UserWarning: No NMS is available. Please upgrade torchvision to 0.3.0+
  14. 浅谈企业IT技术运营中台
  15. 数据出境需“安检”,怎样才能合法合规
  16. 使用PHP实现文件上传
  17. CF676A Nicholas and Permutation 题解
  18. 电脑安装win10系统
  19. 关于px4源码中固定翼姿态控制
  20. mysql_native_password_连接报错'mysql_native_password'

热门文章

  1. Django Rest Framework
  2. Android GIS开发系列-- 入门季(11) Callout气泡的显示
  3. 阿里云前端周刊 - 第 13 期
  4. 自定义FragmentTabHost实现可控制是否保存fragment状态
  5. Android应用程序窗口(Activity)的视图对象(View)的创建过程分析
  6. mysql cluster 安装NDB二进制版本
  7. 养成一个习惯需要多久?
  8. 802.11ac/ax (wifi6)中的Beamforming技术介绍
  9. 由小游戏跳一跳想到的
  10. 图片渲染延迟_前向渲染与延迟渲染