3.3---集合栈(CC150)

思路:注意一下别写错add还是remove

public class SetOfStacks {
   public static ArrayList<ArrayList<Integer>> setOfStacks(int[][] ope, int size) {
        // write code here
        
        ArrayList<ArrayList<Integer>> res = new ArrayList();
        ArrayList<Integer> list = new ArrayList();
        
        res.add(list);
        if(ope.length == 0) return res;

        for(int i = 0; i < ope.length; i++){
            ArrayList<Integer> tmp     = null;
            if(ope[i][0] == 1){
                
                if(res.get(res.size() - 1).size() == size){
                    tmp = new ArrayList();
                }
                else{
                    tmp = res.get(res.size() - 1);
                    res.remove(res.size() - 1);
                }


                tmp.add(ope[i][1]);

                res.add(tmp);
            }
            else{
                if(res.get(res.size() -1).size() != 0){
                    tmp = res.get(res.size() - 1);
                    res.remove(res.size() - 1);
                    tmp.remove(tmp.size() - 1);
                    if(tmp.size() != 0)
                    res.add(tmp);
                }
                else{
                    res.remove(res.size() - 1);
                }
                
            }
        }

        return res;

    }
}

 

posted @ 2015-12-20 13:25  创业-李春跃-增长黑客  阅读(155)  评论(0编辑  收藏  举报