编写一个函数,将一个由整数(按非递减顺序排序)和一个整数A
组成的非空数组作为参数,检查 A 是否至少包含一次数字(从到的每个数字),并且不包含其他数字。例如,使用以下值:N
K
1,2, ..., K
1
K
int[] A = {1,1,2,3,3};
int K = 3;
该函数应该返回true
。如果你问
int[] A = {1, 1, 3};
int K = 2;
或者
int[] A = {1, 1, 2, 3};
int K = 2;
该函数应该返回false
。
我尝试编写以下函数,但无法正常工作
public boolean function(int[] A, int K){
int n = A.length;
for (int i = 0; i < n-1; i++){
if (A[i+1] >= A[i]+1)
return true;
if (A[0] != 1 && A[i] != K)
return false;
else
return true;
}
return true;
}
有什么问题?如果有人在代码中发现错误,非常感谢大家。
PS:我忘了补充一点,复杂性应该不会差O(n)
。