LeetCode 3151.特殊数组 I
【LetMeFly】3151.特殊数组 I
力扣题目链接:https://leetcode.cn/problems/special-array-i/
如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个 特殊数组 。
Aging 有一个整数数组 nums
。如果 nums
是一个 特殊数组 ,返回 true
,否则返回 false
。
示例 1:
输入:nums = [1]
输出:true
解释:
只有一个元素,所以答案为 true
。
示例 2:
输入:nums = [2,1,4]
输出:true
解释:
只有两对相邻元素: (2,1)
和 (1,4)
,它们都包含了奇偶性不同的数字,因此答案为 true
。
示例 3:
输入:nums = [4,3,1,6]
输出:false
解释:
nums[1]
和 nums[2]
都是奇数。因此答案为 false
。
提示:
1 <= nums.length <= 100
1 <= nums[i] <= 100
解题方法:模拟
从第二下标开始遍历数组,如果当前元素和上一个元素奇偶性不同,则直接返回false
。
最终遍历结束则返回true
。
如何判定两个数奇偶性是否相同?只需要看两个数对2取模的结果是否相等。
- 时间复杂度 O ( l e n ( n u m s ) ) O(len(nums)) O(len(nums))
- 空间复杂度 O ( 1 ) O(1) O(1)
AC代码
C++
class Solution {
public:bool isArraySpecial(vector<int>& nums) {for (int i = 1; i < nums.size(); i++) {if (nums[i] % 2 == nums[i - 1] % 2) {return false;}}return true;}
};
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/141176978