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 <= 100
0 <= 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 |
|