其他分享
首页 > 其他分享> > 不相邻子序列和最大值

不相邻子序列和最大值

作者:互联网

一个无序数组找其子序列构成的和最大,要求子序列中的元素在原数组中两两都不相邻:

func GetSum(nums []int)int {
    len:=len(nums)
    if len==0{
        return -1
    }
    if len==1{
        return nums[0]
    }
    if len==2{
        return getMax(nums[0],nums[1])
    }
    pre2:=nums[0]
    pre1:=getMax(nums[0],nums[1])
    now:=0
    for i:=2;i<len;i++{
        now=getMax(pre2+nums[i],pre1)
        pre2=pre1
        pre1=now
    }
    return now
}
func getMax(a,b int)int{
    if a>=b{
        return a
    }else{
        return b
    }
}

 

标签:return,nums,int,最大值,len,相邻,getMax,序列
来源: https://www.cnblogs.com/-citywall123/p/16342437.html