百度:度度熊有一个N个数的数组,他想将数组从大到小排好序...
来源:互联网 发布:一句话介绍自己 知乎 编辑:程序博客网 时间:2024/05/21 00:20
度度熊有一个N个数的数组,他想将数组从大到小排好序,但是萌萌的度度熊只会下面这个操作:
任取数组中的一个数然后将它放置在数组的最后一个位置.
问最少操作多少次可以使得数组从小到大有序?
输入描述:
首先输入一个正整数N,接下来的一行输入N个整数。(N <= 50, 每个数的绝对值小于等于1000)
输出描述:
输出一个整数表示最少的操作次数。
输入例子:
4
19 7 8 25
输出例子:
2
思路很简单,使用vcetor来装数组,使用map放value和index。首先,对vector进行排序,这样我们会发现,vector中的值在map的索引号应该逐渐增大。当发现vector中较大的值对应map中的索引号较小,应该把vector中较大的值对应的map中的索引号以vector.size()为基数增大。
这里写代码片#include "iostream"#include "vector"#include "map"#include "algorithm"using namespace std;int main(){ int N,value; cin>>N; vector<int> arr; map<int,int> duMap; for(int i=0;i<N;i++) { cin>>value; arr.push_back(value); duMap[value]=i; } sort(arr.begin(),arr.end()); int index=N,count=0; for(int i=0;i<N-1;i++) { if(duMap[arr[i]]>duMap[arr[i+1]]) { duMap[arr[i+1]]=index++; count++; } } cout<<count; return 0;}
0 0
- 百度:度度熊有一个N个数的数组,他想将数组从大到小排好序...
- 一个数组中最常出现的n个数
- 从一个长度为n的数组中随机选择m个数
- 读入n个数,并把他存入一个数组,并且数字不能重复
- C++笔记1.0 外部输入数组n,定义一个数组,从外面输入n个数依次放入数组
- 求一个数组中满足2^N的个数
- 从求数组Top N个数开始说起的求数组的若干问题笔记
- 编写将一个包含有20个数据的数组M分成两个数组,正整数数组P和负数数组N ,分别把这两个数组中的数据的个数显示出来
- 从n个数组中选n个元素的方法(每个数组中选一个)
- 获取数组的n个数的组合
- 找出数组从小到大的前N个数
- 两个有序的数组中找第N个数
- 编写一个函数,从标准输入读取一列整数,把这些值存储于一个动态分配的数组中并返回这个数组。函数通过观察EOF判断输入列表是否结束。数组的第一个数是数组包含的值的个数,他的后面就是这些整数值。
- 从数组中选出n个数之和为k
- 从大小为n的数组中取出m个数的组合
- 随机从数组中取出指定的不重复的n个数
- java 判断从0到n的二进制中‘1’的个数并返回数组
- 【转载】从长度为n的数组中选择m个数的所有结果
- 机器学习基石笔记6——为什么机器可以学习(2)
- 科学计数法表示零
- MySQL在Window命令行中中文显示不对齐和乱码问题
- FTPClient 上传文件调用storeFile方法SocketException问题
- Python一些基础知识
- 百度:度度熊有一个N个数的数组,他想将数组从大到小排好序...
- 解决 Android N 7.0 上 报错:android.os.FileUriExposedException
- bzoj1115[POI2009]石子游戏Kam 阶梯NIM
- parse shell传递的参数
- Android 7.0 FileUriExposedException 解决
- ios ipa
- Lua与C#调用原理
- Android中StringBuilder与 StringBuffer区别
- Vibe背景建模