人的梦想,永远不会结束!——黑胡子

继续我的leetcode刷题,才28道,不知道什么有200道题!

27. 移除元素

要知道数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖。

双指针法
双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。
双指针法(快慢指针法)在数组和链表的操作中是非常常见的,很多考察数组、链表、字符串等操作的面试题,都使用双指针法。

快慢指针做法可以减少时间复杂度 ,从两个for变成一个for

class Solution {public int removeElement(int[] nums, int val) {int  low  = 0;for(int  high = 0;high< nums.length; high ++){if(val  != nums[high]){nums[low ++] = nums[high];}}return low;}
}

相向双指针方法
相向双指针方法,基于元素顺序可以改变的题目描述改变了元素相对位置,确保了移动最少元素
这就是首尾指针

> class Solution {>     public int removeElement(int[] nums, int val) {>         int  left  = 0,right = nums.length -1;
>         while(left<= right){>             while(left <=  right && nums[left]  !=val){//这里是while而不是if
>                 left ++;
>             }
>            while(right >= left &&  nums[right] == val){>                 right --;//--而不是++
>             }
>             if(left <=right){>                 nums[left++] =nums[right--];
>             }
>         }
>         return  left;
>
>     } }

26.删除排序数组中的重复项

想法是 不重复就替代,重复就直接进行下一次循环

class Solution {public int removeDuplicates(int[] nums) {int  low = 0;for(int  high = 1; high < nums.length;high++){if(nums[low] ==nums[high])continue;else{nums[++low] = nums[high];}}return low+1; //low是数组的下标  而要返回的是数组的长度   }
}

283. 移动零

需要保证数组的相对有序 没有保证有序 这是错误做法

class Solution {public void moveZeroes(int[] nums) {int left = 0 ,right = nums.length -1;while(left <= right){while(left <= right &&  nums[left]!= 0)left++;while(right >=left && nums[right] ==0)right--;if(left <=right){nums[left++] = nums[right--];}}}
}

正确解法:

class Solution {public void moveZeroes(int[] nums) {int low = 0;for(int  high = 0; high < nums.length; high++){if(nums[high] !=0 ){nums[low++] =nums[high];}}for(int i = low ; i < nums.length; i++)nums[i] = 0;}
}

【New Star】LeetCode 数组学习相关推荐

  1. leetcode组队学习——查找(二)

    文章目录 1.两数之和 15. 三数之和 16. 最接近的三数之和 18. 四数之和 454. 四数相加 II 49. 字母异位词分组 447. 回旋镖的数量 149. 直线上最多的点数 1.两数之和 ...

  2. leetcode组队学习——动态规划

    文章目录 主要思想 模板步骤 例题 300. 最长上升子序列 674. 最长连续递增序列 5. 最长回文子串 516. 最长回文子序列 72. 编辑距离 198. 打家劫舍 213. 打家劫舍 II ...

  3. NumPy 数组学习手册·翻译完成

    原文:Learning NumPy Array 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 ...

  4. GitHub 近两万 Star!深度学习 500 问带你入门人工智能!| 技术头条

    作者 | 非主流.Jane 出品 | CSDN AI 科技大本营(ID:rgznai100) 程序员转行学什么语言? https://edu.csdn.net/topic/ai30?utm_sourc ...

  5. 转载Shell 数组学习

    转载Shell 数组学习 linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结 ...

  6. CDA Day 7-8 Excel 数组学习总结2

    Excel数组学习总结 在还没有深入学习Excel之前,数组和Offset可谓是我眼中的战斗机,难点加难点. 新知识点 Sumproduct是一个数组函数,里面的参数用逗号作为分隔符,不同参数之间是乘 ...

  7. python numpy数据类型_Python之numpy数组学习(一)

    原标题:Python之numpy数组学习(一) 我回来了. 前言 前面已经安装并学习了Python中的科学计算库,今天主要学习下numpy数组. Numpy数组对象 Numpy中的多维数组称为ndar ...

  8. Fortran数组学习

    一.声明方式 数据在内存中都是线状储存的 1.一维 datatype name(size) ! datatype 是数组的类型,有整型.实型.复型.逻辑型.自定义型 ! name 数组的名字 ! si ...

  9. 如此好的树状数组学习资料

    树状数组学习系列1 之 初步分析--czyuan原创 其实学树状数组说白了就是看那张图,那张树状数组和一般数组的关系的,看懂了基本就没问题了,推荐下面这个教程:http://www.topcoder. ...

最新文章

  1. 计算机学院心理节活动,计算机学院成功举办 “说出你的故事” 心理交流互助活动...
  2. pdo mysql bindparam_pdo连接mysql prepare,bindParam插入数据
  3. java se翻译_(翻译)Java SE 8 Lambda 标准库概览(下)
  4. ITK:越界像素返回常数值
  5. Docker 环境的快速搭建
  6. 【全国动态】服务器列表
  7. qtp启动java程序_转: QTP六脉神剑之调用Java程序
  8. C#网络编程(同步传输字符串) - Part.2
  9. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 网格系统实例:响应式的列重置
  10. App后台开发运维和架构实践学习总结(4)——APP的注册和登录功能设计
  11. win8 开发之旅(5) --五子棋游戏开发
  12. esxi时区设置 +8_ESXI安装OpenWRT amp; LEDE软路由部署指南(附镜像下载)
  13. Window系统下 MongoDB 下载 和 安装
  14. 【转】一个SQL查询出每门课程的成绩都大于80的学生姓名
  15. 基于java五子棋游戏设计与实现
  16. 如何自学成为程序员?
  17. 关于win10自带邮箱绑定163邮箱的设置
  18. 人民币美元兑换程序python简单_纯代码实现人民币兑换美元
  19. Api 接口文档是什么?如何直接使用 ApiDoc 生成接口文档
  20. 最多只需三步,彻底解决VB6中不能加载MSCOMCTL.OCX的提示

热门文章

  1. 【hive】数据倾斜-大表小表join优化mapjoin
  2. python画图marker显示_python matplotlib 画图刻度、图例等字体、字体大小、刻度密度、线条样式设置...
  3. rabbitmq基础1——消息中间件概念、Rabbitmq的发展起源和基本组件的作用流程
  4. 实现输入一个十进制正整数转换为二进制输出
  5. vulnhub之sherlock
  6. 手把手教你在Photoshop中使用曲线工具
  7. 贪心:将真分数用埃及分数之和表示
  8. 乐迪(RadioLink)Mini Pix组装六旋翼无人机疑难杂症解决1——只有4个电机转
  9. mdf ldf 导入 mysql_mdf和ldf导入数据库
  10. 分享一个专门提供MV下载的博客