zoukankan      html  css  js  c++  java
  • lintcode :Remove Duplicates from Sorted Array II 删除排序数组中的重复数字 II

    题目:

    删除排序数组中的重复数字 II

    跟进“删除重复数字”:

    如果可以允许出现两次重复将如何处理?

    样例

    给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A=[1,1,2,2,3]

    解题:

    在这里看到的

    与上一题方法很类似,这里保存相同元素长度小于2的保存在原来的数组中

    很巧妙

    Java程序:

    public class Solution {
        /**
         * @param A: a array of integers
         * @return : return an integer
         */
        public int removeDuplicates(int[] nums) {
            // write your code here
            int i = 0,j;
            int numsLen = nums.length;
            int cur=0;
            while(i<numsLen){
                for( j=i;j<numsLen;j++){
                    if(nums[i]!=nums[j])
                        break;
                
                if((j-i+1)<=2) // 只记录长度小于等于2 的下标对应的元素
                    nums[cur++] = nums[i];
                }
                i = j;// 下一个不相同元素开始
            }
            return cur;
        }
    }
    View Code

    总耗时: 2826 ms

    Python程序:

    class Solution:
        """
        @param A: a list of integers
        @return an integer
        """
        def removeDuplicates(self, A):
            # write your code here
            i = 0
            ALen = len(A)
            cur = 0
            k = 0
            while i<ALen:
                for j in range(i,ALen):
                    if A[i]!=A[j]:
                        k = j
                        break
                    if (j-i+1)<=2:
                        A[cur] = A[i]
                        cur = cur + 1
                i = k 
            return cur
              
    View Code

    不知道为什么说下标越界,明明和java的一样的
    错误结果如下:

    30% 数据通过测试.

    输入   [-8,0,1,2,3]

    期望答案   [-8,0,1,2,3]

    错误信息   Traceback (most recent call last): File "Main.py", line 8, in LEN = solution.removeDuplicates(nums) File "Solution.py", line 18, in removeDuplicates A[cur] = A[i] IndexError: list assignment index out of range EXITCODE=1

     
  • 相关阅读:
    又见博弈
    两道来自CF的题
    温习及回顾
    笔试面试总结
    Python Cha4
    初学ObjectiveC
    设计模式汇总(三)
    转贴XML的写法建议
    让从Objec中继承的类也拥有鼠标事件
    关于异常处理的一些看法
  • 原文地址:https://www.cnblogs.com/bbbblog/p/4868466.html
Copyright © 2011-2022 走看看