最小的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 阅读详情

题目描述

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

class Solution {
public:
 int findPos(vector<int>& input, int begin, int end)
{
    int label = input[begin];
    while(begin<end)
    {
        while(end>=0&&input[end]>=label)
            end--;
        input[begin] = input[end];


        while(begin<end&&input[begin]<=label)
            begin++;

        input[end] = input[begin];
    }
    input[begin] = label;
    return begin;
}  //标兵就位

void qsort(vector<int>& input, int k, int begin, int end)
{
   while(begin<end)
    {
        int pos = findPos(input,begin,end);
        if(pos==k)
            break;
        else
            if(pos>k)
                end = pos-1;
            else
                begin = pos+1;
    }
}  //快排剪枝

vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
    vector<int> ans;
    
    if(k>input.size()||input.size()<1)
        return ans;
    qsort(input,k-1,0,input.size()-1); //快排

    for(int i =0;i<k;i++)
        ans.push_back(input[i]);
    return ans;
  }
};

 

超全!!snowboy语音唤醒(树莓派4b) 通过snowboy进行树莓派的语音唤醒 阅读详情

相关推荐

手把手教你用USBasp给Arduino UNO烧写程序(ICSP模式,含BootLoader选择指南)

本文详细介绍了如何使用USBasp编程器通过ICSP模式为Arduino UNO烧写程序,包括硬件连接、软件配置、Hex文件处理和BootLoader选择指南。内容涵盖从新手入门到高级优化的全流程,帮助开发者高效完成烧写任务,特别适合需要修复BootLoader或进行量产烧写的用户。

weixin_33958381的博客 366

求最小的K个数的三种方法

STL里面默认用的是vector,因为玩完全二叉树用数组比较好表示),Functional 就是比较的方式,当需要用自定义的数据类型时才需要传入这三个参数,使用基本数据类型时,只需要传入数据类型,默认是大顶堆。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。利用各种排序方法,比如冒泡,快速排序,归并排序、希尔排序等。所以求最小的K个数要用降序队列,即根是最大的,之后每个数和根比较,如果更大,直接略过,比根小,把根删去,把这个数加进去。

weixin_53344209的博客 2035

用Java实现森林冰火人游戏

g.drawString("游戏结束", CELL_SIZE * COLS / 2 - 100, CELL_SIZE * ROWS / 2);g.drawString("难度级别: " + difficultyLevel, 10, CELL_SIZE * ROWS + 60);g.drawString("生命值: " + playerHealth, 10, CELL_SIZE * ROWS + 20);setTitle("森林冰火人");

2401_82778412的博客 1734

leetcode-最小的k个数

 题目来自LeetCode,链接:面试题40. 最小的k个数。具体描述为:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。限制: 0 <= k <= arr.length <= 10000 0 <= arr[i] <= 10000  示例1: 输入:arr = [3,2,1],...

JR_Chan的博客 931

Python 静态导入与动态导入

python中模块的静态导入 与 动态导入(运行时指定模块),以及具体对应示例。

慢也好,步子小也好,往前走就好~ 717

【UE5.3 Cesium for Unreal】GlobePawn编译实战:从源码修改到功能实现

本文详细介绍了在UE5.3中为Cesium for Unreal插件编译和集成非官方增强组件GlobePawn的完整实战流程。从获取源码、准备资产文件、部署项目结构,到逐行修改代码适配工程并解决典型编译错误,最终实现在三维地球上实现类似Google Earth的丝滑鼠标交互体验。

weixin_29011667的博客 311

【LeetCode力扣】面试题 17.14. 最小K个数(top-k问题)

top-k问题:即求数据集合中前K个最大的元素或者最小的元素,一般情况下数据量都比较大。比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。 对于top-k问题,能想到的最简单直接的方式就是排序,但是:如果数据量非常大,排序就不太可取了(可能数据都不能一下子全部加载到内存中)。最佳的方式就是用堆来解决

Hacynn的博客 2652

ESP32实战:破解校园网WPA2-Enterprise认证的完整指南

