盛水最多的容器

描述

给定一个数组height,长度为n,每个数代表坐标轴中的一个点的高度,height[i]是在第i点的高度,请问,从中选2个高度与x轴组成的容器最多能容纳多少水
1.你不能倾斜容器
2.当n小于2时,视为不能形成容器,请返回0
3.数据保证能容纳最多的水不会超过整形范围,即不会超过231-1

image.png

image.png

image.png

解题思路:双指针,先从左右边界算面积,然后确定是否是最大面积,每次对比完会去舍弃最短的边

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param height int整型一维数组 
     * @return int整型
     */
    public int maxArea (int[] height) {
        // write code here
        if(height.length<2){
            return 0;
        }
        int left = 0;
        int right = height.length - 1;
        int maxArea = 0;
        while(left < right){
            int area = Math.min(height[left], height[right]) *(right - left);
            maxArea = Math.max(maxArea,area);
            if(height[left]

你可能感兴趣的:(盛水最多的容器)