#Q1051. 或值至少为K的最短数组
或值至少为K的最短数组
题目背景
小明和小嘉一起做数学题,遇到了一个非常有意思的题目:找到一些数字中的或值至少为 的最短连续数组。
题目描述
根据输入、输出要求,输入两个正整数,随后输入 个正整数。输出或值至少为 的最短连续数组的长度。
如果一个数组中所有元素的按位或运算 的值 至少 为 , 那么我们称这个数组是 特别的。
我们所求的正是在数组中最短的特别的子数组的长度,如果特别子数组不存在,那么输出-1
。
输入要求
输入两行: 第一行, 输入两个数 ; 第二行, 输入 个正整数。
输出要求
输出一行,输出符合题意的最短子数组长度或-1。
样例
3 2
1 2 3
1
解释:
子数组 [3] 的按位或值为3, 因此我们输出长度1。注意: [2] 也是一个特别子数组。
3 10
2 1 8
3
解释:
子数组 [2, 1, 8] 的按位或值为11, 因此我们输出长度3。
2 0
1 2
1
解释:
子数组 [1] 的按位或值为1, 因此我们输出长度1。
数据规模与约定
的输入数据,满足: