【算法】LeetCode算法题-Remove Duplicates from Sorted Array

这是悦乐书的第149次更新,第151篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第8题(顺位题号是26)。给定一个已经排序(由小到大)的整数数组(元素可以重复),计算其中不重复元素的个数n,并将数组的前n个元素依次赋值为筛选后的不重复元素。不许使用新数组接收数据。例如:

nums = {1,1,2}
输出不重复元素的个数为2
数组前2个元素为1和2,即nums = {1,2,2}

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 分析并解题

特殊情况:如果数组中元素个数小于等于1,其不重复元素的个数即为数组的长度,也不用重新给前面的元素重新赋值。

获取第一个元素,与第二个元素比较,如果两数不等,count加1,数组的新第2个元素为原数组第2个元素,依次往后循环。

最后count需要加1,因为在第一次循环两数不等的时候,count是从第二个元素开始累加的,还需要算上最开始的第一位元素。

public int removeDuplicates(int[] nums) {if (nums.length <= 1) {return nums.length;}int count = 0;for(int i=0; i<nums.length-1; i++){if (nums[i] != nums[i+1]) {count++;nums[count] = nums[i+1];}}return count+1;
}

03 小结

此题比较简单,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

转载于:https://www.cnblogs.com/xiaochuan94/p/9834468.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息系统项目管理基础(1)

项目管理基础 项目的概念 项目是为提供一项独特产品、服务或成果所做的临时性努力。 我现在csdn上写一篇名叫《信息系统项目管理基础》的博文&#xff0c;就是项目&#xff01; 独特性&#xff1a;这篇博文独一无二&#xff0c;在csdn中找不出完全一样的。 临时性&#xf…

csgo客户文件与服务器,csgo与远程服务器

csgo与远程服务器 内容精选换一换远程连接Windows弹性云服务器后&#xff0c;不能复制、粘贴内容&#xff0c;右键单击菜单栏&#xff0c;“粘贴”选项置灰。未进行本地驱动器映射。服务器rdpclip.exe进程异常。系统禁止云服务器和本地主机之间进行文件的复制粘贴功能。未进行本…

java 容器都有哪些?_适合存储普洱茶的容器都有哪些?

收藏普洱茶的容器&#xff0c;首先强调的是无异味、无污染。就质地而言&#xff0c;收藏普洱茶的容器类型很多&#xff1a;土器、瓦器、木器、竹器、石器、陶器、瓷器、紫砂、玻璃、纸质等都可选择使用&#xff0c;金属、搪瓷容器密度高、透气性差&#xff0c;如不解决透气性问…

WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形

原文:WPF&#xff0c;Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形说明&#xff1a;本系列基本上是《WPF揭秘》的读书笔记。在结构安排与文章内容上参照《WPF揭秘》的编排&#xff0c;对内容进行了总结并加入一些个人理解。 WPF将易用性的理念带入了3D世界&#xf…

logisim优先编码器怎么用_编码器简介、应用的stm32代码及注释

在机器人的旋转关节中、或者底盘的驱动轮中&#xff0c;编码器是一个很常用的部件&#xff0c;它用于检测输出轴的位置、转速。下面我们先从它的分类开始&#xff0c;后面还有一个简单的用法示例代码。磁编码器1.编码器分类&#xff1a; 按工作原理&#xff1a;光电式、磁电式和…

数据库查询集合排序

