小编Hel*_*ing的帖子

*第一个*最长的增加子序列

最长的子序列是众所周知的问题,我有一个耐心算法的解决方案.

问题是,我的解决方案给了我"最长的增长序列",而不是出现的第一个最长的增长序列.

不同之处在于序列的某些成员在第一个中的数字较大(但序列长度完全相同).

获得第一个序列的结果比预期的要困难得多,因为拥有最佳序列并不容易转化为具有第一个序列.

我想过做我的算法,然后找到长度为N的第一个序列,但不知道怎么做.

那么,你如何从一系列随机整数中找到第一个增长最长的子序列?

我的代码片段:

  public static void main (String[] args) throws java.lang.Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int inputInt;
        int[] intArr;

        try {
            String input = br.readLine().trim();
            inputInt = Integer.parseInt(input);
            String inputArr = br.readLine().trim();
            intArr = Arrays.stream(inputArr.split(" ")).mapToInt(Integer::parseInt).toArray();
        } catch (NumberFormatException e) {
            System.out.println("Could not parse integers.");
            return;
        }
        if(inputInt != intArr.length) {
            System.out.println("Invalid number of arguments.");
            return;
        }

        ArrayList<ArrayList<Integer>> sequences = new ArrayList<ArrayList<Integer>>();

        int sequenceCount = 1;
        sequences.add(new ArrayList<Integer>());
        sequences.get(0).add(0); …
Run Code Online (Sandbox Code Playgroud)

java algorithm

7
推荐指数
1
解决办法
228
查看次数

标签 统计

algorithm ×1

java ×1