目录

  • 有序数组/链表去重 -- 快慢指针
  • 移除元素
  • 移动零

有序数组/链表去重 – 快慢指针

Leecode 26题 : 有序数组去重

快指针表示遍历数组到达的下标位置,慢指针表示下一个不同元素要填入的下标位置

class Solution {public:int removeDuplicates(vector<int>& nums) {if(nums.size()==0) return 0;// 快指针表示遍历数组到达的下标位置,慢指针表示下一个不同元素要填入的下标位置int slow=0,fast=0;while(fast<nums.size()){if(nums[slow] != nums[fast]){slow++;nums[slow] = nums[fast];}fast++;}return slow+1;}
};

力扣第 83 题 : 有序链表去重

class Solution {public:ListNode* deleteDuplicates(ListNode* head) {if(head==nullptr) return nullptr;ListNode *slow,*fast;slow=fast=head;while(fast!=nullptr){if(fast->val != slow->val){// nums[slow] = nums[fast];slow->next = fast;// slow++;slow=slow->next;}fast=fast->next;}// 断开与后面重复元素的连接slow->next = nullptr;return head;}
};

移除元素

力扣第 27 题

[0 slow)为不等 val 元素区间

class Solution {public:int removeElement(vector<int>& nums, int val) {int slow=0,fast=0;while(fast<nums.size()){if(nums[fast]!=val){ // 先赋值再前进nums[slow]=nums[fast];slow++;}fast++;}return slow;}
};

移动零

力扣第 283 题

相当于移除nums中的所有 0,然后再把后面的元素都赋值为 0

class Solution {public:void moveZeroes(vector<int>& nums) {int p=this->removeElement(nums,0);for(;p<nums.size();p++)nums[p]=0;}int removeElement(vector<int>& nums,int val){int fast=0,slow=0;while(fast < nums.size()){if(nums[fast] !=val){nums[slow]=nums[fast];slow++;}fast++;}return slow;}
};

leecode - 入门 -- 双指针秒杀数组/链表题目相关推荐

  1. leecode - 入门 -- 双指针总结

    目录 快慢指针 1 判定链表中是否含有环 2 已知链表中含有环,返回这个环的起始位置 3 寻找链表的中点 4 寻找链表的倒数第n个元素 左右指针 1 二分查找 2 两数之和 -- 有序数组 3 反转数 ...

  2. 数组双指针直接秒杀七道题目

    学算法认准 labuladong 后台回复打卡参与刷题挑战 读完本文,可以去力扣解决如下题目: 26. 删除有序数组中的重复项(简单) 83. 删除排序链表中的重复元素(简单) 167. 两数之和 I ...

  3. Java基础入门笔记-数组链表

    数组链表ArrayList ArrayList是JDK自带的基础工具类. java.util.ArrayList 也是一个容器(里面存放对象) 1.添加对象add: 2.删除对象remove: 3.遍 ...

  4. 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)

    常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...

  5. 算法总结——堆栈、字符串、数组类题目

    先说stack的题目 stack的实现:链表,数组 题目: (1)简单的:min stack,一个数组实现三个stack (2)经典的stack问题:经典汉诺塔问题,逆波兰式计算或者产生逆波兰式,简化 ...

  6. 数组双指针和数组窗口

    0. 内容说明 最近在自己编写一些小的算法的时候,深感自己的算法过于臃肿.碰巧Datawhale在新的一期组队学习中组织了数据结构与算法的课程学习.于是就参加了,再次感谢Datawhale~~ 首先跟 ...

  7. LeetCode链表题目分析

    文章目录 题目 206 反转链表 160 相交链表 21 合并两个有序链表 86 分隔链表 142 环形链表 || 92 反转链表 || 138 复制带随机指针的链表 817 链表组件 数据结构 哈希 ...

  8. 数组(二):大厂面试不得不看的高频数组类型题目

    数组篇(二) LeetCode905:按奇偶排序数组 解题思路 代码实现 LeetCode11:盛水最多的容器 解题思路 代码实现 LeetCode66:加一 解题思路 代码实现 LeetCode12 ...

  9. LeetCode数组高频题目整理

    刷题是应届生找工作不可缺少的部分,一种公认的刷题策略是按类别刷题,可是每个类别也有许多题,在有限的时间里到底该刷哪些题呢?个人根据LeetCode官方给出的每个题目的出现频率,整理并收录了每个类别里高 ...

最新文章

  1. C#反序化json字符串,不用区分大小写
  2. int *p,cons int *p,int const *p,int * const p,const int * const p,int const * const p的区别
  3. mybatis使用时遇到的一些问题------模糊查询、处理大于号小于号、相关函数替换空值...
  4. java多线程安全解决方案_java常用知识:多线程安全问题的解决方法-Lock锁
  5. SPOJ 962 Intergalactic Map (从A到B再到C的路线)
  6. My97DatePicker详细说明
  7. 【Spark】开发Spark选择Java还是Scala?
  8. 程序人生001--点滴感悟-随笔01
  9. Using BLAS and LAPACK from C/C++
  10. 【编程好习惯】使用sizeof减少内存操作失误
  11. java混淆加密_源代码部分加密混淆方案
  12. replace vfp_VFP字符串替换函数CHRTRAN()使用方法
  13. 三点组成的三角形的面积计算公式(海伦公式)
  14. Linux程序包管理命令之rpm
  15. 关于PS CC 不能直接拖图片的问题
  16. nodejs部署的服务用localhost+端口可以访问,换成ip+端口就无法访问
  17. 如何应对数千微服务组件带来的挑战?
  18. NDM(Neat Download Manager)删除所有下载记录
  19. R语言和Hadoop系统架构在大数据分析中的应用
  20. bzoj1933: [Shoi2007]Bookcase 书柜的尺寸

热门文章

  1. Struts2——(3)ValueStack(值栈)
  2. C++基础:指针,函数指针
  3. 谢希仁编著《计算机网络》1-6章汇总
  4. 大数据技术落地需要注意哪些问题
  5. android space边框,Android中的图片视图的边框?
  6. tensorflow入门笔记(一)
  7. react classname多个_React全家桶简介
  8. 设计一个python程序来计算显示通过如图_Python程序设计 17计算机、物联网 合班-中国大学mooc-试题题目及答案...
  9. AcWing 885. 求组合数 I(递推式预处理)
  10. Selenium滚动条window.scrollTo和window.scrollBy