双指针
发布日期:2021-11-18 17:47:06 浏览次数:16 分类:技术文章

本文共 1801 字,大约阅读时间需要 6 分钟。

双指针(Array)

  • 同向指针
    在这里插入图片描述
    通用步骤:
    在这里插入图片描述
  • 反向指针
    在这里插入图片描述

实战

  • Reverse String:反转字符串 334(反向指针)
public char[] reverstring(char[] str){	//初始化	int i=0,j=str.lerngth-1;	while(i

-26.去除带重复的元素(同向指针)

public int duplicates(int [] arr){ int i=0,j=0; while(j
  • 容器最多能装多少水;(反向双指针)
public int maxWater(int [] height){  int i=0,j=height.length-1;  int result=0;  while(i
height[j]){ j--; }else{ j++; } return result;}
  • 接雨水
    直观做法:遍历每个位置所能达到的最高点,然后减去当前的高度,把所有位置都加起来

在这里插入图片描述

public int trap(int[] height) {        int left=0,right=height.length-1;        int left_max=0,right_max=0,ans=0;        while(left
left_max){ left_max=height[left]; }else{ ans+=left_max-height[left]; } left++; }else{ if(height[right]>right_max){ right_max=height[right]; }else{ ans+=right_max-height[right]; } right--; } } return ans; }
  • 删除有序数组出现超过两次的元素
public int removeDuplicates(int[] nums) {        int i=0,j=0;        int flag=-1,cnt=0;        while(j
1){ j++; }else{ nums[i++]=nums[j++]; cnt++; } }else{ flag=nums[j]; nums[i++]=nums[j++]; cnt=1; } } return i; }
public String removeDuplicates(String S) {        int slow=-1;        char[] chars = S.toCharArray();        for (int fast = 0; fast < S.length(); fast++) {            if(slow==-1||chars[fast]!=chars[slow]){                slow++;                chars[slow]=chars[fast];            }else{                slow--;            }        }        return new String(chars,0,slow+1);    }

转载地址:https://blog.csdn.net/weixin_37850264/article/details/111573876 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:二分搜索法
下一篇:linux下的命令解释 tar -zxvf

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月10日 20时37分07秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

MySQL数据库从入门到实战应用(学习笔记二) 2019-04-27
种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林 2019-04-27
【C++】攻克哈希表(unordered_map) 2019-04-27
转:【答学员问】- 该如何根据岗位学习相关技能 2019-04-27
转:【答学员问】有什么经验教训,是你在面试很多次之后才知道的? 2019-04-27
消息队列:解耦、异步、削峰,现有MQ对比以及新手入门该如何选择MQ? 2019-04-27
【奇技淫巧】-- 三角形最小路径和 2019-04-27
【小技巧】argc和argv的用法 2019-04-27
学不下去了怎么办? 2019-04-27
二叉树的前中后序遍历(迭代法)(带动画) 2019-04-27
【小技巧】【XShell】【Xftp】Windows桌面与Linux虚拟机互传文件 2019-04-27
【redis入门】Centos下安装redis 2019-04-27
【redis入门】redis安装后相关知识串讲 2019-04-27
【redis】来吧,展示一下redis 发布-订阅模式 2019-04-27
讲通C/C++预编译/条件编译指令 #ifdef,#ifndef,#endif,#define,… 2019-04-27
【redis6.0.6】redis源码慢慢学,慢慢看 -- 第二天:空间配置(zmalloc) 2019-04-27
当下热点词再学:redis缓存预热、更新、降级,限流 2019-04-27
【redis6.0.6】redis源码慢慢学,慢慢看 -- 第五天:adlist 2019-04-27
别抖,OK? 操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流,串讲 2019-04-27
第六天:网络处理(anet部分)-- redis源码慢慢学,慢慢看【redis6.0.6】 2019-04-27