阿里笔试 3.17

阿里3.17 笔试题

第一题

n副扑克,张数为m,大小为1~m,每幅扑克抽一张,求和恰好为k的组合数,结果对10e9+7取余数。
思路:动态规划。和为i,j副扑克,,dp[i][j] = dp[i-1][j-1]+...+dp[i-m][j-1](此处需要判断 i-m>0 )。初始化,j=1,i<=m,dp[i][j] = 1; i==j,dp[i][j] = 1,后面的情况不可能存在,所以推出循环。

代码

欢迎指正。

public class Main {
static long MOD = 1000000007;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int t = scanner.nextInt();
        for (int i = 0; i < t; i++) {
            int n = scanner.nextInt();
            int m = scanner.nextInt();
            int k = scanner.nextInt();
            System.out.println(solution(m, n, k));
        }
    }

    public static int solution(int m, int n, int k) {
        if (k < n || k > n * m) return 0;
        long[][] dp = new long[k + 1][n + 1];
        for (int i = 1; i <= k; i++) {
            for (int j = 1; j <= n; j++) {
                if (i == j) {
                    dp[i][j] = 1;
                    //后面的结果不可能发生
                    break;
                } else if (j == 1) {
                    if (i <= m) dp[i][j] = 1;
                } else {
                    for (int p = 1; p <= m; p++) {
                        if (i - p <= 0)
                            break;
                        dp[i][j] += dp[i - p][j - 1];
                        dp[i][j] %= MOD;
                    }
                }
            }
        }
        return (int) (dp[k][n] % MOD);
    }
}

第二题

没时间做了,题目太长了,记不清楚了。但是大概看了一下,不是特别难。

#笔试题目##阿里巴巴#
全部评论
第一题 O(n*m*k) 二维dp 第二题 O(nlogn) sort+前缀和
5 回复 分享
发布于 2021-03-17 14:29
第一题忘记mod了。。难受 不知道会不会有人工code review
2 回复 分享
发布于 2021-03-17 11:14
第二题有没有说一下啥题
2 回复 分享
发布于 2021-03-17 11:17
面试官给你打电话了么?现在是什么状态
2 回复 分享
发布于 2021-03-17 13:36
第一题能用回溯做吗,就像leetcode排列组合的解法,但是我没做出来......☹
1 回复 分享
发布于 2021-03-17 12:36
第一题的数据规模是什么_(:з」∠)_
1 回复 分享
发布于 2021-03-17 13:42
O(n^3)会超时吗。我帮朋友做的,也是这个做法
1 回复 分享
发布于 2021-03-17 14:03
第二题题目***绕了,后来仔细读了下题目。总的最小优化代价不是一种整个状态的优化代价,就是两两配对取最小值累加。我还哼哧哼哧用最小生成树做了半天。不过心里也有底了,笔试难度也就这样。😂
1 回复 分享
发布于 2021-03-17 15:37
蹭个热度🤣,如果还有同学没有投递过阿里,欢迎投递我们部门哦,有问题聊可以私信或者加微信https://www.nowcoder.com/discuss/613981?source_id=profile_create_nctrack&channel=-1
1 回复 分享
发布于 2021-03-25 19:29
请问 lc 上有类似的题吗?
点赞 回复 分享
发布于 2021-03-17 11:34
这些题目有时间复杂度要求吗
点赞 回复 分享
发布于 2021-03-17 22:49
话说笔试多久会有结果啊
点赞 回复 分享
发布于 2021-03-19 23:37
看了你微信的面经,又跑来这里,同学你真的太优秀了,期望你能来试试我们团队,文档协同团队,加我微信呀 yu583497794
点赞 回复 分享
发布于 2021-04-08 22:33

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
迪爷到现在都已经收了35w份简历了🤣吓人
在吃瓜的你很紧张:以前你叫迪子,现在你叫迪爷
点赞 评论 收藏
分享
11 48 评论
分享
牛客网
牛客企业服务