最小的k个数

Python:最小的 k 个数 牛客网上的剑指 offer的在线编程: 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 # -*- coding:utf-8 -*- ''' 最小的k个数 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 ''' c 阅读详情

1.题目

在这里插入图片描述

2.解法(使用插入排序)



import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
        
        ArrayList<Integer> result = new ArrayList<Integer>();
        if(k<= 0 || k > input.length)return result;
        //初次排序,完成k个元素的排序
         for (int i = 1; i < k; i++) {
             int j = i;
             int tmp = input[i];
             while(j > 0 && input[j-1] > tmp) {
                 input[j] = input[j-1];
                 --j;
             }
             input[j] = tmp;
         }
        
        //遍历后面的元素 进行k个元素的更新和替换
        for (int i = k; i < input.length; i++) {
            if (input[i] < input[k-1]) {
                int tmp = input[i];
                int j = k - 1;
                while (j > 0 && input[j-1] > tmp) {
                    input[j] = input[j-1];
                    --j;
                }
                input[j] = tmp;
            }
        }
        

        //把前k个元素返回
        for (int i = 0; i < k; i++)
            result.add(input[i]);
        return result;
    }
}

先排好前k个数,然后再1个1个的比
== 最坏情况下时间复杂度为O(n^2),空间复杂度为O(k)==

