当前位置: 首页 > news >正文

重庆电商平台网站建设合肥推广优化公司

重庆电商平台网站建设,合肥推广优化公司,制作一个app软件,移动网站建设查询一、题目解析 1、返回k个最小数 2、可以任意顺序 二、算法原理 解法1:排序 O(N*logN) 直接排序数组,然后用迭代器初始化构造一个匿名对象 解法2:大根堆 O(N*logk) 构造一个大根堆,依次插入元素,控制容器大小为k&…

一、题目解析

1、返回k个最小数

2、可以任意顺序

二、算法原理

解法1:排序 O(N*logN)

直接排序数组,然后用迭代器初始化构造一个匿名对象

解法2:大根堆 O(N*logk)

构造一个大根堆,依次插入元素,控制容器大小为k,超过k的部分pop掉,最后大根堆中存储的就是k个最小的元素,插入到vector中

解法3:快排

随机基准元素+数组分三块

详细见该篇文章分治-快排-215.数组中的第k个最大元素-力扣(LeetCode)-CSDN博客

根据三块区域元素个数分情况讨论

三、代码示例

解法1:

 //解法1:排序vector<int> smallestK(vector<int>& arr, int k){sort(arr.begin(),arr.end());return {arr.begin(),arr.begin()+k};}

解法2:

//解法2:大根堆vector<int> smallestK(vector<int>& arr, int k){if(k == 0 || arr.empty()) return {};priority_queue<int> pq;for(auto e : arr){pq.push(e);if(pq.size()>k) pq.pop();}vector<int> ret;while(k--){ret.push_back(pq.top());pq.pop();}return ret;}

解法3:

//解法3:快排vector<int> smallestK(vector<int>& arr, int k){srand(time(NULL));if(k==0 || arr.empty()) return {};qsort(arr,k,0,arr.size()-1);return {arr.begin(),arr.begin()+k};}void qsort(vector<int>& arr,int k,int l,int r){if(l>=r) return;int key = getRandom(arr,l,r);//随机选择基准元素int left = l-1,right = r+1,i = l;//数组分三块while(i<right){if(arr[i]<key) swap(arr[++left],arr[i++]);else if(arr[i] == key) i++;else swap(arr[i],arr[--right]);}int a = left - l +1,b = right - left - 1;//分情况讨论if(a>k) qsort(arr,k,l,left);else if(a+b>=k) return;else qsort(arr,k-a-b,right,r);}int getRandom(vector<int>& arr,int left,int right){return arr[rand() % (right-left+1) + left];}

看到最后,如果对您有所帮助,还请点赞、收藏和关注,我们下期再见!

http://www.dtcms.com/a/556837.html

相关文章:

  • Linux命令行基础:常用命令快速上手(附代码示例)
  • 在Ubuntu Desktop操作系统下,rustdesk客户端如何设置成开机自动启动?
  • 建设静态网站怎么制作网页链接在微信上发
  • Pandas-DataFrame 数据结构详解
  • 用层还是表格做网站快淘宝建设网站的好处
  • 2025年渗透测试面试题总结-224(题目+回答)
  • 详细了解TLS、HTTPS、SSL原理
  • 弹性力学| 应力应变关系
  • 网站建设实习收获多平台网页制作
  • BPE(Byte Pair Encoding)详解:从基础原理到现代NLP应用
  • 【Java学习路线| 最佳食用指南 60days】
  • nfs的运用
  • 【企业架构】TOGAF架构标准规范-迁移计划
  • 做网站用asp还是php亚马逊建站服务
  • 数据结构(15)
  • 《算法闯关指南:优选算法--前缀和》--29.和为k的子数组,30.和可被k整除的子数组
  • 如何在GitHub仓库中添加MIT开源许可证
  • 在Linux(deepin-community-25)下安装MongoDB
  • WebView 最佳封装模板(BaseWebActivity + WebViewHelper)
  • 珲春市建设局网站中国设计网字体
  • 杭州英文网站建设杭州微信小程序外包
  • 顺序表vector--------练习题3题解
  • 触发器(Trigger):灵活控制窗口行为
  • mysql数据库自动备份_脚本_配置自动运行_windows下
  • Linux : 进程概念
  • 510-Spring AI Alibaba Graph Stream Node 示例
  • 【11408学习记录】考研英语长难句通关:2018真题精析,每日一句攻克阅读难点!​
  • 做网站买那种服务器龙港哪里有做阿里巴巴网站
  • TXT文件去重工具,一键快速去重复
  • ModelEngine vs Dify vs Coze:AI开发平台横评