132-pattern(蛮难的)
生活随笔
收集整理的這篇文章主要介紹了
132-pattern(蛮难的)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://leetcode.com/problems/132-pattern/
下面是我的做法。后來又看了一個提示:
里面的解法非常好。先從后向前找到中間那個數。利用了棧的特性,非常好。
package com.company;
import java.util.*;
class Solution {
public boolean find132pattern(int[] nums) {
List<Integer> start = new ArrayList();
List<Integer> end = new ArrayList();
int small = Integer.MAX_VALUE;
int big = Integer.MIN_VALUE;
for (int i=; i<nums.length; i++) {
if (nums[i] == nums[i-]) {
continue;
}
if (nums[i] > nums[i-]) {
if (nums[i] > big) {
big = nums[i];
}
if (nums[i-] < small) {
small = nums[i-];
}
for (int k=; k<start.size(); k++) {
if (nums[i] > start.get(k) && nums[i] < end.get(k)) {
return true;
}
}
}
else {
if (nums[i] > small) {
return true;
}
for (int k=; k<start.size(); k++) {
if (nums[i] > start.get(k) && nums[i] < end.get(k)) {
return true;
}
}
if (big > Integer.MIN_VALUE) {
start.add(small);
end.add(big);
//System.out.printf("start: %d, end: %d\n", small, big);
small = Integer.MAX_VALUE;
big = Integer.MIN_VALUE;
}
}
}
return false;
}
}
public class Main {
public static void main(String[] args) throws InterruptedException {
System.out.println("Hello!");
Solution solution = new Solution();
// Your Codec object will be instantiated and called as such:
int[] g = {, , , , };
boolean ret = solution.find132pattern(g);
System.out.printf("ret:%b\n", ret);
System.out.println();
}
}
總結
以上是生活随笔為你收集整理的132-pattern(蛮难的)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AtCoder Beginner Con
- 下一篇: HW4.23