LeetCode第26题

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.

Clarification:

Confused why the returned value is an integer but your answer is an array?

Note that the input array is passed in by reference, which means modification to the input array will be known to the caller as well.

Internally you can think of this:

// nums is passed in by reference. (i.e., without making a copy)
int len = removeDuplicates(nums); // any modification to nums in your function would be known by the caller.
// using the length returned by your function, it prints the first len elements.
for (int i = 0; i < len; i++) {
print(nums[i]);
}

翻译:

给定一个已排序的数组,删除其中重复的部分,保证每个数字只出现一次,返回一个新的数组长度。

不要申明额外的数组空间,必须保证算法复杂度为O(1)

思路:

既然不能申明额外的数组,那只能在原来的数组上做变动

变动前:[1,1,2,3,3]

变动后:[1,2,3,3,3]

前3个值[1,2,3]就是我们所需要的

代码:

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

原数组遍历一遍后,将不重复的数字保存在数组的前面,j就是我们需要的数据的最大下标,那么j+1就是我们需要的长度

欢迎关注我的微信公众号:安卓圈

最新文章

  1. 2.5多重else嵌套的二次方程求根
  2. 【记录】ASP.NET IIS ISAPI_Rewrite
  3. 关于SIGSEGV错误及处理方法(转)
  4. Python2.7.6标准库内建函数
  5. 如何扩大LVM 逻辑分区的大小?
  6. php学习笔记-基础篇
  7. 转载 Servlet3.0中使用注解配置Servle
  8. quick-cocos2d-x之testlua之VisibleRect.lua
  9. SAP SD你要知道的透明表
  10. c判断括弧是否匹配
  11. Spring_Springmvc_mybatis一般配置
  12. Html网页生成Pdf
  13. Tomcat启动失败的解决方法
  14. C++,常成员函数
  15. Mybatis分页插件更新
  16. 【CJOJ2512】gcd之和(莫比乌斯反演)
  17. sql server导出数据,远程连接失败,需要设置权限
  18. 从零开始学spring cloud(十一) -------- hystrix监控
  19. Python学习笔记第二十六周(Django补充)
  20. s5-12 RIP

热门文章

  1. MySQL/MariaDB数据库的冷备份和还原
  2. Windows 将FTP 映射到本地文件夹 --简化操作
  3. CentOS7怎样安装Redis4.0.12
  4. mysql技巧一则-避免重复插入相同数据
  5. [Codeforces 1242B]0-1 MST
  6. git工具免密拉取、推送
  7. centos7.2(二)搭建lamp(Apache+PHP+Mysql环境)教程
  8. 003-转载-keil-STM32硬件错误HardFault_Handler的处理方法
  9. youtobe视频下载
  10. 关于java项目跑着跑着就挂掉的问题