美文网首页
数据结构与算法之装最多水的容器

数据结构与算法之装最多水的容器

作者: Cliper | 来源:发表于2019-05-05 15:13 被阅读0次

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

样例
样例 1:

输入: [1, 3, 2]
输出: 2
解释:
选择 a1, a2, 容量为 1 * 1 = 1
选择 a1, a3, 容量为 1 * 2 = 2
选择 a2, a3, 容量为 2 * 1 = 2
样例 2:

输入: [1, 3, 2, 2]
输出: 4
解释:
选择 a1, a2, 容量为 1 * 1 = 1
选择 a1, a3, 容量为 1 * 2 = 2
选择 a1, a4, 容量为 1 * 3 = 3
选择 a2, a3, 容量为 2 * 1 = 2
选择 a2, a4, 容量为 2 * 2 = 4
选择 a3, a4, 容量为 2 * 1 = 2

    /**
     * @param heights: a vector of integers
     * @return: an integer
     * 双指针法:
     * 解题思路:
     *  最左最右两个指针,
     *  当左指针的长度 大于 右侧 指针 柱子长度 ,那么右侧指针向左移动
     *  反之 同理。
     *  把每次移动 (最左最右两个指针距离的长度 * 两个指针较小高度)
     *   跟上次的移动进行对比。
     *  时间复杂度 = N
     *  
     * 
     *  
     */
    public int maxArea(int[] heights) {
       int maxWater  = 0;
       int i = 0;
       int j = heights.length -1 ;
       while(i < j){//说明
             int tempWater = 0;
               if (heights[i] < heights[j]) {
                     tempWater = (j-i)*heights[i]; 
                     i++;
                     
               }else{
                     tempWater = (j-i)*heights[j];
                     j--;
               }
               if(maxWater < tempWater){
                  maxWater = tempWater ;
               }
       }
     return maxWater;

    }


相关文章

  • 数据结构与算法之装最多水的容器

    给定 n 个非负整数 a1, a2, ..., an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直...

  • 数据结构与算法

    数据结构与算法之美 数据结构与算法之美1--如何学数据结构与算法之美2--复杂度分析(上)数据结构与算法之美3--...

  • 算法--盛最多水的容器

    算法--盛最多水的容器 题目: 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ...

  • 数据结构--容器汇总(java & Android)

    数据结构与算法容器概览(java)容器类框架分析(1)(java)ArrayList源码分析容器类框架分析(2)(...

  • 小算法:盛水最多的容器

    题目:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n ...

  • 算法和数据结构

    算法和数据结构的区别 数据结构是用来存取数据的容器,大的数据用大箱子装,小的数据用小箱子装,比较杂乱的数据可以用袋...

  • 重温:数据结构与算法 - 03数组

    数据结构与算法之美 - 数组 数据结构与算法之美-学习大纲 什么数组? 数组是一种 线性表 数据结构。它用一组 连...

  • 数据结构之栈

    (注释:整篇数据结构与算法文集,部分总结于王争的《数据结构与算法之美》和李明杰的《恋上数据结构与算法》,加上自己的...

  • 数据结构之队列

    (注释:整篇数据结构与算法文集,部分总结于王争的《数据结构与算法之美》和李明杰的《恋上数据结构与算法》,加上自己的...

  • 数据结构之二分查找的概念

    (注释:整篇数据结构与算法文集,部分总结于王争的《数据结构与算法之美》和李明杰的《恋上数据结构与算法》,加上自己的...

网友评论

      本文标题:数据结构与算法之装最多水的容器

      本文链接:https://www.haomeiwen.com/subject/nzqhoqtx.html