ygxdsh 不到五行解决的水题,注意一下边界的处理就行了 class Solution { public: int numberOfAlternatingGroups(vector<int>& colors) { int l=colors.size(),ans=0; for(int i=0;i<l;i++) if(colors[i]!=colors[(i+l-1)%l]&&colors[i]!=colors[(i+1)%l]) ans++; return ans; } };
wszyh 弱弱的想到啥写啥思维 public: int numberOfAlternatingGroups(vector<int>& colors) { int m=colors.size(); int cnt=0; for(int i=0;i<m-2;i++){ if(colors[i]!=colors[i+1]){ if(colors[i]==colors[i+2]){ cnt++; } } }//判断从0开始到m-3的情况 if((colors[0]!=colors[1])&&(colors[1]==colors[m-1]))cnt++;//特判m-1为起始的情况 if((colors[0]!=colors[m-1])&&(colors[0]==colors[m-2]))cnt++;//特判m-2为起始的情况 return cnt; } };