本文详细介绍了如何使用ESP32开发板破解校园网WPA2-Enterprise认证的完整指南。通过硬件准备、环境搭建、核心代码实现及常见问题排查,帮助开发者解决企业级WiFi连接难题,特别适用于校园网环境下的物联网设备开发。

weixin_29194817的博客 457

算法的学习笔记—最小的 K 个数(牛客JZ40)

通过对比,我们可以看到两种方法各有优劣。堆的解法适用于大规模数据和较小的k值场景,而快速选择算法在需要快速得到结果且允许修改数据时更加高效。根据具体需求选择适合的算法,能够更好地解决问题,提升面试表现。😁热门专栏推荐想学习vue的可以看看这个java基础合集数据库合集redis合集nginx合集linux合集手写机制微服务组件spring_尘觉springMVCmybits🤔欢迎大家加入我的社区尘觉社区文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁。

业精于勤,荒于嬉 2562

在Ubuntu系统中安装和使用wxPython进行Python图形用户界面(GUI)开发

在本文中,我将向您展示如何在Ubuntu系统上安装和使用wxPython,并提供一些示例代码来帮助您开始使用这个强大的工具。在MyFrame的构造函数中,我们创建了一个wx.Panel和一个按钮,并将按钮的点击事件绑定到一个自定义的方法on_button_click上。最后,我们创建了一个wx.App的实例,创建了一个MyFrame对象并显示它,最后通过调用app.MainLoop()启动应用程序的主事件循环。这只是一个简单的示例,但它演示了如何使用wxPython创建一个基本的GUI应用程序。

qq_37934722的博客 1040

Vue3 - Element Plus 组件库 Tabs 标签页右侧区域插入按钮,<el-tabs> / <el-tab-pane> 选项卡组件右侧自定义插槽内容教程(右边区域添加自定义按钮功能区)

vue3,elementplus,tabs选项卡如何在插槽按钮,tabs标签页组件怎么自定义右侧内容,vue3elementplustabs组件右侧插槽按钮,element-plus在el-tabs组件的最右侧添加按钮,如何在选项卡右边加入按钮搜索框等内容,哪个属性能在tab选项卡右侧插入自定义按钮,在el-tabs组件最右侧添加按钮,vue3el-tabs组件怎么自定义右侧插槽内容,Tabs标签页右侧自定义插槽,ElementPlusTab右边加按钮,el-tabs组件自定义右侧按钮,在E

🏆 前端领域优质创作者 7019

[LeetCode](面试题40)最小的k个数

解题思路 解法一:排序 对原数组从小到大排序后取出前 k 个数即可。 复杂度分析: 时间复杂度:O(nlogn),其中 n 是数组 arr 的长度。算法的时间复杂度即排序的时间复杂度。 空间复杂度:O(logn),排序所需额外的空间复杂度为 O(logn)。 解法二:堆排序 堆的定义: 堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 1)堆中某个节点的值总是不大于或不小于其父节点的值...

zaker123的博客 614

深度学习实战107-基于Qwen3+GraphRAG+Agent的智能文档管理系统:精准问答与决策支持

在当今信息爆炸的时代,企业面临海量文档的管理与利用挑战。传统文档管理系统虽然提供了存储和检索功能,但缺乏对文档内容的深度理解与分析能力,更难以实现基于知识的决策支持。基于多模态大模型Qwen3、GraphRAG技术与Agent框架构建的智能文档管理系统,能够突破传统限制,实现文档内容的精准解析、知识图谱的自动构建、复杂关系的推理分析以及决策建议的生成,为企业知识管理带来革命性变革。

微学AI的博客 866

【堆】最小的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

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

最小的K个数

结合代码注释的讲解,来分析解决这个问题,或许是一种好办法 文章目录一、题目信息二、题目解析 一、题目信息 题目描述: 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 题目来源:最小的K个数–nowcoder 二、题目解析 class Solution { public: vector<int> G...

Eric_qiushui的博客 216

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

Jeaten 945

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

n 个数中最小的 k 个数

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

songuo' s home 2013

最小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

最小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

数组中最小的K个数

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

王二的专栏 1127

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

寻找最小的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

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
上一篇: 贝叶斯分类器
下一篇: 矩形覆盖
云水谣CS
博客等级 码龄9年 8粉丝 268原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值