【发布时间】:2020-12-07 14:46:00
【问题描述】:
我正在努力帮助我的兄弟完成他的算法作业,只是我对 C# 不熟悉,而且我也对这个问题感到困惑。
基本上该指令是生成一个长度为 10 的整数的一维数组,范围从 1 到 20。然后打印整数的最大和,当你将数组除以 2 时,左边的整数和小于右边的整数之和。
示例结果:
生成的整数数组:1,5,10,3,5,20,6,8,2,14
左侧最大值 = 24 (1+5+10+3+5=24)
右侧最大值 = 50 (20+6+8+2+14=50)
生成数组很容易,令人困惑的部分是数组的前半部分的总和必须小于后半部分。任何帮助都会非常感激!
【问题讨论】:
-
从左到右逐步移动拆分索引,同时跟踪两边的总和。所以最初,分割索引左= 6,右 = 68,依此类推。继续此操作直到 left >= right 并且您知道您刚刚通过了正确的分割点。
-
虽然我可以尝试研究和理解这一点,但示例代码将不胜感激