Java 包含递增整数的数组
我从事下列工作已经有一段时间了,但我想不出来 给定一组分数,如果每个分数等于或大于之前的分数,则返回true。数组的长度为2或更多 分数增加([1,3,4])→ 真的 分数增加([1,3,2])→ 假的 分数增加([1,1,4])→ 真的 我的许多尝试之一:Java 包含递增整数的数组,java,arrays,boolean,Java,Arrays,Boolean,我从事下列工作已经有一段时间了,但我想不出来 给定一组分数,如果每个分数等于或大于之前的分数,则返回true。数组的长度为2或更多 分数增加([1,3,4])→ 真的 分数增加([1,3,2])→ 假的 分数增加([1,1,4])→ 真的 我的许多尝试之一: public boolean scoresIncreasing(int[] scores) { int i = 0; if(scores[i]<=scores[i+1]){ i++; return true;
public boolean scoresIncreasing(int[] scores) {
int i = 0;
if(scores[i]<=scores[i+1]){
i++;
return true;
}
return false;
}
公共布尔分数递增(int[]分数){
int i=0;
如果(在每个示例中得分[i],得分[0]
我不认为循环是必要的
它是(或递归,但从循环开始)。您的代码只检查分数[0]我建议您从循环开始(即,您只比较两个数字)。您可以从第二个分数开始循环,如果任何分数小于前一个分数,则您的条件为false
(您可以立即返回)。如果到达数组的末尾,并且没有任何分数违反条件returntrue
。例如
public static boolean scoresIncreasing(int[] scores) {
for (int i = 1; i < scores.length; i++) {
if (scores[i] < scores[i - 1]) {
return false;
}
}
return true;
}
或为该情况添加一个防护,如
if (scores.length < 2) return true;
if(scores.length<2)返回true;
是的,循环是必要的。否则,您只是告诉编译器检查元素0和元素1。您需要将代码更改为
public boolean scoresIncreasing(int[] scores, int length)
for(int i=0; i<length-1; i++) {
if(scores[i]>scores[i+1])
return false;
}
return true;
}
公共布尔分数递增(int[]分数,int长度)
for(inti=0;iscores[i+1])
返回false;
}
返回true;
}
作为对编辑2的响应:第一次检查时仍返回true。请参阅上面的代码以供参考!!!循环(或递归)对于这一个来说确实是必要的,因为您打算检查数组的所有元素。如果没有循环,您就不能使用正在递增的i
的新值,因此i++
是无用的,导致它只检查分数[0]
和分数[1]
。这也是它总是返回true的原因:它只检查前两个元素,在示例测试中,前两个元素都满足条件
编辑:在第二次编辑中,在第一次满足条件时仍返回true。这意味着您仍然只检查前两个元素。相反,您应该做的是逻辑性的,将每个新结果与存储的值进行比较,并在最后返回该值,这样当您看到ord中的两个值时就不会立即返回呃
if (scores.length < 2) return true;
public boolean scoresIncreasing(int[] scores, int length)
for(int i=0; i<length-1; i++) {
if(scores[i]>scores[i+1])
return false;
}
return true;
}