美文网首页
LintCode题解 | 微软面试真题:删除排序数组中的重复数字

LintCode题解 | 微软面试真题:删除排序数组中的重复数字

作者: SunnyZhao2019 | 来源:发表于2020-02-17 18:41 被阅读0次

    【题目描述】
    给定一个排序数组,在原数组中“删除”重复出现的数字,使得每个元素只出现一次,并且返回“新”数组的长度。

    不要使用额外的数组空间,必须在不使用额外空间的条件下原地完成。

    【题目样例】

    样例 1:

    输入: []
    输出: 0

    样例 2:

    输入: [1,1,2]
    输出: 2
    解释: 数字只出现一次的数组为: [1,2]

    【评测与题解】

    →戳这里在线评测及查看题解

    /**
    * 本参考程序来自九章算法,由 @九章算法 提供。版权所有,转发请注明出处。
    * - 九章算法致力于帮助更多中国人找到好的工作,教师团队均来自硅谷和国内的一线大公司在职工程师。
    * - 现有的面试培训课程包括:九章算法班,系统设计班,算法强化班,Java入门与基础算法班,Android 项目实战班,
    * - Big Data 项目实战班,算法面试高频题班, 动态规划专题班
    * - 更多详情请见官方网站:http://www.jiuzhang.com/?source=code
    */ 
    
    public class Solution {
        public int removeDuplicates(int[] A) {
            if (A == null || A.length == 0) {
                return 0;
            }
            
            int size = 0;
            for (int i = 0; i < A.length; i++) {
                if (A[i] != A[size]) {
                    A[++size] = A[i];
                }
            }
            return size + 1;
        }
    }
    

    相关文章

      网友评论

          本文标题:LintCode题解 | 微软面试真题:删除排序数组中的重复数字

          本文链接:https://www.haomeiwen.com/subject/qrrifhtx.html