题目是:
对于一个无序数组A,请设计一个算法,求出需要排序的最短子数组的长度。
给定一个整数数组A及它的大小n,请返回最短子数组的长度。
测试样例:
[1,5,3,4,2,6,7],7
返回:4在考虑这道题时,思路是,先将该未排序的数组进行排序,然后将排好序的和未排好序的数组串进行比较,前后各放一个指针,前边的指针所指的值相同,则向后移动直到不相同为止,后边的向前移动,直至不相同为止,两个指针的距离加一即为最短子数组长度,当两指针指向同一位置时,返回零。
代码如下:
class ShortSubsequence {
public:
int findShortest(vector<int> A, int n) {
// write code here
vector<int> B = A;
for (int i = 0; i < n; ++i)
for (int j = i; j < n; ++j) {
if (B[i] > B[j]) {
int temp = B[i];
B[i] = B[j];
B[j] = temp;<