LeetCode 探索:初级算法-数组- 从排序数组中删除重复项-Go实现

写这个博客是刚开始接触Go语言,复习一遍算法 用Go实现 


    从排序数组中删除重复项:

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

              不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

              思路:

                 两个变量,一个记录开始时不同数字的位置number,就是遍历过程中遇到不一样的数字就要赋值,
                 第二个遍历数组,将每个元素 与 number位置的值对比,不一样就 number++ 且 赋值

                   


func main(){
   nums := []int{0,0,1,1,1,2,2,3,3,4}
   nlen := removeDuplicates(nums);
   fmt.Println(nlen)
   fmt.Println(nums)
}
 
   
func removeDuplicates(nums []int) int {
   number := 0//记录不同数字的下标
   lens := len(nums)
   for i := 0; i < lens ; i++ {
      if nums[i] != nums[number] {
         //不相同 下标前移 赋值
         number++
         nums[number] = nums[i]
      }
   }
   return number+1
}

    

 
  


 

你可能感兴趣的:(LeetCode)