学习记录
2025.3.29
题目:
思路:
遍历判断。
解题步骤:
1.遍历数组中的每个元素 colors[i]。
2.计算其左邻居的索引 left = (i - 1 + n) % n。
计算其右邻居的索引 right = (i + 1) % n。
3.检查 colors[i] 是否不等于 colors[left] 且不等于 colors[right]。
如果满足条件,则计数器 res 加一
4.返回res。
代码:
int numberOfAlternatingGroups(int* colors, int colorsSize) {int res = 0;for (size_t i = 0; i < colorsSize; i++) {if (colors[i] != colors[(i - 1 + colorsSize) % colorsSize] && colors[i] != colors[(i + 1) % colorsSize]) {res += 1;}}return res;
}
class Solution {public int numberOfAlternatingGroups(int[] colors) {int n = colors.length;int res = 0;for (int i = 0; i < n; i++) {if (colors[i] != colors[(i - 1 + n) % n] && colors[i] != colors[(i + 1) % n]) {res += 1;}}return res;}
}
复杂度:
N(N)
N(1)