小编Moh*_*aja的帖子

计算有界切片的可靠性

我最近参加了编码测试的编程测试,问题是在数组中找到有界切片的数量.

我只是简单地向你解释这个问题.

如果Max(SliceArray)-Min(SliceArray)<= K,则称一个数组的切片为有界切片.

如果Array [3,5,6,7,3]和K = 2提供..有界切片的数量是9,

数组中的第一个切片(0,0)Min(0,0)= 3 Max(0,0)= 3 Max-Min <= K结果0 <= 2因此它是有界切片

数组中的第二个切片(0,1)Min(0,1)= 3 Max(0,1)= 5 Max-Min <= K结果2 <= 2所以它是有界切片

数组中的第二个切片(0,2)Min(0,1)= 3 Max(0,2)= 6 Max-Min <= K结果3 <= 2因此它不是有界切片

通过这种方式你可以发现有九个有界切片.

(0,0),(0,1),(1,1),(1,2),(1,3),(2,2),(2,3),(3,3),(4) ,4).

以下是我提供的解决方案

private int FindBoundSlice(int K, int[] A)
{
    int BoundSlice=0;
    Stack<int> MinStack = new Stack<int>();
    Stack<int> MaxStack = new Stack<int>();




    for (int p = 0; p < A.Length; p++)
    {
        MinStack.Push(A[p]);
        MaxStack.Push(A[p]);
        for (int q = p; q < A.Length; q++)
        { …
Run Code Online (Sandbox Code Playgroud)

algorithm

10
推荐指数
1
解决办法
9260
查看次数

标签 统计

algorithm ×1