leetcode 581. Shortest Unsorted Continuous Subarray
来源:互联网 发布:字符数组结束标志 编辑:程序博客网 时间:2024/05/16 05:21
第一种算法,很笨,根据序列大部分有序,中间无序的性质,把序列进行排序,然后一 一对应,就能找到从哪里开始
代码如下:
int findUnsortedSubarray(vector<int>& nums) { vector<int> num1; for(int i=0;i<nums.size();i++) num1.push_back(nums[i]); sort(num1.begin(),num1.end()); int i,j; for(i=0;i<nums.size();i++) if(nums[i]!=num1[i]) break; for(j=num1.size()-1;j>=0;j--) if(nums[j]!=num1[j]) break; if(i==nums.size()) return 0; return j-i+1; }
第二种方法,先找到无序部分的最大,最小值,然后在原序列中进行比较。//一定要利用本身的性质啊,别傻傻暴力,改变思路
int findUnsortedSubarray(vector<int>& nums) { int max=INT_MIN,min=INT_MAX; bool flag=false; for(int i=1;i<nums.size();i++) { if(nums[i]<nums[i-1]) flag=true; if(flag==true) min=(nums[i]<min)?nums[i]:min; //找失序序列中最大的 } if(!flag) return 0; flag=false; for(int i=nums.size()-2;i>=0;i--) { if(nums[i]>nums[i+1]) flag=true; if(flag==true) max=(nums[i]>max)?nums[i]:max; //找失序部分序列中最小的元素 } int r=nums.size()-1,l=0; for(l;l<nums.size();l++) //分别找下界和上界 if(nums[l]>min) break; for(r;r>=0;r--) if(nums[r]<max) break; return r-l+1; }
阅读全文
0 0
- [LeetCode]581. Shortest Unsorted Continuous Subarray
- leetcode 581. Shortest Unsorted Continuous Subarray
- [LeetCode]581. Shortest Unsorted Continuous Subarray
- [leetcode]581. Shortest Unsorted Continuous Subarray
- [leetcode]581. Shortest Unsorted Continuous Subarray
- 【LeetCode】581. Shortest Unsorted Continuous Subarray
- LeetCode 581. Shortest Unsorted Continuous Subarray
- [leetcode]: 581. Shortest Unsorted Continuous Subarray
- [LeetCode] 581. Shortest Unsorted Continuous Subarray
- [LeetCode] 581. Shortest Unsorted Continuous Subarray
- LeetCode 581. Shortest Unsorted Continuous Subarray
- LeetCode: 581. Shortest Unsorted Continuous Subarray
- leetcode 581. Shortest Unsorted Continuous Subarray
- LeetCode 581. Shortest Unsorted Continuous Subarray
- 【LeetCode】581. Shortest Unsorted Continuous Subarray
- [LeetCode] 581. Shortest Unsorted Continuous Subarray
- leetcode 581. Shortest Unsorted Continuous Subarray
- LeetCode-581. Shortest Unsorted Continuous Subarray
- 二叉树的镜像
- object-c 使用socket.io与服务器通讯
- html新闻单行滚动
- 实习1
- T
- leetcode 581. Shortest Unsorted Continuous Subarray
- ubuntu远程桌面无法连接的问题
- 情话交流(二)
- 51Nod 1016 水仙花数 打表
- Android加载html中的svg格式图片进行显示的两种方式
- 多元线性回归之Spss实现
- easyui 界面中输入框(textbox)和下拉框(combobx)的onchange事件
- 鼠标移入文字上向右移动效果
- C++头文件的若干说明和const对象定义