遍历计数,C 0ms
Problem: 100336. 交替组 I
[TOC]
思路
直接按题意遍历计数。
Code
执行用时分布0ms击败100.00%;消耗内存分布5.69MB击败100.00%
###C
int numberOfAlternatingGroups(int* colors, int colorsSize) {
int ans = (colors[colorsSize - 2] != colors[colorsSize - 1] && colors[colorsSize - 1] != colors[0])
+ (colors[colorsSize - 1] != colors[0] && colors[0] != colors[1]);
for (int i = 2; i < colorsSize; ++ i)
if ((colors[i - 2] != colors[i - 1] && colors[i - 1] != colors[i])) ++ ans;
return ans;
}
###Python3
class Solution:
def numberOfAlternatingGroups(self, colors: List[int]) -> int:
n, colors = len(colors), colors + colors[:2]
return sum(colors[i] != colors[i + 1] != colors[i + 2] for i in range(n))
您若还有不同方法,欢迎贴在评论区,一起交流探讨! ^_^
↓ 点个赞,点收藏,留个言,再划走,感谢您支持作者! ^_^