力扣热题100——一刷day02

编程入门 行业动态 更新时间:2024-10-24 06:28:22

<a href=https://www.elefans.com/category/jswz/34/1669243.html style=力扣热题100——一刷day02"/>

力扣热题100——一刷day02

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、力扣11. 盛最多水的容器
  • 二、力扣15. 三数之和
  • 三、力扣42. 接雨水


前言


一、力扣11. 盛最多水的容器

采用双指针处理这道题目,面积res由两条边中最矮的那一条决定,从两端开始向内移动,每次只移动两条边种最矮的那一条,向内移动时,如果遇到比当前移动边更矮的总面积会减小,遇到更高的总面积可能会增大,如果,最大值在内部取到,那么最大值的最矮边一定大于外侧未移动的边,故最大值不会丢失

class Solution {public int maxArea(int[] height) {int res = 0;for(int i = 0, j = height.length-1; i < j; ){if(height[i] < height[j]){res = Math.max(res,(j-i) * height[i++]);}else{res = Math.max(res,(j-i) * height[j--]);}}return res;}
}

二、力扣15. 三数之和

同一个数组内取三个元素,三个元素互不相同,且取过的数不可以重复取,可对数组排序

class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> res = new ArrayList<>();Arrays.sort(nums);for(int i = 0; i < nums.length - 2;){int left = i + 1, right = nums.length-1;if(nums[i]>0){return res;}while(left < right){int cur = nums[i] + nums[left] + nums[right];if(cur < 0){left ++;}else if(cur > 0){right --;}else{res.add(Arrays.asList(nums[i], nums[left], nums[right]));while(left < right && nums[left] == nums[left + 1])left++;while(left < right && nums[right] == nums[right-1])right--;left ++;right --;}}while(i < nums.length-2 && nums[i] == nums[i+1])i++;i ++;}return res;}
}

三、力扣42. 接雨水

class Solution {public int trap(int[] height) {int count = 0;Deque<Integer> deq = new LinkedList<>();deq.offerLast(0);for(int i = 1; i < height.length; i ++){if(height[i] < height[deq.peekLast()]){deq.offerLast(i);}else if(height[i] == height[deq.peekLast()]){deq.pollLast();deq.offerLast(i);}else{while(!deq.isEmpty() && height[i] > height[deq.peekLast()]){int index = deq.pollLast();if(deq.isEmpty()){break;}int left = deq.peekLast();int right = i;int high = Math.min(height[left], height[right]) - height[index];int len = right - left - 1;count += high * len;}deq.offerLast(i);}}return count;}
}

更多推荐

力扣热题100——一刷day02

本文发布于:2023-12-08 03:07:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1672175.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:力扣热题

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!