本文主要是介绍字节跳动2018校招测试开发方向(第二批),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 第一题
- 第二题
第一题
# include <bits/stdc++.h>
using namespace std;
vector<int> res,tmp;
map<int,vector<int>> m;
int n,love;
int nn,l,r,k,num;
int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&love);m[love].push_back(i);}scanf("%d",&nn);for(int i=0;i<nn;i++){num=0;scanf("%d%d%d",&l,&r,&k);for(int index:m[k]){if(index>=l&&index<=r)num++;}res.push_back(num);}for(int i=0;i<res.size();i++){printf("%d\n",res[i]);}
}
第二题
#include<iostream>
#include <bits/stdc++.h>
using namespace std;
int n,m,c;
map<int,vector<int> > mp;
int main(){cin>>n>>m>>c;for(int i=1;i<=n;i++){//遍历每个珠子int nn; //当前珠子的颜色数cin>>nn;for(int j=1;j<=nn;j++){//遍历该珠子的每个颜色int color;cin>>color;mp[color].push_back(i);}}int count=0;//记录不符合要求的颜色数for(int i=1;i<=c;i++){//遍历所有颜色sort(mp[i].begin(),mp[i].end()); //同色珠子的位置排序int size = mp[i].size();for(int j=1;j<size;j++){//遍历该颜色的各个珠子if(mp[i][j]-mp[i][j-1]<m){count++;break;}if(mp[i][j]+m>n&&(mp[i][j]+m)%n>mp[i][0]){count++;break;}}}cout << count << endl;
}
这篇关于字节跳动2018校招测试开发方向(第二批)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!