LeetCode 581. Shortest Unsorted Contimuous Subarray
来源:互联网 发布:矩阵方程ax=b 编辑:程序博客网 时间:2024/06/04 00:49
class Solution {public: int findUnsortedSubarray(vector<int>& nums){vector<int> num_buffer;for (int i = 0; i < nums.size(); i++){num_buffer.push_back(nums[i]);}int temp_i;for (int i = 0; i < nums.size(); i++){for (int j = i+1; j < nums.size(); j++){if (num_buffer[j] < num_buffer[i]){temp_i = num_buffer[j];num_buffer[j] = num_buffer[i];num_buffer[i] = temp_i;}}}int begin = 0;int end = 0;bool flag = true;for (int i = 0; i < nums.size(); i++){if (nums[i] != num_buffer[i] && flag){begin = i;flag = false;}else if (nums[i] != num_buffer[i]){end = i;}}if (begin != end)return (end - begin + 1);elsereturn 0;}};
思路:先把数组进行排序,然后把排序完的数组和排序之前的数组进行比较。
solution上提供的一个解法,时间复杂度确实比我的解法小。
int findUnsortedSubarray(vector<int>& nums) { int shortest = 0; int left = 0, right = nums.size() - 1; while (left < nums.size() - 1 && nums[left] <= nums[left + 1]) { left++; } while (right > 0 && nums[right] >= nums[right - 1]) { right--; }; if (right > left) { int vmin = INT_MAX, vmax = INT_MIN; for (int i = left; i <= right; ++i) { if (nums[i] > vmax) { vmax = nums[i]; } if (nums[i] < vmin) { vmin = nums[i]; } } while (left >= 0 && nums[left] > vmin) { left--; }; while (right < nums.size() && nums[right] < vmax) { right++; }; shortest = right - left - 1; } return shortest; }
阅读全文
1 0
- LeetCode 581. Shortest Unsorted Contimuous 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
- 中文输入法onkeydown的bug
- linux笔记-----续
- caffe-windows直接安装版---编译后的Release
- redis集群安装
- SpringMVC之AJAX带分页的增删改查
- LeetCode 581. Shortest Unsorted Contimuous Subarray
- 用linux写一个博客
- Android4.4拒绝发送扫描SD卡的广播
- 说说 JavaScript 的事件对象
- iOS关于armv7,armv7s,arm64,i386,x86_64
- docker部署Web项目(二)
- Halcon学习(四)图像处理中的两个坐标系
- 设屐师—创新捷径 小身材 大智慧
- maya单独显示线框和带贴图物体 优化视窗操作流畅度