2024-12-24:特殊数组Ⅰ。用go语言,一个数组被称为“特殊数组”,当且仅当其所有相邻的两个元素具有不同的奇偶性(即一个为
【摘要】 2024-12-24:特殊数组Ⅰ。用go语言,一个数组被称为“特殊数组”,当且仅当其所有相邻的两个元素具有不同的奇偶性(即一个为奇数,另一个为偶数)。给定一个整数数组 nums,请判断这个数组是否满足这一条件,如果满足则返回 true,否则返回 false。1 <= nums.length <= 100。1 <= nums[i] <= 100。输入:nums = [2,1,4]。输出:tru...
2024-12-24:特殊数组Ⅰ。用go语言,一个数组被称为“特殊数组”,当且仅当其所有相邻的两个元素具有不同的奇偶性(即一个为奇数,另一个为偶数)。
给定一个整数数组 nums,请判断这个数组是否满足这一条件,如果满足则返回 true,否则返回 false。
1 <= nums.length <= 100。
1 <= nums[i] <= 100。
输入:nums = [2,1,4]。
输出:true。
解释:
只有两对相邻元素: (2,1) 和 (1,4),它们都包含了奇偶性不同的数字,因此答案为 true。
答案2024-12-24:
题目来自leetcode3151。
大体步骤如下:
1.遍历整数数组 nums,检查相邻两个元素的奇偶性是否相同,如果相同则返回 false。
2.若遍历完成后没有发现相邻两个元素奇偶性相同的情况,则返回 true。
时间复杂度分析:
- 遍历整个数组来检查相邻两个元素的奇偶性,时间复杂度为 O(n),其中 n 是数组 nums 的长度。
空间复杂度分析:
- 算法使用了常数级别的额外空间,即没有使用额外的空间来存储状态或辅助数据结构,因此空间复杂度为 O(1)。
Go完整代码如下:
package main
import (
"fmt"
)
func isArraySpecial(nums []int) bool {
n := len(nums)
for i := 1; i < n; i++ {
if nums[i-1]%2 == nums[i]%2 {
return false
}
}
return true
}
func main() {
nums := []int{2, 1, 4}
fmt.Println(isArraySpecial(nums))
}
Rust完整代码如下:
fn is_array_special(nums: &Vec<i32>) -> bool {
for i in 1..nums.len() {
if nums[i-1] % 2 == nums[i] % 2 {
return false;
}
}
true
}
fn main() {
let nums = vec![2, 1, 4];
println!("{}", is_array_special(&nums));
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)