🔗 🟢 3151. Special Array I 1153

tags: Weekly Contest 398 陣列(Array)

題意

如果一個陣列的每對相鄰元素中的兩個數字具有不同的奇偶性,這個陣列就被認為是 特殊的

給定一個整數陣列 numsnums,如果 numsnums 是一個 特殊陣列,返回 truetrue,否則返回 falsefalse

思路:檢查所有相鄰元素的奇偶性

按照題意,檢查所有相鄰元素的奇偶性,如果發現有兩個相鄰元素具有相同的奇偶性,則返回 falsefalse ,否則返回 truetrue

複雜度分析

  • 時間複雜度:O(n)O(n),其中 nn 是陣列的長度。需要遍歷一次給定陣列的所有元素來檢查每對相鄰元素的奇偶性。
  • 空間複雜度:O(1)O(1),只使用了常數空間來儲存變數 nn 和迴圈控制變數。
1
2
3
4
5
6
7
8
class Solution:
def isArraySpecial(self, nums: List[int]) -> bool:
# return all(x & 1 != y & 1 for x, y in pairwise(nums))
n = len(nums)
for i in range(1, n):
if nums[i] & 1 == nums[i - 1] & 1:
return False
return True
1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
bool isArraySpecial(vector<int>& nums) {
int n = nums.size();
for (int i = 1; i < n; i++) {
if ((nums[i] & 1) == (nums[i - 1] & 1)) {
return false;
}
}
return true;
}
};

寫在最後

Cover photo is remixed from @吃肥皂泡泡, thanks for their work!