我在执行计算最长排序数组的Java程序时遇到问题,但结果始终等于初始值max = 1
,问题出在哪里?
package longestsortedsquence;
public class Longestsortedsquence {
public static void main(String[] args) {
int[] arry={3,98,274,943,23,56,23,4};
System.out.print(longestsortedsequence(arry));
}
public static int longestsortedsequence(int[] arry){
if(arry==null){
return 0;
}
int max=1;
int len=1;
for(int i=0;i<arry.length-1;i++){
if(arry[i]<=arry[i+1]){
len=len++;
}
else{
len=1;
}
if(max<len){
max=len;
}
}
return max;
}
}
答案 0 :(得分:2)
答案 1 :(得分:1)
len++
将返回len
,该函数的副作用增加1至len
。
您应该使用len++
或len=++len
,但不建议使用第二个选项。
答案 2 :(得分:0)
问题很严重
package longestsortedsquence;
public class Longestsortedsquence {
public static void main(String[] args) {
int[] arry={3,98,274,943,23,56,23,4};
System.out.print(longestsortedsequence(arry));
}
public static int longestsortedsequence(int[] arry){
if(arry==null){
return 0;
}
int max=1;
int len=1;
for(int i=0;i<arry.length-1;i++){
if(arry[i]<=arry[i+1]){
len=len++;<---- change it to `len++`
}
else{
len=1;
}
if(max<len){
max=len;
}
}
return max;
}
}