- 按键认证大神
- 2699998
- 3587
- 11
- 2173 朵
- 7386 个
- 1021 个
- 91120
- 2014-08-23
|
1#
t
T
发表于 2022-10-11 21:40
|
|只看楼主
题目描述 子序列最大和,包括在一个数组或整数列表中查找连续子序列的最大和:
最大序列([-2,1,-3,4,-1,2,1,-5,4]) 应为6: [4,-1,2,1]
简单的情况是,列表仅由正数组成,最大和是整个数组的和。如果列表仅由负数组成,则返回0。
空列表被视为最大和为零。请注意,空列表或数组也是有效的子列表/子数组。’
题目难度:简单 题目来源:Maximum subarray sum | Codewars 题目交流: 584781753
|
- Import "SmAssert.dll"
- Function 最大子序列总和(数组)
- // 您的代码写在这里
- End Function
- SmAssert.That 最大子序列总和(Array()), "=", 0
- SmAssert.That 最大子序列总和(Array(-2, 1, -3, 4, -1, 2, 1, -5, 4)), "=", 6
- SmAssert.That 最大子序列总和(Array(-2, -1, -3, -4, -1, -2, -1, -5, -40)), "=", 0
- SmAssert.That 最大子序列总和(Array(7, 4, 11, -11, 39, 36, 10, -6, 37, -10, -32, 44, -26, -34, 43, 43)), "=", 155
- SmAssert.That 最大子序列总和(Array(-6, -3, 27, -22, 3, 8, 19, -7, -26, -30, -3, -26, 22, 25, -26, 27, 4, -24, -7, 20, 20, 20, 9, -23, -26, -27, -12, 0, 1, 26, -19, -1, -15, -16, 1, 25, 4, -7, 27, 4, -22, -10, 23, 4, 2, -29, 0, -12, -21, 7)), "=", 90
复制代码 参考题解- Import "SmAssert.dll"
- Function 最大子序列总和(数组)
-
- '【作者】:神梦无痕
- '【QQ】:1042207232
- '【Q群】:584781753
-
- Dim count, result, i, j, k, sum
-
- result = 0
- count = UBound(数组)
- If count > -1 Then
- For i = 1 To count
- For j = 0 To count - i
- sum = 0
- For k = j To j + i
- sum = sum + 数组(k)
- Next
- If sum > result Then
- result = sum
- End If
- Next
- Next
- End If
- 最大子序列总和 = result
- End Function
- SmAssert.That 最大子序列总和(Array()), "=", 0
- SmAssert.That 最大子序列总和(Array(-2, 1, -3, 4, -1, 2, 1, -5, 4)), "=", 6
- SmAssert.That 最大子序列总和(Array(-2, -1, -3, -4, -1, -2, -1, -5, -40)), "=", 0
- SmAssert.That 最大子序列总和(Array(7, 4, 11, -11, 39, 36, 10, -6, 37, -10, -32, 44, -26, -34, 43, 43)), "=", 155
- SmAssert.That 最大子序列总和(Array(-6, -3, 27, -22, 3, 8, 19, -7, -26, -30, -3, -26, 22, 25, -26, 27, 4, -24, -7, 20, 20, 20, 9, -23, -26, -27, -12, 0, 1, 26, -19, -1, -15, -16, 1, 25, 4, -7, 27, 4, -22, -10, 23, 4, 2, -29, 0, -12, -21, 7)), "=", 90
复制代码 插件下载【插件】神梦断言插件 SmAssert.dll,帮助开发者发现业务逻辑错误
|