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

网站首页 模板美团企业邮箱提额3000

网站首页 模板,美团企业邮箱提额3000,php网站开发技术背景,网站制作和美工题目链接 题目链接 力扣题目链接 题目描述 输入 n个整数#xff0c;找出其中最小的 k 个数。 注意#xff1a; 输出数组内元素请按从小到大顺序排序; 数据范围 1≤k≤n≤1000 样例 输入#xff1a;[1,2,3,4,5,6,7,8] , k4 输出#xff1a;[1,2,3,4] 题目分析 排序算法…题目链接 题目链接 力扣题目链接 题目描述 输入 n个整数找出其中最小的 k 个数。 注意 输出数组内元素请按从小到大顺序排序; 数据范围 1≤k≤n≤1000 样例 输入[1,2,3,4,5,6,7,8] , k4 输出[1,2,3,4] 题目分析 排序算法 题解 优先队列-小根堆 用小根堆 将所有元素都放入小根堆中就相当于堆元素进行了排序。 然后依次从优先队列的首部最小的位置开始取元素取k个为止 注意啦 这是优先队列升序排列实现的小根堆 也就是每次peek取出的元素都是当前优先队列中最小的 class Solution {public ListInteger getLeastNumbers_Solution(int[] input, int k) {// 优先队列升序小根堆根是最小的【peek取出的元素是最小的】PriorityQueueInteger pq new PriorityQueue((a, b)-a-b);for(int i 0; i input.length; i ){pq.add(input[i]);}ListInteger list new ArrayList();for(int i 0; i k; i ){list.add(pq.poll());}return list;} }优先队列-大根堆 从大到小排序首部元素是最大的只存放k个整数如果超过这个值之后遍历的元素与首部元素小才插入因为要找前k个最小的元素遍历优先队列不停的在list首部插入值因为是大根堆所以队列首部的元素是最大的 class Solution {public ListInteger getLeastNumbers_Solution(int[] input, int k) {// 大根堆堆中只存放k个整数超过这个k值后如果元素比peek得到的值小插入// 优先队列从大到小排序逆序PriorityQueueInteger pq new PriorityQueue((a, b)- b - a);for(int i 0; i input.length; i ){if(pq.size() k){if(pq.peek() input[i]){pq.poll();pq.add(input[i]);}}else{pq.add(input[i]);}}ListInteger list new ArrayList();for(int i 0; i k; i ){list.add(0, pq.poll());}return list;} }快排 写法1 class Solution {public int[] smallestK(int[] arr, int k) {sort(arr, 0, arr.length - 1);int[] res new int[k];for(int i 0; i k; i ){res[i] arr[i];}return res;}public void sort(int[] arr, int left, int right){// 只有最后一个元素if(left right) return;// 基准int base arr[left];int i left, j right;while(i j){while(i j arr[j] base){j--;}if(i j){arr[i] arr[j];i ;}while(i j arr[i] base){i ;}if(i j){arr[j] arr[i];j --;}}arr[i] base;sort(arr, left, i - 1);sort(arr, i 1, right);} }写法2 class Solution {public int[] smallestK(int[] arr, int k) {sort(arr, 0, arr.length - 1);int[] res new int[k];for(int i 0; i k; i ){res[i] arr[i];}return res;}public void sort(int[] arr, int left, int right){// 只有最后一个元素if(left right) return;// 基准int base arr[(leftright)/2];int i left-1, j right1;while(i j){do i; while(arr[i] base);do j--; while(arr[j] base);if(i j){int temp arr[i];arr[i] arr[j];arr[j] temp;}}sort(arr, left, j);sort(arr, j 1, right);} }快速选择 找第k个元素 class Solution {public int findKthLargest(int[] nums, int k) {// 需要数组中下标为need的元素int need nums.length - k;return sort(nums, 0, nums.length - 1, need);}public int sort(int[] nums, int left, int right, int k) {if(left right) return nums[left];int base nums[(left right) / 2];int i left - 1, j right 1;while (i j) {do i; while (nums[i] base);do j--; while (nums[j] base);if (i j) {int temp nums[i];nums[i] nums[j];nums[j] temp;}}if(j k) return sort(nums, left, j, k);else return sort(nums, j 1, right, k);} }注意边界 if(j k) return sort(nums, left, j, k); else return sort(nums, j 1, right, k);
http://www.w-s-a.com/news/357490/

相关文章:

  • 维护网站费用长沙广告设计公司排名
  • 模仿别人网站侵权wordpress 修改链接失效
  • wordpress文章设置受密码保护南宁网站优化公司哪家好
  • 网站开发工程师介绍设计类的网站
  • 嘉兴seo网站推广中山建网站多少钱
  • 高端汽车网站建设帮别人做网站自己为什么会被抓
  • 网站开发实验室建设方案wordpress 主题丢失
  • 珠宝网站建设平台分析报告郑州最新发布
  • 世界杯最新排名泉州seo网站关键词优
  • 广州公司网站提供如何推广新品
  • 网站建设如何描述沈阳网站建设推广平台
  • 用dw制作个介绍家乡网站学生个人简历
  • 建设银行企业网站访问不了wordpress搬到谷歌服务器
  • 网站建设与网站优化销售别墅庭院园林景观设计公司
  • 沈阳红方城网站建设专业的微网站哪家好
  • 医院网站asp东营信息发布平台
  • 网站全站建设开题报告范文南京本地网站
  • 网站漏洞扫描工具wampserver集成环境搭建了一个织梦cms网站
  • 如何在局域网上做网站宁波设计公司排行榜
  • 自己的电脑做网站服务器吗百度搜索风云榜总榜
  • 做化妆品的一些网站企业网站建设与营运计划书
  • 重庆速代网络科技seo整站优化服务教程
  • 成都比较好的装修设计公司seo3的空间构型
  • 开发商建设审批网站成都创意设计公司
  • 百度快照比网站上线时间早wordpress新建阅读量字段
  • 国家工程建设标准化协会网站网站开发工具有
  • 上海网站建设集中公关公司组织架构图
  • wordpress副标题的作用百度网站标题优化
  • 大连哪家公司做网站比较好wordpress 判断用户组
  • 网站空间1g多少钱东莞公司高端网站建设