1.题目2.代码
1.题目题目要求eg:
示例 1: 输入:nums = [2,6,4,8,10,9,15] 输出:5 解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。 示例 2: 输入:nums = [1,2,3,4] 输出:0 示例 3: 输入:nums = [1] 输出:0
思路:使用辅助数组
新建一个跟原数组一摸一样的数组,然后排序。
从数组起始位置开始,两个数组相互比较,当对应位置数字不同的时候停止;
同理再从末尾开始,对应位置上比较,也是遇到不同的数字时停止,这样中间一段就是最短无序连续子数组了;
2.代码
class Solution { public: int findUnsortedSubarray(vector& nums) { int numbers=nums.size(); vector nums_copy=nums; sort(nums_copy.begin(),nums_copy.end()); int i=0,j=numbers-1; while (i i && nums[j]==nums_copy[j]) j--; return j-i+1; } };
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)