2025-02-13:交替组Ⅰ。用go语言,给定一个整数数组colors,它表

架构师课程 2025-02-13 21:16:38

2025-02-13:交替组Ⅰ。用go语言,给定一个整数数组 colors,它表示一个由红色和蓝色瓷砖组成的环。在这个数组中,colors[i] 的值为:

①.0 表示第 i 块瓷砖是红色。

②.1 表示第 i 块瓷砖是蓝色。

如果连续的三块瓷砖的颜色呈现交替状态(即中间的瓷砖颜色与两侧的瓷砖颜色不同),则称这些瓷砖构成一个“交替组”。

请你计算并返回这个环中交替组的数量。

需要注意的是,由于瓷砖呈环状排列,因此数组的第一块和最后一块瓷砖也是相邻的。

3 <= colors.length <= 100。

0 <= colors[i] <= 1。

输入:colors = [0,1,0,0,1]。

输出:3。

答案2025-02-13:

chatgpt[1]

题目来自leetcode3206。

大体步骤如下:

自然智慧即可。

1.初始化变量 n 为数组 colors 的长度,并初始化变量 res 为交替组的数量,初始值为 0。

2.使用一个循环遍历整个数组 colors:

2.a.对于每个元素 colors[i],判断它与其前一个元素(考虑环形数组情况,需要使用 (i-1+n)%n)和后一个元素 (i+1)%n 的颜色是否不同。

2.b.如果当前元素与相邻的两个元素颜色都不同,则将交替组的数量 res 自增 1。

3.遍历完成后,返回交替组的数量 res。

总体时间复杂度为 O(n),其中 n 为数组 colors 的长度。

空间复杂度为 O(1),只使用了常数级别的额外空间。

Go完整代码如下:package mainimport ( "fmt")func numberOfAlternatingGroups(colors []int) int { n := len(colors) res := 0 for i := 0; i < n; i++ { if colors[i] != colors[(i-1+n)%n] && colors[i] != colors[(i+1)%n] { res++ } } return res}func main() { colors := []int{0, 1, 0, 0, 1} result := numberOfAlternatingGroups(colors) fmt.Println(result)}

在这里插入图片描述

Rust完整代码如下:fn number_of_alternating_groups(colors: &[i32]) -> i32 { let n = colors.len() as i32; let mut res = 0; for i in 0..n { let prev_color = colors[((i - 1 + n) % n)as usize]; // Previous color in circular array let next_color = colors[((i + 1) % n) as usize]; // Next color in circular array if colors[i as usize] != prev_color && colors[i as usize] != next_color { res += 1; } } res}fn main() { let colors = vec![0, 1, 0, 0, 1]; let result = number_of_alternating_groups(&colors); println!("{}", result);}

在这里插入图片描述

Python完整代码如下:# -*-coding:utf-8-*-def number_of_alternating_groups(colors): n = len(colors) res = 0 for i in range(n): prev_color = colors[(i - 1 + n) % n] # Previous color in circular array next_color = colors[(i + 1) % n] # Next color in circular array if colors[i] != prev_color and colors[i] != next_color: res += 1 return resdef main(): colors = [0, 1, 0, 0, 1] result = number_of_alternating_groups(colors) print(result)if __name__ == "__main__": main()

在这里插入图片描述

引用链接

[1] chatgpt: https://chatbotsplace.com/?rc=nnNWSCJ7EP

0 阅读:0