商汤科技 笔试 后端开发 83% 83% 5%

求大佬的代码,特别是第一题和第二题,怎么100%#商汤科技##笔试题目#
全部评论
我也想问第一题 80%
点赞
送花
回复
分享
发布于 2019-09-21 21:18
100 100 5 不知道什么情况   感觉第三题对了   一直在搞第三题
点赞
送花
回复
分享
发布于 2019-09-21 21:18
秋招专场
校招火热招聘中
官网直投
//第一 package shangtang; import java.util.Scanner; public class Main1 {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         String input = sc.nextLine();         String[] rowAndCol = input.split(" ");         if(rowAndCol.length != 2)             throw new RuntimeException("输入有误");         int row = Integer.valueOf(rowAndCol[0]);         int col = Integer.valueOf(rowAndCol[1]);         int[][] dp = new int[row][col];         for(int i=0;i<row;i++){             for(int j=0;j<col;j++){                 if(i==0 || j==0){                     dp[i][j] = 1;                 }else{                     dp[i][j] = dp[i-1][j]+dp[i][j-1];                 }             }         }         System.out.println(dp[row-1][col-1]);     } }
点赞
送花
回复
分享
发布于 2019-09-21 21:19
//第二 package shangtang; import java.util.Scanner; /**  * @Param: 6  *    3 -1 8 6 5 2  * @Date: 2019/9/21 19:40  */ public class Main2 {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int n = sc.nextInt();         sc.nextLine();         String inputs = sc.nextLine();         String[] s = inputs.split(" ");         if(s.length != n)             throw new RuntimeException("输入有误");         int[] nums = new int[n];         for(int i=0;i<n;i++)             nums[i] = Integer.valueOf(s[i]);         //如果全部数字小于0         boolean nf = true;         int minVal = Integer.MIN_VALUE;         for(int i=0;i<n;i++){             if(nums[i]>0){                 nf = false;                 break;             }             minVal = Math.max(minVal,nums[i]);         }         if(nf){             System.out.println(minVal);             return;         }         int maxVal = Integer.MIN_VALUE;  //最大总和         int curVal = 0;      // 当前总和         int startAddIndex = 0;  //开始相加时候的下标 , 记录让和为0时的下标         for(;startAddIndex<n;startAddIndex++){             curVal = 0;             for(int i=startAddIndex;i<n+startAddIndex;i++){                 int index = i%n;                 curVal += nums[index];                 if(curVal<0){                     curVal = 0;                 }                 if(curVal>maxVal)                     maxVal = curVal;             }         }         System.out.println(maxVal);     } }
点赞
送花
回复
分享
发布于 2019-09-21 21:20
同83 83 第三题25😂
点赞
送花
回复
分享
发布于 2019-09-21 21:21
第一题用递归暴力求解直接83超时,用动态规划方法100; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n=in.nextInt(),m=in.nextInt(); if(n==1||m==1) { System.out.println(1); return; } int count[][] = new int[n][m]; for(int i=0;i<n;i++) { for(int j=0;j<m;j++ ) { if(i==0||j==0) { count[i][j]=1; continue; }else { count[i][j]=count[i-1][j]+count[i][j-1]; } } } System.out.println(count[n-1][m-1]); } }
点赞
送花
回复
分享
发布于 2019-09-21 21:28
第一题 用排列组合 做的 83
点赞
送花
回复
分享
发布于 2019-09-21 21:30
第三题超时。。。15%
点赞
送花
回复
分享
发布于 2019-09-21 21:37
请问收到面试短信了吗
点赞
送花
回复
分享
发布于 2019-09-24 12:58
请问收到面试短信了吗
点赞
送花
回复
分享
发布于 2019-10-18 19:30
什么题目呀?看着怎么跟我写的不太一样,第一题是字符串中Good的个数;第二题是最长上升子序列
点赞
送花
回复
分享
发布于 2020-08-23 19:30
我记得三题都很简单,后两题都是leetcode原题吧,第二题用python会超时,用C++重写了一遍。。
点赞
送花
回复
分享
发布于 2020-08-23 19:41

相关推荐

头像
不愿透露姓名的神秘牛友
05-27 11:41
已编辑
点赞 评论 收藏
转发
点赞 1 评论
分享
牛客网
牛客企业服务