标签:++i rgb ios mes out main 相等 cout 信息
此处双指针代表的是一种思想,即两个(或多个)"先锋"动态式跟随并进行信息交流[个人理解],样例如下:
先输入数组大小,然后依次赋值(按照升序)
①若不得有重复元素,代码如下:
1 #include<iostream> 2 using namespace std; 3 4 const int N = 1001; 5 int a[N]; 6 int main() 7 { 8 9 int n; 10 cin>>n; 11 for(int i=0;i<n;++i)cin>>a[i]; 12 13 int k=1; 14 for(int i=1;i<n;++i) 15 if(a[i]!=a[k-1])//核心 16 a[k++]=a[i];// 17 for(int i=0;i<k;++i) 18 cout<<a[i]<<‘ ‘; 19 20 return 0; 21 }
②若是不同的数字各自最多有两个,我们只需要把第15行代码写为
if(a[i]!=a[k-1]||a[i]!=a[k-2])
其实还可以继续优化,即
if(a[i]!=a[k-2])
稍微有点绕,即a[k-2]下标所在元素若是与a[i]不相等的话,则证明a[i]的数字在a[k]之前(不包括a[k])顶多出现过两次;否则忽视a[i],继续向后遍历
标签:++i rgb ios mes out main 相等 cout 信息
原文地址:https://www.cnblogs.com/Knight02/p/14687629.html