/*
* @lc app=leetcode id=581 lang=cpp
*
* [581] Shortest Unsorted Continuous Subarray
*/
// @lc code=start
class Solution {
public:
int findUnsortedSubarray(vector<int>& nums) {
int N = nums.size();
vector<int> v(N);
for(int i=0;i<N;i++){
v[i] = nums[i];
}
sort(v.begin(), v.end());
int L = 0;
int R = N-1;
for(int i=0;i<N;i++){
L = max(L, i);
if(v[i] != nums[i]) break;
}
for(int i=N-1;i>=0;i--){
R = min(R, i);
if(v[i] != nums[i]) break;
}
return R<=L?0:R-L+1;
}
};
// @lc code=end
No.259 - LeetCode[581] Shortest Unsorted Continuous Subarray
最新推荐文章于 2025-12-03 23:35:37 发布
该博客介绍了一个LeetCode问题——581.最短未排序子数组。解决方案是通过排序一个副本并比较原数组与排序后副本的差异,找到最短的未排序子数组。算法使用了双指针技巧来确定子数组的起始和结束位置。
416

被折叠的 条评论
为什么被折叠?



