Skip to content

Latest commit

 

History

History
95 lines (65 loc) · 3.15 KB

03.从数组中删除重复项.md

File metadata and controls

95 lines (65 loc) · 3.15 KB

目录介绍

  • 01.题目要求
  • 02.问题分析
  • 03.实例代码

好消息

  • 博客笔记大汇总【15年10月到至今】,包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bug汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善……开源的文件是markdown格式的!同时也开源了生活博客,从12年起,积累共计N篇[近100万字,陆续搬到网上],转载请注明出处,谢谢!所有博客陆续更新到GitHub上!
  • 链接地址:https://github.com/yangchong211/YCBlogs
  • 如果觉得好,可以star一下,谢谢!当然也欢迎提出建议,万事起于忽微,量变引起质变!

01.题目要求

  • 问题如下所示:
    • 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
    • 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

02.问题分析

  • 示例 1:
    给定数组 nums = [1,1,2], 
    函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 
    你不需要考虑数组中超出新长度后面的元素。
    
  • 示例 2:
    给定 nums = [0,0,1,1,1,2,2,3,3,4],
    函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。
    你不需要考虑数组中超出新长度后面的元素。
    

03.实例代码

  • 如下所示
    int removeDuplicates(int[] num) {
        if (num==null || num.length==0){
            return 0;
        }
        int currentV = num[0];
        int count = 0;
        for(int i = 1 ; i < num.length; i++){
            //比较相邻的两个数据
            if(num[i] != currentV){
                count++;
                currentV = num[i];
                num[count] = currentV;
            }
        }
        return count+1;
    }
    

其他内容

01.关于博客汇总链接

02.关于我的博客