zoukankan      html  css  js  c++  java
  • 携程笔试1-排列问题

    public class XieCheng2 {
        /**
         * 给定 n个岛屿的分数:  x1 x2.. xn
         * m张牌:  y1 y2.. ym
         * 每次前进 y1
         * 问最高分数
         */
        public static void main(String[] args) {
            int n=4, m=2;
            int[] scores = new int[]{1,2,3,4};
    
            int[] cards = new int[]{1,2};
            int maxScores=0;
            LinkedList<ArrayList<Integer>> allCards = getAll(cards);
    
            for (ArrayList<Integer> allCard : allCards) {
                int cIndex=0;
                int cScore=scores[0];
                for (int i = 0; i < allCard.size(); i++) {
                    Integer cardNum = allCard.get(i);
                    cIndex += cardNum;
                    if(cIndex>n-1){
                        break;
                    }
                    cScore+=scores[cIndex];
    
                }
                maxScores = Math.max(cScore,maxScores);
            }
            System.out.println(maxScores);
        }
        public static LinkedList<ArrayList<Integer>> list = new LinkedList<>();
        public static LinkedList<ArrayList<Integer>> getAll(int[] a){
            boolean[] used = new boolean[a.length];
            Deque<Integer> deque = new ArrayDeque<>();
    
            for(int i=0; i<a.length; i++){
                deque.addLast(a[i]);
                used[i] = true;
                dfs(a.length,a,used,deque);
                used[i] = false;
                deque.removeLast();
            }
            return list;
        }
    
        private static void dfs(int n, int[] a, boolean[] used, Deque<Integer> deque) {
            if(deque.size() == n){
                list.add(new ArrayList<>(deque));
                return;
            }
            for(int i=0; i<a.length; i++){
                if(!used[i]){
                    deque.addLast(a[i]);
                    used[i] = true;
                    dfs(a.length,a,used,deque);
                    used[i] = false;
                    deque.removeLast();
                }
            }
        }
    }
  • 相关阅读:
    善用不同语言描述问题
    评黑书《算法艺术与信息学竞赛》
    代码设计的几个基础技巧
    结构和类
    看很多算法书,有个体会就是:算法关我屁事
    看好win8应用商场
    12306 火车订票网站的改进方案(专家讲解)
    有限责任公司章程
    该如何抽象
    财务软件的设计
  • 原文地址:https://www.cnblogs.com/wsZzz1997/p/14766470.html
Copyright © 2011-2022 走看看