3173. 相邻元素的按位或 🔒
题目描述
给定一个长度为 n 的数组 nums,返回一个长度为 n - 1 的数组 answer 使得 answer[i] = nums[i] | nums[i + 1],其中 | 表示按位 OR 操作。
示例 1:
输入:nums = [1,3,7,15]
输出:[3,7,15]
示例 2:
输入:nums = [8,4,2]
输出:[12,6]
示例 3:
输入:nums = [5,4,9,11]
输出:[5,13,11]
提示:
2 <= nums.length <= 1000 <= nums[i] <= 100
解法
方法一:遍历
我们遍历数组的前 \(n - 1\) 个元素,对于每个元素,计算它和它的下一个元素的按位或值,将结果存入答案数组中。
时间复杂度 \(O(n)\),其中 \(n\) 是数组的长度。忽略答案数组的空间消耗,空间复杂度 \(O(1)\)。
1 2 3  |  | 
1 2 3 4 5 6 7 8 9 10  |  | 
1 2 3 4 5 6 7 8 9 10 11  |  | 
1 2 3 4 5 6  |  | 
1 2 3  |  |