/** 定义一个排序规则*/ public class ComparatorUser implements Comparator{Overridepublic int compare(Object arg0, Object arg1) {User user0(User)arg0;User user1(User)arg1;//首先比较年龄&#xff0c;如果年龄相同&#xff0c;则比较名字int flaguser0.getAge().comp…

立项管理

项目建议书 也叫立项申请项目建设单位发起主要内容&#xff1a;项目的必要性、项目市场预测、产品方案或服务的市场预测、项目建设必需的条件项目可行性研究 特点 预见性、公正性、可靠性、科学性主要内容 投资、技术、财务、组织、经济、社会的可行性、风险因素及对策技术可行…

c++输出方块_【Blender】方块波浪动画音乐效果

先上结果&#xff1a;Blender方块动画效果https://www.zhihu.com/video/1232333427569262592老规矩&#xff1a;一、设置基本Wave Mesh&#xff08;波浪面&#xff09;创建Plane&#xff0c;S 8&#xff0c;这样宽度就是2*816m了。CtrlA/Object菜单->Apply->Apply Scale—…

vue服务端渲染添加缓存

虽然 Vue 的服务器端渲染(SSR)相当快速&#xff0c;但是由于创建组件实例和虚拟 DOM 节点的开销&#xff0c;无法与纯基于字符串拼接(pure string-based)的模板的性能相当。在 SSR 性能至关重要的情况下&#xff0c;明智地利用缓存策略&#xff0c;可以极大改善响应时间并减少服…

Could not autowire. No beans of 'xxxx' type found的错误提示

spring 集成mybatis 找不到 beans 查了很多网页&#xff0c;解决办法是&#xff1a; 在PersonMapper 上加 Repositorypackage zengmiaogen.csdn.cn.mybatis;import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository;import java.ut…

怎么把页面按比例缩小_做PPT多图排版千万别套模板了,按这28种版式来,绝对靠谱!...

编按&#xff1a;各种类型的PPT经常会用到图片&#xff0c;这些图片到底如何排版才更出色呢&#xff1f;今天给大家分享一篇PPT图片排版手册&#xff0c;主要介绍了多张图常见的排版方式&#xff0c;希望能帮助到您&#xff01;嗨&#xff0c;大家好&#xff0c;我是P小白。一张…

spring boot 集成Mybatis时 Invalid bound statement (not found)

spring boot 集成Mybatis时&#xff0c;运行提示 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): zengmiaogen.csdn.cn.mybatis.PersonMapper.queryPersonList 按照下文的步骤&#xff0c;解决了问题 https://blog.csdn.net/qq_3598128…

Caffe CuDNN版本与环境不同导致make错误

1.将./include/caffe/util/cudnn.hpp 换成最新版的caffe里的cudnn的实现&#xff0c;即相应的cudnn.hpp. 2.将./include/caffe/layers里的&#xff0c;所有以cudnn开头的文件&#xff0c;例如cudnn_conv_layer.hpp&#xff0c;都替换成最新版的caffe里的相应的同名文件。 3.将.…

nodejs 安装 nrm

nodejs默认源在国外&#xff0c;访问速度慢。可以手动修改源&#xff0c;但要每次都修改。 安装 nrm&#xff0c;指定源路径&#xff0c;不需要每次修改 npm install nrm -g nrm ls * npm -------- https://registry.npmjs.org/ yarn ------- https://registry.yarnpkg.co…

磁盘阵列怎么做_设计与后期制作该怎么选择笔记本电脑?朋克老师来教你

最近有很多人问我设计与后期制作该怎么选择笔记本电脑&#xff1f;既然选择笔记本电脑就说明在相关工作中对电脑有移动需求&#xff0c;比如自媒体、记者、影视后期出组人员等等&#xff0c;那该如何选择呢&#xff1f;视频剪辑咱们按工作内容分类聊一聊。第一类&#xff0c;平…

EventBus源码分析

简介 前面我学习了如何使用EventBus&#xff0c;还有了解了EventBus的特性&#xff0c;那么接下来我们一起来学习EventBus的源码&#xff0c;查看EventBus的源码&#xff0c;看看EventBus给我们带来什么惊喜以及编程思想。 这个图我们从一开始就一直放置在上面了。我们在来回顾…

Vue.js 概述与 MVVM 模式

一、Vue.js 1. Vue.js 是什么 Vue.js 是一个轻巧、高性能、可组件化的 MVVM 库&#xff0c;拥有非常容易上手的 API&#xff1b; Vue.js是一个构建数据驱动的 Web 界面的库。 2. Vue.js 的特性 1. 轻量级的框架 2. 双向数据绑定 3. 指令 4. 插件化&#xff08;组件化&#…

ipad录屏软件_如何在 Mac 上优雅的截图和录屏

在使用电脑的时候&#xff0c;很多时候我们都需要截屏或者录屏分享。所以你可能已经听过 snip&#xff0c;或者经常使用 QQ、微信 等软件来实现截屏。但是今天我们一起来看一下&#xff0c;怎么使用系统提供的功能&#xff0c;来优雅的实现截图和录屏。最开始的这几篇都比较基础…

数据库的辅助工具:My-SqlViewer

阅读目录开始My-SqlViewer 使用说明程序安装及启动说明程序主界面DataBase浏览器搜索数据库存储过程的复制比较数据库今天发一个我自己写的且经常使用的数据库的辅助工具&#xff1a;My-SqlViewer由于我比较喜欢使用存储过程&#xff0c;但发现不管是SQL Server Management Stu…

安卓平板微信和手机微信同时登陆_Mac电脑如何同时登陆多个微信或QQ

现如今&#xff0c;微信和QQ已经不单单是简单的社交软件了&#xff0c;也成了工作必备软件&#xff0c;工作中用它传个文件&#xff0c;发个通知&#xff0c;不知道有多方便。但是很多人希望将工作圈和生活圈分开&#xff0c;有人想出拿两部手机的方法&#xff0c;倒是可以&…