其他分享
首页 > 其他分享> > leetcode 盛水最多的容器 解析

leetcode 盛水最多的容器 解析

作者:互联网

采用双指针法:

主要思想:定义头尾两个指针,分别向中间遍历,当相遇时结束循环。存储每一次遍历容器盛水的最大容量,并不断更新。 盛水的最大容量为 左右指针高度的最小值 乘以 左右指针的距离即宽度。 则可以得到最终的盛水容量。每一次比较头尾指针的高度,若头比尾高 则尾指针向左移动,若头比尾低,则头指针向右移动。

 1 var maxArea = function(arr) {
 2     var ans = 0;
 3     var head = 0; var tail = arr.length-1;
 4     while(head < tail){
 5         var tmp = Math.min(arr[head],arr[tail])*(tail-head);
 6         ans = Math.max(tmp,ans);
 7         if(arr[head] <arr[tail]){
 8             head++;
 9         }else{
10             tail--;
11         }
12     }
13     return ans;
14 };

 

标签:arr,盛水,head,tail,var,解析,leetcode,指针
来源: https://www.cnblogs.com/taue997/p/14340259.html