说,如果我有一个2D数组:
int[][] s = {{1, 4, 5, 10, 11}, {2, 6, 8}, {3, 9, 12}, {7}};
我想编写一个方法来确保下一行的长度比数组的其余部分的长度短,我该怎么做呢?
基本上我怎么写一个方法,如果没有行更长,则返回true 比前一行,否则为假?
这是我的逻辑,即使我很远,只是不明白逻辑上如何去理解我猜。
public static boolean rowDecrease(int[][] t){
//result empty array here
for (int j = 0; j < t.length; j++) {
for (int i = 0; i< t[i].length; i++) { // Sum of Columns
if (t[i].length>result){
result = t[i].length;
return false;
}
if (t[i].length<result){
result = t[i].length;
return true;
}
}
}
答案 0 :(得分:0)
我认为类似的代码可以解决您的问题:
boolean resultado = true;
for(int i = 1; i < s.length; i++){
if(s[i].length >= s[i-1].length) return false;
}
return true;
答案 1 :(得分:0)
请在将来发布之前尝试或提出现有代码的问题。否则,我们必须开始向您发送发票。
public boolean shorterThanTheRest(int[][] s){
int shortestLength = s[0].length + 1;
for(int i = 0; i < s.length; i++)
if(s[i].length < shortestLength)
shortestLength = s[i].length;
else
return false;
return true;
}
答案 2 :(得分:0)
您可以使用Java Stream执行此操作:
int[][] s = {{1, 4, 5, 10, 11}, {2, 6, 8}, {3, 9, 12}, {7}};
List<Integer> S = Arrays.stream(s).map(i->i.length).collect(Collectors.toList());
boolean is = IntStream.range(0, S.size()).skip(1).allMatch(i->S.get(i)<=S.get(i-1));
我希望它有所帮助。