• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[神梦] 【每日一题】最大子序列总和 - 2022.10.11 [复制链接]

1#
题目描述

子序列最大和,包括在一个数组或整数列表中查找连续子序列的最大和:

最大序列([-2,1,-3,4,-1,2,1,-5,4])
应为6:
[4,-1,2,1]

简单的情况是,列表仅由正数组成,最大和是整个数组的和。如果列表仅由负数组成,则返回0。

空列表被视为最大和为零。请注意,空列表或数组也是有效的子列表/子数组。’

题目难度:简单
题目来源:Maximum subarray sum | Codewars
题目交流: 584781753
  1. Import "SmAssert.dll"

  2. Function 最大子序列总和(数组)
  3.     // 您的代码写在这里
  4. End Function


  5. SmAssert.That 最大子序列总和(Array()), "=", 0
  6. SmAssert.That 最大子序列总和(Array(-2, 1, -3, 4, -1, 2, 1, -5, 4)), "=", 6
  7. SmAssert.That 最大子序列总和(Array(-2, -1, -3, -4, -1, -2, -1, -5, -40)), "=", 0
  8. SmAssert.That 最大子序列总和(Array(7, 4, 11, -11, 39, 36, 10, -6, 37, -10, -32, 44, -26, -34, 43, 43)), "=", 155
  9. 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
复制代码

参考题解

  1. Import "SmAssert.dll"

  2. Function 最大子序列总和(数组)
  3.     
  4.     '【作者】:神梦无痕
  5.     '【QQ】:1042207232
  6.     '【Q群】:584781753
  7.     
  8.     Dim count, result, i, j, k, sum
  9.     
  10.     result = 0
  11.     count = UBound(数组)
  12.     If count > -1 Then
  13.         For i = 1 To count
  14.             For j = 0 To count - i
  15.                 sum = 0
  16.                 For k = j To j + i
  17.                     sum = sum + 数组(k)
  18.                 Next
  19.                 If sum > result Then
  20.                     result = sum
  21.                 End If
  22.             Next
  23.         Next
  24.     End If
  25.     最大子序列总和 = result
  26. End Function


  27. SmAssert.That 最大子序列总和(Array()), "=", 0
  28. SmAssert.That 最大子序列总和(Array(-2, 1, -3, 4, -1, 2, 1, -5, 4)), "=", 6
  29. SmAssert.That 最大子序列总和(Array(-2, -1, -3, -4, -1, -2, -1, -5, -40)), "=", 0
  30. SmAssert.That 最大子序列总和(Array(7, 4, 11, -11, 39, 36, 10, -6, 37, -10, -32, 44, -26, -34, 43, 43)), "=", 155
  31. 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,帮助开发者发现业务逻辑错误

2#

学习一下总是好的

发新话题 回复该主题