当前位置: 首页 > news >正文

LeetCode Hot100 (双指针)

283. 移动零

标记指针,当前位置为0向后面移动即可

 class Solution {public void moveZeroes(int[] nums) {int l = 0;for(int i=0;i<nums.length;i++){if(nums[i]==0){if(l<i){l=i+1;}while(l<nums.length&&nums[l]==0) l++;if(l<nums.length){nums[i]=nums[l];nums[l]=0;l++;}}}String s=nums.toString();System.out.println(s);}
}

 11.成最多水的容器

一个比较简单的做法,我们可以直接从高进行枚举,看看水会淹没到哪个位置,双指针左右移动即可

class Solution {public int maxArea(int[] height) {int maxx=0;for(int i=0;i<height.length;i++){maxx=Math.max(height[i],maxx);}int l=0;int ans=0;int r=height.length-1;int n=r-1;for(int i=1;i<=maxx;i++){while(l<=n&&height[l]<i){l++;}while(r>=0&&height[r]<i){r--;}if(r<=l){break;}ans=Math.max((r-l)*i,ans);}return ans;}
}

15.三数之和

我们注意到数字不能有重复的,我们对数组进行排序之后,固定最左边位置的数字,然后枚举右边的两个数字即可,为了降低时间复杂度,双指针维护

class Solution {public List<List<Integer>> threeSum(int[] nums) {List< List<Integer> >res = new ArrayList<>();Arrays.sort(nums);
//        System.out.println(Arrays.toString(nums));for(int i = 0; i < nums.length ; i++){if(i>0){if(nums[i]==nums[i-1]){continue;}}if(nums[i]>0){continue;}int l=i+1;int r=nums.length-1;while(l<r){while(l<=r&&nums[l]+nums[r]+nums[i]<0){l++;}while(l<r&&nums[l]+nums[r]+nums[i]>0){r--;}if(l>=r){break;}if(nums[i]+nums[l]+nums[r]==0){List<Integer>arr=List.of(nums[i],nums[l],nums[r]);res.add(arr);}l++;while(l<nums.length&&nums[l]==nums[l-1]){l++;}}}return res;}
}

42. 接雨水

最简单的困难题

实际上每一个点看看前面的最大值和后面的最大值,也就是那两个可以把他包围起来,然后两个最大值取个较小值就ok了

class Solution {public  int trap(int[] height) {if(height.length==0){return 0;}int []maxx1=new int[height.length+3];int []maxx2=new int[height.length+3];maxx1[0]=height[0];for(int i=1;i<height.length;i++){maxx1[i]=Math.max(maxx1[i-1],height[i]);}for(int i=height.length - 1;i>=0;i--){maxx2[i]=Math.max(maxx2[i+1],height[i]);}int ans=0;for(int i=1;i<height.length - 1;i++){int f=ans;ans=ans+Math.max(0,Math.min(maxx1[i-1],maxx2[i+1])-height[i]);}return ans;}
}

相关文章:

  • F5《2025年应用战略现状》报告:AI 落地加速,企业战略从讨论迈向行动
  • 【风控】模型算法区分度指标KS
  • 【C++进阶篇】红黑树的实现(赋源码)
  • 【软件使用】RSS(Really Simple Syndication)
  • 养生指南:五维提升健康品质
  • 重拾童年,用 CodeBuddy 做自己的快乐创作者
  • S7-1500PLC通过工艺对象实现V90总线伺服定位控制(105报文)
  • JavaWeb Web基础
  • Git命令汇总(自用,持续更新update 5/23)
  • Gartner《如果有效评估Generative AI项目的投资回报》学习心得
  • 账号冻结风险升级!亚马逊视频验证新增3大审核标准
  • Linux进程信号(五)之捕捉信号
  • c++11特性——lambda对象、包装器
  • 市面上有好用的拓客系统吗?
  • 计算机发展史
  • Java中static关键字深度解析:从入门到高阶实战
  • Vaptcha 手势、轨迹验证码
  • Unity飞机大战-射击类游戏3D虚拟
  • 嵌入式STM32学习——串口USART 2.2(串口中断接收)
  • 腾讯音乐二面
  • 网站代码怎么做/今日新闻头条内容
  • 做外汇都看那些网站/如何免费找精准客户
  • 汕头百姓网交友/seo网站优化
  • 网站后台日志/广安seo外包
  • 做网站的人搞鬼少首页文件/学网络营销
  • 做微博分析的网站/私人网站管理软件