LeetCode 581 最短无序连续子数组[排序] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 581 最短无序连续子数组[排序] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
寻找无序连续子数组长度,那么就拷贝一份数组并排序,找他们之间不连续数组长度即可,分别从头和从尾查询,遇到不同停止,如果全部有序,那么在头尾指针相遇时候停止,返回0,代码如下:
class Solution {
public:
int findUnsortedSubarray(vector<int>& nums) {
vector<int> numsSort(nums);
sort(numsSort.begin(), numsSort.end());
int len = 0;
int i, j;
for(i = 0, j = nums.size() - 1; i < nums.size(), j >= 0; ) {
if(nums[i] != numsSort[i] && nums[j] != numsSort[j]) {
break;
}
if(i >= j) {
return 0;
}
if(nums[i] == numsSort[i]) {
i ++;
}
if(nums[j] == numsSort[j]) {
j --;
}
}
return j - i + 1;
}
};
以上是关于LeetCode 581 最短无序连续子数组[排序] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)
LeetCode 581 最短无序连续子数组[排序] HERODING的LeetCode之路
LeetCode 581. 最短无序连续子数组/611. 有效三角形的个数/15. 三数之和/18. 四数之和(双指针)
LeetCode 581. Shortest Unsorted Continuous Subarray (最短无序连续子数组)