盛水最多的容器,局部最优解

 

 
import java.util.*;

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param height int整型一维数组 
     * @return int整型
     */
    public int maxArea (int[] height) {
        // write code here
        // max 盛水最多的,初始化为0
        // 数组A, B
        // 从A中取出第一个元素
        // 遍历B,从B中取出第二个元素,B2与A1的最小值*(2-1)作为局部最优结果,与max比较,最大值作为max
        // 从A中取出第二个元素,遍历B...
        // 返回max
        int max=0;
        for(int i=0; i<height.length; i++){
            int tmp = height[i];
            if(tmp*(height.length-i)<=max){
                continue;
            }
            for(int j=i+1; j<height.length;j++){
                if(tmp<=height[j]){
                    if(tmp*(j-i)>max){
                        max = tmp*(j-i);
                    }
                }else{
                    if(height[j]*(j-i)>max){
                        max = height[j]*(j-i);
                    }
                }
            }
        }
        return max;

    }
}

 

posted @ 2022-11-13 17:49  northli  阅读(9)  评论(0编辑  收藏  举报