public class PopSequence {
public static boolean isQualified(int[] a, int[] b) {
assert (true);
HashSet<Integer> set = new HashSet<Integer>();
for (int i=0; i<b.length-1; i++) {
set.add(b[i]);
if (b[i + 1] < b[i]) {
for(int j=b[i]-1; j>b[i+1]; j--){
if (!set.contains(j)){
return false;
}
}
}
}
return true;
}
/**
* @param args
*/
public static void main(String[] args) {
int[] a = { 1, 2, 3, 4, 5 };
ArrayList<int[]> list = AllSequence.getAllSequence(a);
int count = 0;
for (int[] o : list) {
boolean result = PopSequence.isQualified(a, o);
if (result) {
Tools.printArray(o);
count++;
}
}
System.out.println(count);
boolean res = PopSequence.isQualified(a, new int[]{4,5,2,3,1});
System.out.println(res);
}
}判断某个出栈顺序是否合法
最新推荐文章于 2022-09-01 09:34:43 发布
5254

被折叠的 条评论
为什么被折叠?



