好了,又挂一家

明明觉得链家编程题都不难,然而就是没有一道能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 22:09
你们几道题啊 ,我投的C++研发,做的事后台啊,有三道大题啊
点赞 回复 分享
发布于 2017-09-02 21:19
表示申请的是机器学习岗位,给我出的题却是大数据的。。
点赞 回复 分享
发布于 2017-09-02 21:12
也不知道链家为什么这么爱出动规的题
点赞 回复 分享
发布于 2017-09-02 21:09
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
#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
第一题27%,第二题42%,搞不懂哪有问题
点赞 回复 分享
发布于 2017-09-02 21:05
。。。真心崩溃
点赞 回复 分享
发布于 2017-09-02 21:03
前两题都是动态规划做,第三题没想到,感觉应该也是动态规划
点赞 回复 分享
发布于 2017-09-02 21:00
同一题没AC..........
点赞 回复 分享
发布于 2017-09-02 20:56
我也纳闷第二题 为什么一直27
点赞 回复 分享
发布于 2017-09-02 20:53
校招笔试了这是?还没投啊。。。
点赞 回复 分享
发布于 2017-09-02 20:42

相关推荐

自从我室友在计算机导论课上听说了“刷&nbsp;LeetCode&nbsp;是进入大厂的敲门砖”,整个人就跟走火入魔了一样。他在宿舍门口贴了一张A4纸,上面写着:“正在&nbsp;DP,请勿打扰,否则&nbsp;Time&nbsp;Limit&nbsp;Exceeded。”日记本的扉页被他用黑色水笔加粗描了三遍:“Talk&nbsp;is&nbsp;cheap.&nbsp;Show&nbsp;me&nbsp;the&nbsp;code。”连宿舍聚餐,他都要给我们讲解:“今天的座位安排可以用回溯算法解决,但为了避免栈溢出,我建议用动态规划。来,这是状态转移方程:dp[i][j]&nbsp;代表第&nbsp;i&nbsp;个人坐在第&nbsp;j&nbsp;个位置的最优解。”我让他去楼下取个快递,他不直接去,非要在门口踱步,嘴里念念有词:“这是一个图的遍历问题。从宿舍楼(root)到驿站(target&nbsp;node),我应该用&nbsp;BFS&nbsp;还是&nbsp;DFS?嗯,求最短路径,还是广度优先好。”和同学约好出去开黑,他会提前发消息:“集合点&nbsp;(x,&nbsp;y),我们俩的路径有&nbsp;k&nbsp;个交点,为了最小化时间复杂度,应该在&nbsp;(x/2,&nbsp;y/2)&nbsp;处汇合。”有一次另一个室友低血糖犯了,让他帮忙找颗糖,他居然冷静地分析道:“别急,这是一个查找问题。零食箱是无序数组,暴力查找是&nbsp;O(n)。如果按甜度排序,我就可以用二分查找,时间复杂度降到&nbsp;O(log&nbsp;n)。”他做卫生也要讲究算法效率:“拖地是典型的岛屿问题,要先把连通的污渍区块都清理掉。倒垃圾可以用双指针法,一个指针从左往右,一个从右往左,能最快匹配垃圾分类。”现在我们宿舍的画风已经完全变了,大家不聊游戏和妹子,对话都是这样的:“你&nbsp;Two&nbsp;Sum&nbsp;刷了几遍了?”“别提了,昨天遇到一道&nbsp;Hard&nbsp;题,我连暴力解都想不出来,最后只能看题解。你呢?”“我动态规划还不行,总是找不到最优子结构。今天那道接雨水给我整麻了。”……LeetCode&nbsp;真的害了我室友!!!
老六f:编程嘉豪来了
AI时代还有必要刷lee...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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