网易笔试

第三题暴力用dfs两个用例都过了,结果提交是0,怎么回事 #春招#  #网易笔试#
全部评论
做算法题太专心了,忘记还有一个开放题了。佬,请问开放题是什么?
点赞 回复 分享
发布于 03-15 12:17 上海
public static void solution3(){ Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); in.nextLine(); int[][] mess = new int[m][3]; for(int i=0;i<m;i++){ mess[i][0] = in.nextInt(); mess[i][1] = in.nextInt(); mess[i][2] = in.nextInt(); } long[] dp =new long[n+1]; for(int i = 0;i<m;i++){ int start = mess[i][0]; int end =mess[i][1]; int bonus = mess[i][2]; for(int j = n;j>=end;j--){ dp[j] = Math.max(dp[j],dp[start]+(end-start+bonus)); } } System.out.println(dp[n]); }有没有佬能帮忙看看第三题为啥错呀,用例过了但是通过率0
点赞 回复 分享
发布于 03-15 12:18 北京
多少能进面昂
点赞 回复 分享
发布于 03-15 12:19 美国
我的代码,有佬告诉我哪错了吗 static long max=0; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num= sc.nextInt(); int packages = sc.nextInt(); ArrayList<int[]> list = new ArrayList<>(); for (int i = 0; i < packages; i++) { int i1 = sc.nextInt(); int i2 = sc.nextInt(); int bonus = sc.nextInt(); list.add(new int[]{i1,i2,bonus}); } dfs(list,0,0,0); System.out.println(max); } public static void dfs(List<int[]> points, int end, int n, int sum){ if(max<sum){ max=sum; } if(n==points.size()){ return; } int[] nums = points.get(n); if(nums[0]>=end) { int tmp = nums[1] - nums[0] + nums[2]; sum += tmp; dfs(points, nums[1],n + 1, sum); sum -= tmp; } dfs(points,end,n+1,sum); }
点赞 回复 分享
发布于 03-15 12:22 四川
你dfs是根据边进行的吗?边不一定连续。比如从1-2,在6-7这样
点赞 回复 分享
发布于 03-15 12:51 江西
有没有检查边界情况
点赞 回复 分享
发布于 03-15 19:10 北京

相关推荐

Rizo:直接摆了。前两道做了直接交了
投递网易等公司10个岗位
点赞 评论 收藏
分享
渴望得到救赎的杰瑞:前三题一会就写完了 还有一个多点,第四题搞了n次 花了一个多小时 还是0 头大
查看5道真题和解析 投递网易等公司10个岗位
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务