aboutsummaryrefslogtreecommitdiff
path: root/shortest_unsorted_subarr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'shortest_unsorted_subarr.cpp')
-rw-r--r--shortest_unsorted_subarr.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/shortest_unsorted_subarr.cpp b/shortest_unsorted_subarr.cpp
new file mode 100644
index 0000000..849f524
--- /dev/null
+++ b/shortest_unsorted_subarr.cpp
@@ -0,0 +1,30 @@
+#include "leetcode.h"
+
+class Solution {
+public:
+ int findUnsortedSubarray(vector<int> &nums) {
+ int end = -1, start = 0;
+ int max = nums[0], min = nums[nums.size() - 1];
+ for (int i = 1; i < nums.size(); i++) {
+ if (max > nums[i])
+ end = i;
+ else
+ max = nums[i];
+ }
+ for (int i = nums.size() - 2; i >= 0; i--) {
+ if (min < nums[i])
+ start = i;
+ else
+ min = nums[i];
+ }
+ return end - start + 1;
+ }
+};
+
+int main() {
+ vector<int> nums = {2, 6, 4, 8, 10, 9, 15};
+ Solution obj;
+ for (int i = 0; i < nums.size(); i++)
+ cout << nums[i] << ' ';
+ cout << endl << obj.findUnsortedSubarray(nums);
+}