今天头条的笔试题大家进来交流下思路吧~

楼主第一道题枚举T然后 AC 了60%,不知道哪个 case 没过;第二题 AC,本质是一道多重背包问题;第三题和大部分人一样先用暴力试了试只过了2%不知道哪错了;第四道题用暴力超时来不及优化只过了50%;第五题都没时间细看T T

下面是我的第二道题的 AC 代码,希望有大神能给出其他题的正确解法。

public int resolveNumber2(int[] arr1, int[] arr2, int m){
    int MOD = 1000000007;
    int[] dp = new int[m + 1];
    dp[0] = 1;
    for(int num : arr1){
        for(int i = num; i <= m; i++)
            dp[i] = (dp[i] + dp[i - num]) % MOD;
    }
    for(int num : arr2){  
        for(int i = m; i >= num; i--)
            dp[i] = (dp[i] + dp[i - num]) % MOD;  
    }
    return dp[m];
}

全部评论
楼主你好,想问一下第二题,取模操作到底是什么意思?为什么不在最后return dp[m] % MOD,而是在计算dp的时候反复取模?
点赞 回复 分享
发布于 2018-04-16 15:57
第四题是用最小优先队列做的吗?
点赞 回复 分享
发布于 2018-04-15 21:59
第一题代码, 复杂度O(n^2), 一开始没想出来, 不知道对不对: public class Solution {     public static int getT(int[] nums){         int[] diff= new int[nums.length-1];         for(int i=0; i<diff.length; i++){             diff[i]= nums[i+1]- nums[i];         }         // 在diff中找到最短的重复片段;         for(int p2=1; p2<diff.length; p2++){             int p1= 0;             while(p2< diff.length &&  diff[p1]== diff[p2]){                 p1++;                 p2++;             };             if(p2==diff.length){                 return nums[p2- p1]- nums[0];             }         }         return nums[nums.length-1]-nums[0];     }     public static void main(String[] args){         int[] arr= new int[]{1, 2, 3};         System.out.println(getT(arr));         arr= new int[]{2, 4, 6};         System.out.println(getT(arr));         arr= new int[]{3, 4, 6};         System.out.println(getT(arr));     } } 最后一道题目,之前做过这道题目, 但是只能ac 70%: https://www.geeksforgeeks.org/two-water-jug-puzzle/
点赞 回复 分享
发布于 2018-04-15 16:45
最后一题是不是Leetcode上water and jug问题的变式?区别是电量只能是其中一个有电,要给出操作次数。
点赞 回复 分享
发布于 2018-04-15 15:51
第一题没做,剩下跟楼休息一样
点赞 回复 分享
发布于 2018-04-15 15:07
第二题为什么是多重背包问题,不是求可分配的数量吗?求教楼主
点赞 回复 分享
发布于 2018-04-15 14:29
第一题 我暴力枚举加hash表查找过了80%
点赞 回复 分享
发布于 2018-04-15 13:34
看了你的代码才发现第二题错哪了。。。还以为只能用一个纪念币。。。官方为什么不给一个稍微复杂一点的例子。。。。
点赞 回复 分享
发布于 2018-04-15 13:16
第一题暴力枚举T能过60%吗。。。 
点赞 回复 分享
发布于 2018-04-15 13:08
我刚回复完你就删帖了。要修改可以点编辑。 想讨论一下第三题,不是暴力的解法,只通过了12%。代码写得不好,感兴趣的看看,讨论下哪些情况没考虑到。
点赞 回复 分享
发布于 2018-04-15 13:02

相关推荐

字节跳动冲冲冲冲:随时都可以投,9 10和2 3月份比较好找
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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