好了,又挂一家

明明觉得链家编程题都不难,然而就是没有一道能AC。
而且选择题是什么嘛,都是Java和php,我看都不想看好吗。
如果有大神第二题AC了的话(就是卖东西那道题),可以给我看一下代码吗,我已经交卷了所以不存在作弊的问题,感激不尽。
好了,我刷题去了。
#C++工程师#
全部评论
第一道 public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] v = new int[n]; for(int i = 0 ; i < n ; i++){ v[i] = in.nextInt(); } int[][] dp = new int[n][n]; for(int i = 0 ; i < n ; i++){ dp[i][i] = v[i]*n; } for(int j = 1 ; j < n ; j++){ for(int i = j-1 ; i >= 0 ; i--){ dp[i][j] = Math.max(dp[i+1][j] + v[i]*(n-j+i), dp[i][j-1]+v[j]*(n-j+i)); } } System.out.println(dp[0][n-1]); } 第二道 public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int V = in.nextInt(); int[] m = new int[n]; int[] w = new int[n]; int[] s = new int[n]; for(int i = 0 ; i < n ; i++){ m[i] = in.nextInt(); w[i] = in.nextInt(); s[i] = in.nextInt(); } int[][] dp = new int[n+1][V+1]; for(int i = 1 ; i <= n ; i++){ for(int j = w[i-1] ; j <= V ; j++){ dp[i][j] = dp[i-1][j]; for(int k = 1 ; k <= m[i-1] ; k++){ if(j < k*w[i-1]){ break; } dp[i][j] = Math.max(dp[i][j], dp[i-1][j-k*w[i-1]]+k*s[i-1]); } } } System.out.println(dp[n][V]); }
点赞 回复 分享
发布于 2017-09-02 21:09
第二题是记忆化搜索/区间dp。dp[i][j]表示区间为i到j的最大值。然后就随便搞就行了。
点赞 回复 分享
发布于 2017-09-02 20:43
校招笔试了这是?还没投啊。。。
点赞 回复 分享
发布于 2017-09-02 20:42
我也纳闷第二题 为什么一直27
点赞 回复 分享
发布于 2017-09-02 20:53
同一题没AC..........
点赞 回复 分享
发布于 2017-09-02 20:56
前两题都是动态规划做,第三题没想到,感觉应该也是动态规划
点赞 回复 分享
发布于 2017-09-02 21:00
。。。真心崩溃
点赞 回复 分享
发布于 2017-09-02 21:03
第一题27%,第二题42%,搞不懂哪有问题
点赞 回复 分享
发布于 2017-09-02 21:05
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main(){ int n; cin >> n; vector<int> init(n+1, 0); for (int i = 1; i <= n; i++) cin >> init[i]; vector<int> tmp(n+2,0); vector<vector<int>> dp(n+2, tmp); for (int i = 1; i <= n; i++) { for (int j = 1; j <= n - i + 1; j++) { dp[j][i] = max(dp[j + 1][i - 1] + (n - i + 1)*init[j], dp[j][i - 1] + (n - i + 1)*init[j + i - 1]); } } cout << dp[1][n]; return 0; }
点赞 回复 分享
发布于 2017-09-02 21:05
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); int[] arr=new int[n]; for(int i=0;i<n;i++){ arr[i]=sc.nextInt(); } Max(arr,n); } }    //n:数组长度 private static void Max(int[] arr, int n) { int low=0; int high=arr.length-1; int sum=0; int day=1; if(arr.length<=0||arr==null){ return; } while(low<=high){ if(arr[low]<=arr[high]){ sum+=arr[low]*day; day++; low++; }else{ sum+=arr[high]*day; day++; high--; } } System.out.println(sum); } }
点赞 回复 分享
发布于 2017-09-02 21:09
也不知道链家为什么这么爱出动规的题
点赞 回复 分享
发布于 2017-09-02 21:09
表示申请的是机器学习岗位,给我出的题却是大数据的。。
点赞 回复 分享
发布于 2017-09-02 21:12
你们几道题啊 ,我投的C++研发,做的事后台啊,有三道大题啊
点赞 回复 分享
发布于 2017-09-02 21:19
这是哪家的?
点赞 回复 分享
发布于 2017-09-02 22:09

相关推荐

已老实求offer😫:有点像徐坤(没有冒犯的意思哈)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务