说是让弄进出栈,其实是个队列问题
弄两个队列,遇到1就进队列,遇到2出来,对2分个情况注意调用get()的时候判个空就解决了
import java.util.*;
public class CatDogAsylum {
public ArrayList<integer> asylum(int[][] ope) {
// write code here
ArrayList<integer> arr=new ArrayList<>();
ArrayList<integer> res=new ArrayList<>();
int len=ope.length;
for(int i=0;i<len;i++){
if(ope[i][0]==1){
arr.add(ope[i][1]);
}else if(ope[i][0]==2){//////////////////////////////////////////////////
if(ope[i][1]==0){
if(!arr.isEmpty()){
res.add(arr.remove(0));
}
}else if(ope[i][1]==1){
for(int k=0;k<arr.size();k++){
if(!arr.isEmpty()){
try{
if(arr.get(k)>0){
res.add(arr.remove(k));
break;
}
}catch(Exception e){
continue;
}
}
}
}else if(ope[i][1]==-1){
for(int k=0;k<arr.size();k++){
if(!arr.isEmpty()){
try{
if(arr.get(k)<0){
res.add(arr.remove(k));
break;
}
}catch(Exception e){
continue;
}
}
}
}
}
}
return res;
}
}
//到位!!</integer></integer></integer>