首页 > 其他分享 >利用map对数组中的元素及其下标进行存储

利用map对数组中的元素及其下标进行存储

时间:2022-10-26 21:04:36浏览次数:74  
标签:tmp map arr 下标 HashMap int ++ 数组


题目描述

小摩有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的小摩只会下面这个操作:

任取数组中的一个数然后将它放置在数组的最后一个位置。

问最少操作多少次可以使得数组从小到大有序?

输入描述:


首先输入一个正整数N,接下来的一行输入N个整数。(N <= 50, 每个数的绝对值小于等于1000)


输出描述:


输出一行操作数


示例1

输入

复制


4 19 7 8 25


输出

复制


2


说明


19放到最后,25放到最后,两步完成从小到大排序


#include<unordered_map>
#include<iostream>
#include<algorithm>
using namespace std;

int N;

int main(){
scanf("%d",&N);
vector<int> arr;
int Result = 0;
unordered_map<int,int> HashMap;
for(int i = 0;i < N;i ++){
int tmp;
scanf("%d",&tmp);
arr.push_back(tmp);
HashMap[tmp] = i;
}
sort(arr.begin(),arr.end());
for(int i = 0;i < arr.size() - 1;i ++){
if(HashMap[arr[i]] > HashMap[arr[i + 1]]){
HashMap[arr[i + 1]] = N++;
Result++;
}
}
printf("%d\n",Result);
return 0;
}

注意:把元素放在最后相当于下标指向N,别忘了N自加一。

标签:tmp,map,arr,下标,HashMap,int,++,数组
From: https://blog.51cto.com/u_13121994/5798512

相关文章

  • 子数组相加和为母数组的和的一半(动态规划题目)
    boolIsMagical(vector<int>&vec){intlen=vec.size();intsum=accumulate(vec.begin(),vec.end(),0);if(sum&1)returnfalse;intmid=......
  • 图的连通性,注意非法下标的处理情况
    题目描述给定一个m行n列的二维地图,初始化每个单元都是水.操作addLand把单元格(row,col)变成陆地.岛屿定义为一系列相连的被水单元包围的陆地单元,横向或纵向相邻的陆地......
  • 比较数组前后元素的大小关系时,注意下标是否越界
    这道题是爬山题,注意比较A[i]<A[i+1]的时候,i+1是否越界941. ValidMountainArrayEasy12234FavoriteShareGivenanarray ​​A​​​ ofintegers,return ​​true......
  • 剑指offer系列题笔记(二维数组的查找)
    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数......
  • 嵌入式-C语言基础:二维数组的地址写法
    二维数组a的有关指针:表示形式                             含义                                 ......
  • Leetcode第862题:和至少为K的最短子数组(Shortest Subarray with sum at least k)
    解题思路前缀和定义前缀和\(s[0]=0\),\(s[i+1]=\displaystyle\sum\limits_{j=0}^inums[j]\)。例如\(nums=[1,2,-1,2]\),对应的前缀和数组为\(s=[0,1,3,2,4]\)。......
  • asp.ne tcore浏览器向服务端传递对象或对象数组参数服务端接收方式
    日常开发中我们经常会在客户端向服务器端传递参数,下面以asp.netcore为例专门分享传递对象或对象数组方法一、键值对专递对象以下是一个表单,现在需求是将以下表单所有......
  • map记录下标
    题目描述小云正在参与开发一个即时聊天工具,他负责其中的会话列表部分。会话列表为显示为一个从上到下的多行控件,其中每一行表示一个会话,每一个会话都可以以一个唯一正整数id......
  • 数组最大间隔
    题目描述小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。......
  • arcgis/arcmap面共用边
    需求说明有些地质现象、遥感解译等面需要共用边,一般情况下,可以先画出整体范围,然后使用裁剪面工具,但是有时是先画出了局部,欲在此基础上补充紧邻的面。解决方案使用创建要素......