zoukankan      html  css  js  c++  java
  • 删除排序数组中的重复数字

    题目要求

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

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

    样例

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

    源码:

    package day01;
    
    import java.util.Arrays;
    
    public class Solution {
    
        public static void main(String[] args) {
    
            int [] arr={1,2,2,3,2,1,1,1,4,4,5 };
            int a =removeDuplicates(arr);
            System.out.println("删除数组中重复元素后数组的长度为:"+a);
            
        }
        public static int  removeDuplicates(int[] nums) {
    
            int count=0;
            if (nums.length==0 ||nums.length==1)
                return -1;
            else
            {
                
                Arrays.sort(nums);
                for(int i=0;i<nums.length-1;i++)
                {
                    
    
                    if(nums[i]!=nums[i+1])
                            {
                            nums[count]=nums[i];
                            count++;
                            }
                    
                        
                    
                    
                    else if(nums[i]==nums[i+1])
                        continue;
                                if(nums[nums.length-1]!=nums[nums.length-2])
                    {
                
                        nums[count]=nums[nums.length-1];
                        count++;
                    }
                for(int i=0;i<count;i++)
                    System.out.println(nums[i]);
                return count;
        }
            
        }
    }

    PS:Eclipse中可以实现题目要求,但是在Lintcode中并不能通过,如果有人知道问题出在哪的话请给我教一下,谢谢。

    整个思考和修改过程如下:

    package day01;
    
    import java.util.Arrays;
    
    public class Solution {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int [] arr={1,2,2,3,2,1,1,1,4,4,5 };
            int a =removeDuplicates(arr);
            System.out.println("删除数组中重复元素后数组的长度为:"+a);
            
        }
        public static int  removeDuplicates(int[] nums) {
            // write your code here
            
            int count=0;
            if (nums.length==0 ||nums.length==1)
                return -1;
            else
            {
                
                Arrays.sort(nums);//11112223445
                for(int i=0;i<nums.length-1;i++)
                {
                    
                        //return count+1;
                    if(nums[i]!=nums[i+1])
                            {
                            nums[count]=nums[i];
                            count++;
                            }
                    
                        
                    
                    
                    else if(nums[i]==nums[i+1])
                        continue;
                    /*else if((i+1)==nums.length&nums[i]!=nums[i+1])
                    {
                        ++count;
                        nums[(count)]=nums[nums.length-1];
                    }*/
                
                    //
                    //nums[i]=nums[i+1];
                }
            // if(nums==null||nums.length==0){  
                            // return 0;  
                          ///
                        // }  
                           
                      // int index=0;  
                    //   for(int i=1;i<nums.length;i++){  
                             //if(nums[index]!=nums[i]){  
                              //  nums[index]=nums[i];  
                           //  }  
                      // }  
                        // return index+1;
                if(nums[nums.length-1]!=nums[nums.length-2])
                    {
                
                        nums[count]=nums[nums.length-1];
                        count++;
                    }
                for(int i=0;i<count;i++)
                    System.out.println(nums[i]);
                return count;
        }
            
        }
    }


      
     }
    }

  • 相关阅读:
    logstash 配置 logstash-forwarder (前名称:lumberjack)
    你不知道的if,else
    css样式
    表格 表单
    学习第一天练习
    唯有作茧自缚,方可破茧成蝶
    第一周复习二 (CSS样式表及其属性)
    第一周复习一 ( HTML表单form)
    汉企第一天小记
    C语言 -- register关键字
  • 原文地址:https://www.cnblogs.com/sunssh/p/6517104.html
Copyright © 2011-2022 走看看