最小的 K 个数总结 最小的 K 个数 题目描述 给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组。(数据顺序不限) 解法一:先排序,后选择 使用快排将数组进行升序排序,然后取出前 K 个数即可。 void swap(vector<int>& array, int i, int j) { if (i != j) { int temp = array[i]; 阅读详情

相关推荐

电信光猫隐藏的VOIP功能揭秘:不用座机也能打电话(EasySip实战)

本文揭秘了电信光猫隐藏的VOIP功能,通过EasySip实战演示如何无需座机实现高清通话。详细解析了光猫的SIP协议支持、语音VLAN配置及网络架构优化,帮助用户利用现有设备提升通话质量并扩展设备兼容性,特别适合智能家居和企业级应用场景。

weixin_29268385的博客 767

28、最小的k个数(TopK)

文章目录题目描述:解题思路:1、完全排序O(n*logn)2、部分选择排序O(n*k)3、最大堆O(nlogk)4、基于快排的算法O(n) 题目描述:   输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 解题思路: 1、完全排序O(n*logn)   没什么好说的,先排序再选择前K个数。 class Solution { p...

青萍之末的博客 4831

施耐德 Modicon M580 ePAC 项目实战:从硬件选型到 Control Expert V15 组态

本文详细解析了施耐德 Modicon M580 ePAC 在工业自动化项目中的实战应用,从硬件选型到 Control Expert V15 组态的全流程。重点介绍了水处理站控制系统的硬件配置、网络架构设计、软件安装授权及程序框架开发,帮助工程师高效实施中大型控制系统项目。

weixin_33701617的博客 328

最小的K个数

题目 输入n个整数,找出其中最小的k个数。例如,输入4、5、1、6、2、7、3、8这8个数,则最小的4个数字是1,2,3,4.

Hello World 255

UE4_SpeedTree Shader源码分析

目录 1.UMaterialExpressionSpeedTree::Compile 2.Compiler->SpeedTree 3.GetSpeedTreeVertexOffset 4.Scene中的SpeedTree应用 (Scene->UpdateSpeedTreeWind) 5.GetSpeedTreeVertexOffsetInner 由于之后做风场,也需要在S...

zzgyy123的专栏 2632

IMU数据处理避坑指南:从理论到实践的加速度计重力消除方案

本文详细解析了IMU数据处理中的重力消除技术,从理论基础到实践应用,涵盖了加速度计和陀螺仪的核心问题。通过ROS2实战案例,介绍了静态标定与动态校准的技术对比,以及多传感器融合的进阶策略,帮助开发者避免常见陷阱,提升IMU数据处理的精度和效率。

purple的博客 741

【堆】最小的K个数

输入n个整数,找出其中最小的K个数 解法一: public static List<Integer> getMinKNum(int[] input, int k) { if(null == input || input.length == 0 || k <= 0){ return null; } PriorityQueue<Integer> l...

永生只是一场幻梦 2723

零代码搭建专业知识库:Wiki.js+cpolar让团队协作像写笔记一样简单

"项目文档又找不到了!“团队负责人小张第N次在群里看到这样的抱怨——技术文档分散在邮件、网盘和个人电脑里,新人入职要花一周熟悉文档位置,远程协作时版本混乱更是家常便饭。Wiki.js与cpolar内网穿透服务的出现,就像给团队协作装上了"中央大脑”,用写Markdown笔记的简单方式,搭建一个专业的知识库系统。普通人对知识管理的需求其实很简单:方便记录、容易查找、大家能用。但传统方案把这个过程搞得异常复杂:建服务器、配环境、学语法、搞权限……大部分团队还没开始就放弃了。

Yawesh的博客 2041

最小的k个数 — C++实现

题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 牛客网题目链接 解题思路 代码实现

Jeaten 945

小红书urlscheme和Activity

本文档详细介绍了小红书App的Deeplink跳转规范,涵盖了多个功能模块的跳转协议。主要内容包括:主页各Tab(关注、发现、购买)的跳转方式;不同类型笔记(图文/视频/长笔记)的详情页跳转参数;用户相关页面(主页/绑定/资料/消息等)的跳转协议;搜索功能(输入页/结果页)的跳转方式;以及话题、标签、专辑、H5页面等特殊场景的跳转实现。文档还提供了各跳转协议所需的参数说明,包括参数类型、默认值、是否必填等详细信息,并标注了不同版本和平台的兼容性要求。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 787

如何安装最新版本的 SAP ABAP Development Tool ( ADT ) ,并且能够随时升级

下载链接:https://tools.hana.ondemand.com/#abap 首先安装 Eclipse IDE for Java Developers 找到适合自己操作系统的 Eclipse 安装包: 安装之后,打开Eclipse: Install -> New Softwares, 输入 url:https://tools.hana.ondemand.com/latest 全部安装: 安装完毕之后,新建一个 ABAP Project,本地 SAP GUI 里添加的系统,会自动带出来:

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4288

n 个数中最小的 k 个数

1. 描述 输入 n 个整数,输出其中最小的 k 个。 2. 解法 一般的方法是用选择排序,直到k个最小的数产生。时间复杂度为O(nk),空间复杂度为O(n)。 或者是对这n个数用快速排序从小到大排好序后,输出前k个数,时间复杂度为O(nlogn),空间复杂度为O(n)。 但若数据量非常庞大,以至于整个内存空间都放不下,上面两种方法就无能为力了。 利用堆排序可以解决

songuo' s home 2013

零基础学simulink仿真建模--使用Simulink来构建一个混合动力无人机中燃料电池与锂电池协同控制的仿真模型

延长飞行时间:燃料电池的能量密度高于锂电池,适合长时间稳定供电。提高功率密度:锂电池能够快速响应瞬时高功率需求,比如起飞和加速阶段。优化能源管理:通过有效的能量管理系统,可以根据实际需求动态调整燃料电池和锂电池的工作状态,从而提高整体效率。通过上述步骤,我们简要介绍了如何基于Simulink实现混合动力无人机中燃料电池与锂电池协同控制的仿真模型。

amy_mhd的博客 191

最小k个数c语言_29.最小的K个数

点击上方蓝字,关注并星标,和我一起学技术.题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。输入实例输入:[4,5,1,6,2,7,3,8], 4返回值:[1,2,3,4]思路这是一道简单题,可以先把数组的元素排序好,然后取就好了。importjava.util.ArrayList;publicclass...

weixin_39965794的博客 207

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

最小K个数

反转链表题目描述分析与解答 题目描述 设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例: 输入: arr = [1,3,5,7,2,4,6,8], k = 4 输出: [1,2,3,4] 提示: 0 <= len(arr) <= 100000 0 <= k <= min(100000, len(arr)) 分析与解答 想简单点,就是排序问题,然后输出前k个元素即可。我们要掌握的是排序算法,因为快速排序是面试最常考的排序算法,也是各个算法库基本都会内置的排序

weixin_36389889的博客 353

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

数组中最小的K个数

思路:1、排序,取前k个元素;O(NlogN);2、分治,O(n),利用快排的思想;3、用set 维护最小的k个数,O(NlogK),可处理海量数据。

王二的专栏 1127

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

寻找最小的k个数

求第k小的数,该算法类主要逻辑在于类似于快排取出临界值p ,partition(int[] arr, int begin, int end),该方法返回临界值p,若k<p,那么最小的k个数一定在p的左边begin...p-1,若k>p,那么最小的k个数一定在p的右边p+..end.若相等,返回第k小的元素,arr[p-1];刚开始有序数组放入第一个元素也是有序的因此i从1开始,j指向i-1,该位置是有序数组的末尾位置,要跟有序数组里面所有元素比较插入到适当位置,因此j--,j+1指向新加入的元素。

qq_61551902的博客 786

n个数里最小的k个

链接 来源:牛客网 [编程题]n个数里最小的k个 找出n个数里最小的k个 输入描述: 每个测试输入包含空格分割的n+1个整数,最后一个整数为k值,n 不超过100。 输出描述: 输出n个整数里最小的k个数。升序输出 示例 输入 3 9 6 8 -10 7 -11 19 30 12 23 5 输出 -11 -10 3 6 7 解题思路: 只要将得到的数组排序好然后输出前k个最小的元素就可以了,...

weixin_44376490的博客 502

java——最小的K个数

给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。 数据范围:0≤k,n≤10000,数组中每个数的大0≤val≤1000 要求:空间复杂度 O(n) ,时间复杂度 O(nlogk)

m0_60867520的博客 689

最小的k个数python实现

一、问题:最小的K个数 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 二、解题思路 思路1:最简单的方案,对数组进行排序,取最小的k个 思路2:借鉴快速排序的思想,找partition的基准点povit,比较povit和k值的大小 思路3:大数据处理的思想,创建一个大小为k的数据容量,如果容器未满,直接存入容器中,如果容器已满, 和最大值进行比较,替换 思路4:构建堆,返回最小的k个元素 三、程序实现 impor

霜叶的博客 1676
上一篇: 排序算法1---冒泡、插入、希尔排序
下一篇: 数组中出现次数超过一半的数字
念殊15
博客等级 码龄8年 17粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值