­

每天一道leetcode-11盛最多水的容器

  • 2019 年 10 月 4 日
  • 筆記

昨天的题解

题目

每天一道leetcode-11盛最多水的容器 分类:双指针 中文链接: https://leetcode-cn.com/problems/container-with-most-water/description/ 英文链接 https://leetcode.com/problems/container-with-most-water/description/

题目详述

题目.png

题目详解

思路

  • 从两边向中间,比较两线高度,每次都舍弃最短的并向中心移动一位,同时根据两边距离和最短边高度得到面积。由于最短边是每个长方形面积的决定因素,因而每次只挪动短边的一端,直到两端相遇。

代码

代码讲解

  • 10-15行就是如果右边的矮一些(水桶容量取决于短板),那么高度就取右边的高度,然后right–的意思就是因为底的宽度在减小,那么由于右边的高度较小的一边,肯定是令右边往左边靠,这样才有可能找到更大的容积的容器;
  • 15-18行同上,只不过是left++
  • 20-21行就是把中间的可能最大的容积保存下来,