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