2411. 按位或最大的最小子数组长度
2411. 按位或最大的最小子数组长度
题目链接:2411. 按位或最大的最小子数组长度
代码如下:
class Solution {
public:vector<int> smallestSubarrays(vector<int>& nums) {vector<int> res(nums.size());//计算右端点为i的子数组的或值for (int i = 0;i < nums.size();i++) {int x = nums[i];res[i] = 1;//子数组长的至少是1//循环直到nums[j]无法增大,其左侧元素也无法增大for (int j = i - 1;j >= 0 && (nums[j] | x) != nums[j];j--) {nums[j] |= x; //nums[j]增大,现在nums[j]=res[j] = i - j + 1; //nums[j]最后一次增大时的子数组长度就是答案}}return res;}
};