Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 输出在C中对数组排序所需的最少切片数#_C#_Arrays - Fatal编程技术网

C# 输出在C中对数组排序所需的最少切片数#

C# 输出在C中对数组排序所需的最少切片数#,c#,arrays,C#,Arrays,我想输出将一个由n个不同整数组成的未排序数组切片为一个或多个切片所需的切片数,并对它们进行排序,以便当排序后的切片重新连接(以相同的顺序)时,它以排序顺序给出原始数组 比如说, 给定数组=[2,1,6,4,3,7] 如果按如下方式分割给定数组:[2,1][6,4,3][7],然后按如下方式对这些数组进行单独排序:[1,2][3,4,6][7],最后按如下方式将它们合并回来:[1,2,3,4,6,7],您将按排序顺序获得原始数组。所以,切片的数量是3 我试着在Stack Overflow/Goog

我想输出将一个由n个不同整数组成的未排序数组切片为一个或多个切片所需的切片数,并对它们进行排序,以便当排序后的切片重新连接(以相同的顺序)时,它以排序顺序给出原始数组

比如说,

给定数组=[2,1,6,4,3,7]


如果按如下方式分割给定数组:[2,1][6,4,3][7],然后按如下方式对这些数组进行单独排序:[1,2][3,4,6][7],最后按如下方式将它们合并回来:[1,2,3,4,6,7],您将按排序顺序获得原始数组。所以,切片的数量是3

我试着在Stack Overflow/Google中搜索它,找到了下面的解决方案,但是对于上面的输入它似乎不起作用(返回2而不是3)

public int解决方案(int[]A)
{
如果(A.Length<3)返回A.Length;
整数计数=0;
for(int i=1;iA[i-1])计数+=1;
    }
返回计数;
}

有人能建议我们如何处理这个问题,并在C#

中适当地解决这个问题吗?对切片进行排序,然后以相同的顺序将它们重新连接起来意味着什么?为什么这个例子会给出3的结果?如果你像这样分割给定的数组:[2,1][6,4,3][7],然后像这样对它们进行单独排序:[1,2][3,4,6][7],最后,像这样将它们重新连接起来:[1,2,3,4,6,7],你就可以按排序顺序得到原始数组。所以,切片的数量是3。请用这个描述来回答你的问题。您希望函数返回片数这一事实在原始问题中并不存在。您忽略了1片的空值,因此从
count=1
开始,而不是
count=0
@Mocas如果您在回复我,我也在想同样的问题,但是您是否认为存在一些限制,不允许初始数组类似于[3,1,6,4,2,7]?对切片进行排序,然后以相同的顺序将其重新连接是什么意思?为什么这个例子会给出3的结果?如果你像这样分割给定的数组:[2,1][6,4,3][7],然后像这样对它们进行单独排序:[1,2][3,4,6][7],最后,像这样将它们重新连接起来:[1,2,3,4,6,7],你就可以按排序顺序得到原始数组。所以,切片的数量是3。请用这个描述来回答你的问题。您希望函数返回片数这一事实在原始问题中并不存在。您忽略了1片的空值,因此从
count=1
开始,而不是
count=0
@Mocas如果您在回复我,我也在想同样的问题,但是您是否认为存在一些限制,不允许初始数组类似于[3,1,6,4,2,7]?
public int solution(int[] A)
{
    if (A.Length < 3) return A.Length;
    int count = 0;
    for (int i = 1; i < A.Length; i++)
    {
         if (A[i] > A[i - 1]) count += 1;
    }
    return count;
}