2019字节跳动春招笔试题

动态规划-最小硬币

  • 数值最少由多少个硬币组成
public static int minCoins(int[] arr, int aim) {
        if (arr == null || arr.length == 0 || aim < 0) {
            return -1;
        }
        int n = arr.length;
        int max = Integer.MAX_VALUE;
        int[][] dp = new int[n][aim + 1];
        for (int j = 1; j <= aim; j++) {
            dp[0][j] = max;
            if (j - arr[0] >= 0 && dp[0][j - arr[0]] != max) {
                dp[0][j] = dp[0][j - arr[0]] + 1;
            }
        }
        int left = 0;
        for (int i = 1; i < n; i++) {
            for (int j = 1; j <= aim; j++) {
                left = max;
                if (j - arr[i] >= 0 && dp[i][j - arr[i]] != max) {
                    left = dp[i][j - arr[i]] + 1;
                }
                dp[i][j] = Math.min(left, dp[i - 1][j]);
            }
        }
        return dp[n - 1][aim] != max ? dp[n - 1][aim] : -1;
    }

字符串

  • lloo 去掉 o 成 llo
  • AABBCC 去掉 B 成 AABCC

字符串

最少奖品

  • 编程比赛成员围成一个圈,分数高的人要比两边分数低的人获得的奖品更多

左程云编程的分糖果问题


一分二-绳子问题

  • N条绳子,要求裁剪出M条长度想等的子绳子出来,秋裁剪的绳子长度最长k是多少

设最长长度为x,得数学公式为:

L1/X + L2/X + L3/X + L4/X + ..... + LN/X <= K

酷狗笔试

  • 将一个数组拆分成两个和相等的数组,并且两个数组都排序。

你可能感兴趣的:(2019字节跳动春招笔试题)