Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. class Solution {
  2. public:
  3. bool find132pattern(vector<int>& nums) {
  4. if (nums.size() == 0) return false;
  5. int min = nums[0];
  6. stack<int> stacks;
  7. vector<int> mins;
  8. for (auto i : nums){
  9. if (i < min) min = i;
  10. mins.push_back(min);
  11. }
  12. for (int i = nums.size()-1;i >= 0 ; i--){
  13. if (stacks.empty()) {
  14. stacks.push(nums[i]);
  15. }
  16. else if (nums[i] < stacks.top()){
  17. stacks.push(nums[i]);
  18. } else if( nums[i] > stacks.top()){
  19. while(!stacks.empty() && stacks.top() < nums[i] ) {
  20. if (mins[i] < nums[i] && stacks.top() < nums[i] && stacks.top() > mins[i]){
  21. return true;
  22. }
  23. stacks.pop();
  24. }
  25. stacks.push(nums[i]);
  26. }
  27. //mins[i] first
  28. //nums[i] middle
  29. //stack.top last
  30. }
  31. return false;
  32. }
  33. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement