子阵列计数 - 需要帮助

时间:2016-01-29 16:10:12

标签: java arrays

我在CodeChef(https://www.codechef.com/problems/SUBINC)上遇到了一个关于计数严格不减少的子数组的问题。尽管多次阅读说明,但我无法破译我的预期。

我主要遇到两个陈述的问题:

1)*" 所有有效的子阵列都是A [1,1],A [1,2],A [2,2],A [3,3],A [3,4] ],A [4,4]。" *

如果子阵列是1 4 2 3,那么A [2,2]; A [3,3]; A [3,4]和A [4,4]如何有效?(鉴于它是只有当前向元素按递减顺序时才会递减)同样为什么A [1,1]有效?

2)"只有单个子阵列A [1,1]不减少。"

这里有类似的问题。如果数组本身只有1,那你怎么算A [1,1]是 sub -array?

也许我完全没有意识到要做什么,因为许多人已经解决了这个问题,但是真的很感激一些帮助。

P.S我用Java编写代码并且在C中不太舒服,这就是为什么我无法理解大多数提交的内容。

1 个答案:

答案 0 :(得分:2)

好的,你有一个包含四个数字的数组 1 4 2 3

符号A[i, j]说:“将数组的所有元素从索引i获取到索引j”。

A[1,2]代表一个子阵列:1 4

A[1,3]代表一个子阵列:1 4 2

A[1,4]将是整个数组:1 4 2 3

阵列的任何一个元素也是一个子阵列, 所以当我们说A[1,1]时,这意味着我们需要将从索引1开始的元素带到索引1,因此它只是一个数字:1

A[2,2]因此4等等。)

Non-decreasing表示数组的下一个元素不得小于前一个元素。因此,单元素数组总是不减少,其中的下一个元素不存在(所以它不能少)。