comments | difficulty | edit_url | tags | ||
---|---|---|---|---|---|
true |
简单 |
|
给定一个长度为 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
我们遍历数组的前
时间复杂度
class Solution:
def orArray(self, nums: List[int]) -> List[int]:
return [a | b for a, b in pairwise(nums)]
class Solution {
public int[] orArray(int[] nums) {
int n = nums.length;
int[] ans = new int[n - 1];
for (int i = 0; i < n - 1; ++i) {
ans[i] = nums[i] | nums[i + 1];
}
return ans;
}
}
class Solution {
public:
vector<int> orArray(vector<int>& nums) {
int n = nums.size();
vector<int> ans(n - 1);
for (int i = 0; i < n - 1; ++i) {
ans[i] = nums[i] | nums[i + 1];
}
return ans;
}
};
func orArray(nums []int) (ans []int) {
for i, x := range nums[1:] {
ans = append(ans, x|nums[i])
}
return
}
function orArray(nums: number[]): number[] {
return nums.slice(0, -1).map((v, i) => v | nums[i + 1]);
}