全部评论
我也想问第一题 80%
100 100 5 不知道什么情况 感觉第三题对了 一直在搞第三题
//第一
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]);
}
}
//第二
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);
}
}
同83 83 第三题25😂
第一题用递归暴力求解直接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]);
}
}
第一题 用排列组合 做的 83
第三题超时。。。15%
请问收到面试短信了吗
请问收到面试短信了吗
什么题目呀?看着怎么跟我写的不太一样,第一题是字符串中Good的个数;第二题是最长上升子序列
我记得三题都很简单,后两题都是leetcode原题吧,第二题用python会超时,用C++重写了一遍。。
相关推荐
10-23 11:17
百度_智能客服研发组_Java后端开发(实习员工) 点赞 评论 收藏
分享