当前位置: 首页> 财经> 访谈 > Leetcode每日一题 20240813 3151.特殊数组Ⅰ

Leetcode每日一题 20240813 3151.特殊数组Ⅰ

时间:2025/7/16 22:46:43来源:https://blog.csdn.net/2301_76443687/article/details/141174666 浏览次数:0次

题目描述

如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个 特殊数组 。
Aging 有一个整数数组 nums。如果 nums 是一个 特殊数组 ,返回 true,否则返回 false。
3151.特殊数组Ⅰ

测试案例及提示

示例 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

解题思路

分析题目
题目中说特殊数组需要满足每一对相邻元素都是奇偶性不一样的,然后看一下数据范围,只有100,考虑遍历数组,逐个判断。

对于两个元素,有三种方法可以判断奇偶性是否相同:

  • 分别使用余2,即:(a % 2 == b % 2)
  • 分别和1做与运算,即:(a & 1 == b & 1)
  • 异或后与1,即:(a ^ b & 1 == 1)

代码实现
C++

class Solution {
public:bool isArraySpecial(vector<int>& nums) {for (int i = 1; i < nums.size(); i++) {if ((nums[i] & 1) == (nums[i - 1] & 1)) {return false;}}return true;}
};
关键字:Leetcode每日一题 20240813 3151.特殊数组Ⅰ

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: