博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode--Array--Remove Duplicates from Sorted Array (Easy)
阅读量:5096 次
发布时间:2019-06-13

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

26. Remove Duplicates from Sorted Array (Easy)

Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.Example 1:Given nums = [1,1,2],Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively.It doesn't matter what you leave beyond the returned length.Example 2:Given nums = [0,0,1,1,1,2,2,3,3,4],Your function should return length = 5, with the first five elements of nums being modified to 0, 1, 2, 3, and 4 respectively.It doesn't matter what values are set beyond the returned length.

solution

解法一

class Solution {    public int removeDuplicates(int[] nums) {        int newlength = 0, k = 0;        for (int i = 0; i < nums.length - 1; i++)        {            if (nums[i] < nums[i+1])   //如果两数不同            {                k = i + 1;     //记录不同两数中下一个的下标                newlength++;   //新数组长度++                if (k > newlength)    //如果k与newlength不同步,说明有重复的数                    nums[newlength] = nums[k];  将nums[k]移动到newlength处            }        }        return newlength + 1;    //此处不能用newlength++    }}

解法二

class Solution {    public int removeDuplicates(int[] nums) {        int newlength = 0;        for (int i = 0; i < nums.length; i++)        {            if (nums[newlength] != nums[i])                nums[++newlength] = nums[i];        }        return newlength+1;  //此处不能用newlength++    }}

总结

题意是给定一个排好序的数组,需要将里面不重复的数字按顺序放在数组左端,构成一个新的数组,且这些不重复数字的长度为length,超过length长度的数字不用理会。

第一种解法没第二种解法简单,故只描述第二种解法。第二种解法的思路是设置一个计数器newlength,初始值为0,然后遍历数组,如果nums[newlength] != nums[i],则将nums[++newlength]置为nums[i],否则什么都不做;遍历完成后返回newlength+1;

Notes

1.注意++i与i++的区别;

转载于:https://www.cnblogs.com/victorxiao/p/11143936.html

你可能感兴趣的文章
redis 的过期策略都有哪些?内存淘汰机制都有哪些?
查看>>
[转]友元函数(friend)
查看>>
Unity树木生成器
查看>>
jsp页面设置a标签失效
查看>>
hdu1000
查看>>
poj3264
查看>>
Android 网络编程
查看>>
SpringBoot的文件上传
查看>>
几大主流浏览器的内核
查看>>
jbpm3.1.4设计器(eclipse3.1.4)中gpd.xml文件乱码的处理
查看>>
Java线程:线程状态的转换(转)
查看>>
视图以日期作为条件查询条件时虽显式转换?
查看>>
LintCode: Number of Islands
查看>>
git教程: 创建版本库
查看>>
Webstorm上面通过babel将es6转化为es5
查看>>
黑马程序员 参数化查询避免SQL注入漏洞攻击
查看>>
jzoj100029
查看>>
起底多线程同步锁(iOS)
查看>>
[BZOJ 1951] 古代猪文
查看>>
HTML介绍
查看>>