首页 > 奇安信8.1笔试编程题(Java岗)
头像
木河木
编辑于 2020-08-01 15:47
+ 关注

奇安信8.1笔试编程题(Java岗)

第一题

01背包问题,输入总预算,物资种类、价格和使用价值,求最大使用价值。
通过率100%。

import java.util.Scanner;

public class Money {
    public static void main(String [] args) {
        Scanner sc = new Scanner(System.in);
        int allMoney = sc.nextInt();
        int n = sc.nextInt();
        int[] w = new int[n];
        int[] v = new int[n];
        int[][] dp = new int[n + 1][allMoney + 1];

        for (int i = 0; i < n; i++) {
            w[i] = sc.nextInt();
            v[i] = sc.nextInt();
        }

        for (int i = 1; i < n + 1; i++) {
            for (int j = 1; j < allMoney + 1; j++) {
                if (j >= w[i - 1]) {
                    dp[i][j] = Math.max(dp[i - 1][j - w[i - 1]] + v[i - 1], dp[i - 1][j]);
                } else {
                    dp[i][j] = dp[i - 1][j];
                }
            }
        }

        System.out.print(dp[n][allMoney]);
    }
}

第二题

亲7数,即能被7整除的数。给出n个数的数字数组,通过排列组合成n位数,重复也要计算,找出其中的亲7数。
通过率100%。

import java.util.ArrayList;

public class ReletiveSeven {
    public static void main(String [] args) {
        ReletiveSeven rs = new ReletiveSeven();
        System.out.println(rs.reletive_7(new int[]{1,1,2}));
    }

    private ArrayList<Integer> list = new ArrayList<>();
    private boolean[] used;

    public int reletive_7 (int[] digit) {
        int length = digit.length, res = 0;
        used = new boolean[length];

        for (int i = 0; i < length; i++) {
            dfs(digit, i, length, 1, 0);
        }

        for (int i : list) {
            if (i % 7 == 0) {
                res++;
            }
        }

        return res;
    }

    public void dfs (int[] digit, int i, int length, int now, int number) {
        used[i] = true;

        number = number * 10 + digit[i];
        if (now == length) {
            list.add(number);
            used[i] = false;
            return;
        }

        for (int j = 0; j < length; j++) {
            if (!used[j]) {
                dfs(digit, j, length, now + 1, number);
            }
        }

        used[i] = false;
    }
}

全部评论

(1) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