我把这个问题作为面试的先决条件,
给出了一个由n个整数组成的非空零索引数组a。一个
这个数组中的pit是整数(P,Q,R)的任意三元组,使得:0≤
p序列[a[p],a[p+1],…,a[q]]严格递减,即a[p]>
A[P+1]>…>A[Q];
序列a[q],a[q+1],…,a[r]严格递增,即a[q]<
A[Q+1]<坑深(p,q,r)是最小值{a[p]-a[q],a[r]-
一个[q]}。例如,考虑由10个元素组成的数组a
即:
A[0] = 0
A[1] = 1
A[2] = 3
A[3] = -2
A[4] = 0
A[5] = 1
A[6] = 0
A[7] = -3
A[8] = 2
A[9] = 3
三元组(2,3,4)是这个数组中的一个坑,因为序列
[A[2],A[3]]严格递减(3>-2),序列[A[3],A[4]]
正在严格增加(-2A[3]}=2。
三连体(2,3,5)是另一个深3的坑。
三胞胎(5,7,8)是另一个深4的坑。没有坑
这个阵列深度(即深度大于4)。
上面说三胞胎(5,7,8)的深坑深度是4。
但是三胞胎(2,7,9)的坑深不是6吗?
三重态(2,7,9)的对应值为(3,-3,3),也满足上述条件,即
1) 0 ≤ P < Q < R < N
2) A[P] > A[P+1] > ... > A[Q] and A[Q] < A[Q+1] < ... < A[R]
在这种情况下,min{a[p]-a[q],a[r]-a[q]}是6。
我错过了什么?
如果你认为这篇文章不属于这个论坛,请指出我应该在哪里发表。
最佳答案
参见P
到Q
的顺序。
它是2 to 7
。
序列[a[p],a[p+1],…,a[q]]严格递减,即a[p]>a[p+1]>.>A[Q];
规则规定这应该是一个递减序列。但事实并非如此。3 -2 0 1 0 -3
但3>-2
。这里的顺序中断了。
从-2 is not greater than 0
开始。没有问题,因为序列在增加。7 to 9
。
关于algorithm - 关于阵列中最深凹坑的困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46877274/