29、剑指offer--最小的K个数
注意事项:边界条件的判断,数组为空,k小于1,以及k大于数组元素数目
1 class Solution { 2 public: 3 vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { 4 vector<int> result; 5 if(input.empty() || k<1 || input.size()<k) 6 return result; 7 multiset<int> insert_set; 8 9 set<int>::iterator it; //定义前向迭代器 10 multiset<int>::reverse_iterator rit; //定义反向迭代器 11 for(int i=0;i<input.size();i++) 12 { 13 14 if(i<k) 15 { 16 insert_set.insert(input[i]); 17 } 18 19 else 20 { 21 rit = insert_set.rbegin(); 22 if(input[i] < *rit) 23 { 24 25 insert_set.erase(*rit); 26 insert_set.insert(input[i]); 27 } 28 } 29 } 30 31 32 for(it = insert_set.begin(); it != insert_set.end(); it++) 33 { 34 result.push_back(*it); 35 } 36 return result; 37 } 38 };
转载于:https://www.cnblogs.com/qqky/p/6929074.html
29、剑指offer--最小的K个数相关推荐
- 剑指offer 最小的k个数 leetcode 215. Kth Largest Element in an Array
注意multiset的一个bug: multiset带一个参数的erase函数原型有两种.一是传递一个元素值,如上面例子代码中,这时候删除的是集合中所有值等于输入值的元素,并且返回删除的元素个数:另外 ...
- 剑指offer 最小的k个数
输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 排序解决的. import java.util.*; public clas ...
- 剑指offer——最小的K个数和数组中第K大的元素
解题思路: 乘着做这个题,顺便复习下堆排序. 先说堆排序是一个什么东西:https://blog.csdn.net/u013384984/article/details/79496052 大顶堆升序, ...
- 剑指Offer_29_最小的K个数
题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 解题思路 解法1 大顶堆,存放k个数字,遍历数组,当堆的数量小于k ...
- 剑指offer40 最小的k个数
这个题目最坑的是 这个输入的k是几 那么输出的个数就是几 如果全是重复的 比如[1,1,1,1,1,1,1] 如果k=2 那么只能输出[1,1] 题目给的这两个样例完全不能体现这一点啊! 而且第一个样 ...
- 剑指offer之求两个数之和(不能使用四则运算)
1 题目 剑指offer之求两个数之和(不能使用四则运算) 2 代码实现 #include<stdio.h>int add(int num1, int num2) {int sum1;in ...
- 剑指offer||3 前n个数二进制数中1的个数
思路1:递归(消耗大) 如果是奇数,return 去掉最后一位二进制数1 的个数+1 如果是偶数,return 去掉最后一位二进制数1个数 class Solution { public: int ...
- 剑指offer做题记录
1. 剑指 Offer 03. 数组中重复的数字 力扣 class Solution { public:int findRepeatNumber(vector<int>& nu ...
- 算法题解(剑指Offer篇)
文章目录 栈与队列(简单) *剑指 Offer 09. 用两个栈实现队列 - 12.27 剑指 Offer 30. 包含min函数的栈 - 12.27 链表(简单) *剑指 Offer 06. 从尾到 ...
最新文章
- java 关键字(面试题)
- Nginx基本配置、性能优化指南
- 那个14岁上大学、17岁读博、24岁当教授的天才神童,如今怎么样了?
- jquery 根据class名 赋值_jQuery简单用法!!!
- android hardware architecture
- JBoss BPM Suite 6.0.3版本的5个实用技巧
- Android Camera详解
- dxf转g代码_恶意代码分析系列几种常用技术(2)
- linux下nginx的基本使用
- mysql instead of触发_Instead of触发器
- 生产过程代码分析(二)--估计
- Lesson 05 for Plotting in R for Biologists
- couldn't open file: data/coco.names
- Directx游戏中嵌入IE浏览器实现过程
- 逻辑库、物理库、分库分表(TDDL)
- Axure获取焦点和触发事件
- 像素越多越好?像元的面积越小越好?为何底大一级压死人?
- docker官方文档翻译5
- jacod 使用 WPS或 office相关注册表信息
- Redis--AKF架构
热门文章
- python手机版打了代码运行不了-如何用iPad运行Python代码?
- python做直方图-python实现直方图的应用
- pythonis啥意思-Python基础:is和==的区别
- python 命令行参数-Python命令行参数处理
- python官网下载步骤linux-CentOS 7.* 安装 python3.8.2 步骤
- monty python life of brian-电影Life of Brian 万世魔星
- python面试题及答案-Python 45道基本面试题及答案 (新手非常有用)
- 如何使用python批量下载-用Python调用迅雷实现后台批量下载
- 为什么叫python编程-中小学生为什么要学Python编程
- python零基础电子书免费下载-零基础学Python