[Leedcode][JAVA][第11题][盛最多水的容器][双指针][贪心]

【问题描述】11.盛最多水的容器

给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

示例:

输入:[1,8,6,2,5,4,8,3,7]
输出:49

【解答思路】

1. 贪心算法 暴力

求解是要获得最大面积,即以第一个面积值作为假定的最大面积,然后不断的用更大的值刷新,直到将所有的面积都计算完毕。
S(i,j)=min(h[i],h[j])×(j−i)
时间复杂度:O(N^2) 空间复杂度:O(1)

class Solution {
    public int maxArea(int[] height) {
        int area = 0;

        for (int i = 0; i < height.length - 1; i++) {
            int iValue = height[i];
            for (int j = i + 1; j < height.length; j++) {
                int jValue = height[j];
                int hValue = Math.min(iValue, jValue);
                int lValue = j - i;
                int aValue = lValue * hValue; 

                if (aValue > area) {
                    area = aValue;
                }
            }
        }

        return area;
    }


}


2. 双指针

时间复杂度:O(N) 空间复杂度:O(1)

    public int maxArea(int[] height) {
        int area = 0;

        for (int i = 0; i < height.length - 1; i++) {
            int iValue = height[i];
            for (int j = i + 1; j < height.length; j++) {
                int jValue = height[j];
                int hValue = Math.min(iValue, jValue);
                int lValue = j - i;
                int aValue = lValue * hValue; 

                if (aValue > area) {
                    area = aValue;
                }
            }
        }

        return area;
    }


}

【总结】

1. 暴力法思考 逐渐优化
2. 双指针 相清楚移动哪一个可以优化
3.思路一开始找两个最大值,由内推到外,过于复杂,应及时放弃思路
image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 9,086评论 0 2
  • 字符串匹配KMP算法详解 1. 引言 以前看过很多次KMP算法,一直觉得很有用,但都没有搞明白,一方面是网上很少有...
    张晨辉Allen阅读 7,237评论 0 3
  • 题目:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n ...
    关山Kwan阅读 1,031评论 0 0
  • 2020-01-03晨间日记 今天印象 * 天气状况: * * 虽然不能要求每天都是晴天, * * 但在合适的时候...
    观茉阅读 3,332评论 0 2
  • 哈哈哈哈哈嗝 首先火锅镇楼 开学前两天晚8.30吃到了心心念念的火锅 贼开心☞毕竟我抢了很久的小龙坎套餐 贼开心☞...
    慆慆不归y阅读 2,481评论 0 0

友情链接更多精彩内容