找到最大值j - 我在哪里arr [j]!= arr [i]

时间:2018-05-09 02:10:51

标签: algorithm dynamic-programming

  

对于输入数组{1,3,2,9},输出为3(arr [3]!= arr [0])

     

对于输入数组{1,3,2,9,1},输出为3(arr [3]!= arr [0])

我认为没有比n ^ 2循环更有用的解决方案

import java.util.*;

class Solution {
    int getTheDiff(int[] A) {
        int N = A.length;
        int result = 0;
        for (int i = 0; i < N; i++)
            for (int j = i; j < N; j++)
                if (A[i] != A[j])
                    result = Math.max(result, j - i);
        return result;
    }
}

此代码已替换为

    int diff = 0;

    int i =0;
    int[] arr = {-1,-2,-3,-5,-73};


    for (int j = 1; j < arr.length; j++) {
        if(arr[j] != arr[i]) {
            diff = Math.max(diff,j-i);
        }
    }
    System.out.println(diff);

但仍未能执行所有测试用例,不知道出了什么问题。

1 个答案:

答案 0 :(得分:0)

基本理念:答案是第一个非重复值terminal value之间的差异(在索引{{1 }或0)。

A.length - 1