【问题标题】:maximum value of minimum values in sub-array of size x [duplicate]大小为 x 的子数组中最小值的最大值 [重复]
【发布时间】:2021-06-12 10:20:13
【问题描述】:

我采访了一家公司,他们问我滑动窗口最小值问题如下 -

 Find maximum value of minimum values in sub-array of size x
 e.g. arr = [2,5,4,6,8] and x = 3 then subarray would be [2,5,4], [5,4,6] and [4,6,8]. 
 The respective minimum values are 2,4 and 4. The maximum of these values is 4.

我返回了下面的代码,但它给出了Time Limit Exceeded 进行一些测试

public static int max(int x, List<Integer> num){
 int n = num.size();
 List<Integer> minList = new ArrayList<>();
 for(int i = 0; i <= n - x; i++){
    int minVal = Integer.MAX_VALUE;
    for(int j = i; j < i + x; j++){
        minVal = Math.min(min, num.get(j));
    }
    minList.add(minVal);
  }
  return Collections.max(minList);
} 

谁能更正或指出正确的。

【问题讨论】:

    标签: java algorithm sliding-window


    【解决方案1】:

    您的代码的时间复杂度为 O(n*m),但有一个时间复杂度为 O(n) 的解决方案,它只需要一次遍历数组。例如,看看here

    【讨论】:

    • 说有一个解决方案没有任何暗示该解决方案是什么,这不是一个有用的答案。可能是一个很好的评论,但这不是一个答案。
    • 仅链接的答案不是good answers
    猜你喜欢
    • 2020-03-10
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 2022-12-20
    • 1970-01-01
    • 2021-04-11
    • 2013-11-11
    相关资源
    最近更新 更多