new(中文网)+最大升序子数组和(leetcode)——20221007

new

题目

下面这段代码能否通过编译?

func main() {
	list := new([]int)
	list = append(list, 1)
	fmt.Println(list)
}

答案

过于简单,new()的返回值是[]int类型的指针且为nil,对nil不可操作

最大升序子数组和

题目

给你一个正整数组成的数组 nums ,返回 nums 中一个 升序 子数组的最大可能元素和。[难度:简单]

示例:
输入:nums = [10,20,30,5,10,50]
输出:65
解释:[5,10,50] 是元素和最大的升序子数组,最大元素和为 65 。

解答

func maxAscendingSum(nums []int) int {
	total,max:=0,0
	for index,val:=range nums{
		// 第一个数直接加入total
		// 满足递归的数加入total
		if index==0 || val>nums[index-1]{
			total+=val
			if max<total{
				max=total
			}
		}else{
			// 不满足递增,将total初始化为val,接着往后遍历
			total=val
		}
	}
	return max
}

在这里插入图片描述


版权声明:本文为General_zy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。