我试图通过解决 Codality 问题来提高我的技能。我到达了这个:https ://codility.com/programmers/lessons/9-maximum_slice_problem/max_double_slice_sum/
我实际上从理论上理解解决方案:
- 在数组上使用 Kadane 算法并将总和存储在每个索引处。
- 反转数组并执行相同操作。
- 通过一次循环遍历两个结果集,找到两者之和为最大值的点。
- 最大值是最大双切片。
我的问题不是关于如何解决问题。我的问题是关于人们如何想象这将是解决这个问题的方式。至少有 3 个不同的概念需要使用:
理解如果数组中的所有元素都是正数或负数,则与数组中有一些正元素和负元素时的情况不同。
Kadane 算法
向前和向后遍历阵列。
尽管如此,Codality 还是将此问题标记为“无痛”。
我的问题是我错过了什么吗?在不了解其中一些概念的情况下,我似乎很难解决这个问题。
有没有一种技术可以让我从头开始和非常基本的概念,然后逐步达到解决这个问题所需的概念。还是在开始问题之前我就应该知道这些概念?
我如何准备自己来解决将来我不知道所需概念的问题?