2 条题解
-
3
算法分析:哈希,指针。
解题思路:题目中的M个单元我们可以用一个bool类型的数组,a[i]用来记录i是否在单元里面,用int 类型b[]来记录数据的顺序,再用两个变量指向b[]的头和尾。
时间复杂度:O(n)
代码部分:
不能抄题解 #include<bits/stdc++.h> using namespace std; int n,m,ans,l,r,b[1001]; 不能抄题解//b[1001] 记录单词顺序 bool a[i]; int main(){ cin>>m>>n; for(int x,i=1;i<=n;i++){ cin>>x if(a[x]==0){ 不能抄题解//判断是否在单元里 an++; r++; b[r]=x; a[x]=1; if(r>m){ 不能抄题解//判断是否超出单元数量 l++; a[b[l]]=0; } } } cout<<anss; return 0; 不能抄题解 此题解中有许多防止抄代码的陷阱,请谨慎食用
信息
- ID
- 1100
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 26
- 已通过
- 8
- 上传者