百度2017春招笔试真题编程题集合--有趣的排序
来源:互联网 发布:电脑点不开任何软件 编辑:程序博客网 时间:2024/05/20 20:02
度度熊有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的度度熊只会下面这个操作:
任取数组中的一个数然后将它放置在数组的最后一个位置。
问最少操作多少次可以使得数组从小到大有序?
输入描述:
首先输入一个正整数N,接下来的一行输入N个整数。(N <= 50, 每个数的绝对值小于等于1000)
输出描述:
输出一个整数表示最少的操作次数。
示例1
输入
4
19 7 8 25
输出
2
思路:这个题很有意思,明明问你排序所需最小操作次数,可是你却可以先自己排序了再说,只要求得这个答案即可,考察灵活变通的思维。这里,先建一个map,记录原数组各个数值的索引,然后排序,在排序后的数组中找到前面一个数的索引比后面一个的大,那么后面的这个数就应该插到原数组的最后,并且索引数更新为n++,算一次操作,循环遍历排序后的数组即可得到总的操作次数。
#include <iostream> #include <algorithm> #include <unordered_map> using namespace std; int main(){ int n,temp; cin>>n; vector<int>nums; unordered_map<int,int>mapping; for(int i=0;i<n;i++){ cin>>temp; nums.push_back(temp); mapping[temp]=i; } sort(nums.begin(),nums.end()); int count=0; int t=n; for(int i=0;i<n-1;i++){ if(mapping[nums[i]]>mapping[nums[i+1]]){ mapping[nums[i+1]]=t++; count++; } } cout<<count<<endl; return 0; }
阅读全文
0 0
- 4--百度2017春招笔试真题编程题集合--有趣的排序 (Python)
- 百度2017春招笔试真题编程题集合--有趣的排序
- 百度2017春招笔试真题编程题集合:有趣的排序 [python]
- 百度2017春招笔试真题编程题 --有趣的排序
- 百度2017春招笔试真题编程题集合
- 百度2017春招笔试真题编程题集合
- 百度2017春招笔试真题编程题集合
- 百度2017春招笔试真题编程题集合
- 百度2017春招笔试真题编程题集合
- 百度2017春招笔试真题编程题集合
- 牛客网 之 百度2017春招笔试真题编程题集合(共5题)
- 百度2017春招笔试真题编程题集合-1
- 百度2017春招笔试真题编程题集合-2
- 百度2017春招笔试真题编程题集合-3
- 百度2017春招笔试真题编程题集合-4
- 百度2017春招笔试真题编程题集合-5
- 1--百度2017春招笔试真题编程题集合--买帽子(Python)
- 2--百度2017春招笔试真题编程题集合--度度熊回家 (Python)
- bootstrap-dataTable重写表格位置
- selenium的第一次操作总结
- Linux输入子系统学习笔记
- 现在很多的手机应用,都可能会直接嵌入一个web页面。这样做的好处:一个是功能更新方便,维护起来容易,只需要维护服务器的页面即可,不需要更新客户端;另一个是功能通用,不仅Android可以用,iOS也可
- Eclipse启动失败java was started but returned exit code=1
- 百度2017春招笔试真题编程题集合--有趣的排序
- oracle数据库解密方法
- 清华大学计算机研究生课程表
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 利用SQLyog实现mysql数据库定时自动备份
- 绝对路径与相对路径
- OSG动画库Animation解析(一)
- 关于mipmap的一些小记
- python学习笔记(二)