欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2021秋招阿里笔试题

程序员文章站 2024-03-15 17:42:00
...

2021秋招阿里笔试题

题目的意思:

给定一个数组中的几个数,一开始是不重复的,然后对每个位置的数据进行调整,问经过 几次调整后可以找到两个重复的数。

#include <iostream>
#include <unordered_map>
#include <vector>

using namespace std;

int twoUnique(vector<int>  res){
   unordered_map<int,int>  mp;
   for(auto  x : res) mp[x]++;
   for(auto x:res){
       if(mp[x]==2){
          return true;
       }
   }
   return false;
}
int main()
{
//    vector<int>  res;
//    int n;
//    cin >>n;
//    int x;
//    while(cin>>x){
//        res.push_back(x);
//    }
    vector<int>  res={8,4,2};
    int day=0;
    while(!twoUnique(res)){
        day++;
    for(int j=0;j<day;j++){
    for(int i=0;i<res.size();i++){
        res[i]=res[i]+i;
    }
    }
   }
    cout<<day;
}