LeetCode 3151. 特殊数组 I【数组】简单【Py3,C++,Java,GO,Rust】

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。

为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conquest。在这一仓库中,你不仅可以看到LeetCode原题链接、题解代码、题解文章链接、同类题目归纳、通用解法总结等,还可以看到原题出现频率和相关企业等重要信息。如果有其他优选题解,还可以一同分享给他人。

由于本系列文章的内容随时可能发生更新变动,欢迎关注和收藏征服LeetCode系列文章目录一文以作备忘。

如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个 特殊数组

Aging 有一个整数数组 nums。如果 nums 是一个 特殊数组 ,返回 true,否则返回 false

示例 1:

rust 复制代码
输入:nums = [1]
输出:true
解释:
只有一个元素,所以答案为 `true`。

示例 2:

rust 复制代码
输入:nums = [2,1,4]
输出:true
解释:
只有两对相邻元素: `(2,1)` 和 `(1,4)`,它们都包含了奇偶性不同的数字,因此答案为 `true`。

示例 3:

rust 复制代码
输入:nums = [4,3,1,6]
输出:false
解释:
`nums[1]` 和 `nums[2]` 都是奇数。因此答案为 `false`。

提示:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100

解法 遍历判断相邻元素

遍历数组,如果存在一对相邻元素,它们的奇偶性不同,返回 false 。如果不存在,返回 true

python 复制代码
class Solution:
    def isArraySpecial(self, nums: List[int]) -> bool:
        return all(x % 2 != y % 2 for x, y in pairwise(nums))
java 复制代码
class Solution {
    public boolean isArraySpecial(int[] nums) {
        for (int i = 1; i < nums.length; i++) {
            if (nums[i - 1] % 2 == nums[i] % 2) {
                return false;
            }
        }
        return true;
    }
}
cpp 复制代码
class Solution {
public:
    bool isArraySpecial(vector<int>& nums) {
        for (int i = 1; i < nums.size(); i++) {
            if (nums[i - 1] % 2 == nums[i] % 2) {
                return false;
            }
        }
        return true;
    }
};
go 复制代码
func isArraySpecial(nums []int) bool {
    for i := 1; i < len(nums); i++ {
        if nums[i-1]%2 == nums[i]%2 {
            return false
        }
    }
    return true
}
rust 复制代码
impl Solution {
    pub fn is_array_special(nums: Vec<i32>) -> bool {
        for i in 0 .. nums.len() - 1 {
            if nums[i] % 2 == nums[i + 1] % 2 {
                return false;
            }
        }
        return true;
    }
}

复杂度分析

  • 时间复杂度: O ( n ) O(n) O(n) ,其中 n n n 是 n u m s nums nums 的长度。
  • 空间复杂度: O ( 1 ) O(1) O(1) 。
相关推荐
栋***t9 分钟前
从“工具”到“基建”,麦塔在线考试系统经历的时代变局与定位逻辑
java·大数据·数据库·开源软件·无纸化
载数而行52018 分钟前
C++进阶 Linux相关的静态库,动态库,第三方库
c++
薛定猫AI20 分钟前
【技术干货】大模型文档结构化提取实战:Python解析PDF发票并批量生成CSV
java·python·pdf
c2385623 分钟前
下篇:伸缩魔法!进阶吃透可变滑动窗口篇
c++·算法
来一碗刘肉面33 分钟前
顺序表的按值查找
数据结构·c++·算法
咖啡八杯33 分钟前
GoF设计模式——状态模式
java·面试·架构
荣码36 分钟前
Prompt工程实战:同一个需求换3种写法,效果差10倍
java·python
weixin_422329311 小时前
AgentScope Java ReActAgent 核心循环深度解析
java·开发语言·人工智能
952361 小时前
RabbitMQ - 高级特性
java·spring boot·分布式·后端·rabbitmq
尽兴-1 小时前
传统 Java/Vue 系统如何一步步接入 AI 维护
java·vue.js·人工智能·ai·大模型