zoukankan      html  css  js  c++  java
  • 9.4---集合子集(CC150)

    这题非常复杂。牛客网上对应的题目对结果要求比较苛刻,所以要调整。

    整体思路是:先放进去一个,然后第二个来的时候插入到已有的,并且把自己也放进去。

    public static  ArrayList<ArrayList<Integer>> getSubsets(int[] a, int n){
            ArrayList<ArrayList<Integer>> res = new ArrayList();
            if(n <= 0) return res;
    
            ArrayList<Integer> tmp = new ArrayList();
            tmp.add(a[n-1]);
            res.add(tmp);
            for(int i = n-2; i >=0; i--){
                ArrayList<ArrayList<Integer>> res2 = new ArrayList(res);
                for(ArrayList<Integer> list : res){
                    ArrayList<Integer> list2 = new ArrayList(list);
                    list2.add(a[i]);
                    res2.add(list2);
                }
                ArrayList<Integer> list3 = new ArrayList();
                list3.add(a[i]);
                res2.add(list3);
                res = new ArrayList(res2);    
            }
    
            ArrayList<ArrayList<Integer>> res3 = new ArrayList();
            ArrayList<Integer> max = new ArrayList();
        
            int flag = 0;
            int h = res.size();
            while(res3.size() != h){
                max = res.get(0);
                for(int i = 1; i < res.size(); i++){
                    if(big(res.get(i),res.get(flag))){
                        max = res.get(i);
                        flag = i;
                    }
                
                }
                ArrayList<Integer> list4 = new ArrayList(max);
                res3.add(list4);
                
                res.remove(flag);
                flag = 0;
    
            }
    
            return res3;
        }
    
    
        public static boolean big(ArrayList<Integer> list1, ArrayList<Integer> list2){
            for(int i = 0; i < list1.size() && i<list2.size(); i++){
                if(list1.get(i) > list2.get(i)){
                    return true;
                }
                else if(list1.get(i) < list2.get(i)){
                    return false;
                }
                else{
    
                }
            }
            if(list1.size() > list2.size())
                return true;
            else{
                return false;
            }
        }
  • 相关阅读:
    puppeteer 离线安装chromium
    如何在Taro项目中使用Iconfont(阿里图标)
    POI3.8内存中限制行数为100问题记录
    centos下puppeteer调用chromium报错,缺少包
    VS Code 简单配置运行Java
    使用VSCode 断点调试 js项目,html页面
    Java--Excel--poi 边框、单元格换行、 背景色、合并单元格相关
    浅析Spring Aware
    Spring MVC 注解
    异常处理
  • 原文地址:https://www.cnblogs.com/yueyebigdata/p/5086740.html
Copyright © 2011-2022 走看看