0915 广发银行笔试

  1. //先全排列得出所有可能放入res,然后计算res中所有的集合的乘积大小,全排列本身是有序的
       boolean[] used;
       List<List<Integer>> res;
       Deque<Integer> path;
        public  int[] findCombination (int n, int[] srcArr) {
            // write code here
            res = new ArrayList<>();
            path = new ArrayDeque<>();
            used = new boolean[srcArr.length];
            int len = srcArr.length;
            quanpailie(n,srcArr);
            int max = 0;
            int[] a = new int[n];
            for (List<Integer> re : res) {
                int num = dfs(0,re.size()-1,re);
                if(num > max){
                    max = num;
                    int index = 0;
                    for (Integer integer : re) {
                        a[index++] = integer;
                    }
                }
            }
            return a;
        }
        public  int dfs(int start , int end,List<Integer> list){
            if(end<=start){
                return 0;
            }
            int sum = 0;
            for(int i = start+1; i <=end ; i++){
                sum +=list.get(start)*list.get(i);
            }
            return sum + dfs(start+1,end,list);
        }
    
    
        public  void quanpailie(int n,int []srcArr){
            if(path.size() == n){
                res.add(new ArrayList<>(path));
            }
    
            for (int i = 0; i < srcArr.length; i++) {
                if(!used[i]){
                    used[i] = true;
                    path.addLast(srcArr[i]);
                    quanpailie(n ,srcArr);
                    path.removeLast();
                    used[i] = false;
                }
            }
        }
    2.
    //暴力法,没啥说的
    public  int calcMaxRusult (int[] srcArr) {
            // write code here
            int n = srcArr.length;
            int res =0;
            for (int i = 0; i < n; i++) {
                for (int j = i+1; j < n; j++) {
                    for (int k = j+1; k < n; k++) {
                       int num = srcArr[i]*srcArr[j]+srcArr[i]*srcArr[k]+srcArr[j]*srcArr[k];
                       res = Math.max(res,num);
                    }
                }
            }
            return  res;
        }




#广发银行研发中心##广发银行#
全部评论
俩题一样 第二题直接套的第一题代码
2 回复 分享
发布于 2022-09-15 17:11 辽宁
笔试通过的和面试过的友友可以进来交流一下分享最新动态
1 回复 分享
发布于 2022-09-17 17:16 广东
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
1 回复 分享
发布于 2022-09-16 14:49 北京
没判断顺序过了多少.
1 回复 分享
发布于 2022-09-15 17:26 广东
老哥收到面试通知了吗
点赞 回复 分享
发布于 2022-09-15 21:25 广东

相关推荐

牛至超人:把哈工大,再加大加粗,看见闪闪发光的哈工大字样,面试官直接流口水
投递字节跳动等公司6个岗位
点赞 评论 收藏
分享
11-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
评论
8
10
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务