Проблема в подсчете самой длинной отсортированной подпоследовательности в массиве - PullRequest
1 голос
/ 03 июля 2019

У меня проблема с выполнением 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;
    }
}

Ответы [ 3 ]

2 голосов
/ 03 июля 2019

Не использовать len=len++;

Вместо этого используйте len++;.

Вы можете найти объяснение этому здесь: Что такое х после "x = x ++"?

1 голос
/ 03 июля 2019

len++ вернет len, и побочный эффект этой функции увеличится с 1 до len.Вы должны использовать len++ или len=++len, но второй вариант не рекомендуется.

0 голосов
/ 03 июля 2019

проблема лен

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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...