2024-12-24:特殊数组Ⅰ。用go语言,一个数组被称为“特殊数组”,当且仅当其所有相邻的两个元素具有不同的奇偶性(即一个为

举报
福大大架构师每日一题 发表于 2024/12/24 19:48:29 2024/12/24
【摘要】 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:

chatgpt

题目来自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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。