Leetcode:3095
1,题目
2,思路
以选择排序的思路让每次内循环首元素为开始判断,找到最小的子数组。
res:如果最后没有记载和初始值一致就表示根本没有最小子数组则返回-1
3,代码
public class Leetcode3095 {
public static void main(String[] args) {
System.out.println(new Solution3095().minimumSubarrayLength(new int[]{1,2,3},2));
}
}
class Solution3095 {
public int minimumSubarrayLength(int[] nums, int k) {
int res=Integer.MAX_VALUE;//int的最大值,nums是int类型
for(int i=0;i<nums.length;i++){
int num=0;//每次统计子数组的初始OR对象
for(int j=i;j<nums.length;j++){
num|=nums[j];
if(num>=k){
res=Math.min(res,j-i+1);
break;
}
}
}
return res==Integer.MAX_VALUE?-1:res;
}
}