zoukankan      html  css  js  c++  java
  • 删除数组中的重复项基于Go

    一个有序数组nums,原地删除重复出现的元素,使每个元素只能出现一次,返回删除后数组的新长度。
    不能使用额外的数组空间,必须在原地修改输入的数组,并在使用O(1)额外空间的条件下完成(临时变量、指针等)

    例如:输入:[0,1,2,2,3,3,3,4]
    输出:5
    重点考察:双指针算法

    package main
    
    import "fmt"
    
    func removeDuplicate(nums []int)int{
    	if len(nums)==0{
    		return 0
    	}
    
    	var i = 0
            // j指到数组末尾时,返回i的位置+1(即0...i共i+1个数)
    	for j:=1;j<len(nums);j++{
            // i和j处的数相同时,只管把j往后移,此时j走得快
           // i和j处的数不同时,i往后移,同时把j处的数字替换过来
    		if nums[j]!=nums[i]{
    			i++
    			nums[i] = nums[j]
    		}
    	}
    	return i+1
    }
    
    func main(){
    	nums := []int{0,1,2,2,3,3,3,4}
    	fmt.Println(removeDuplicate(nums))
    }
    
  • 相关阅读:
    周末总结
    大数据开源框架技术汇总
    oracle迁移mysql总结
    梯度下降
    BFC的概念
    元素类型
    window10安装tensorflow
    学习使用git
    设计模式中的关系
    拟合圆
  • 原文地址:https://www.cnblogs.com/pangqianjin/p/14627726.html
Copyright © 2011-2022 走看看