网易笔试
全部评论
有没有检查边界情况
你dfs是根据边进行的吗?边不一定连续。比如从1-2,在6-7这样


我的代码,有佬告诉我哪错了吗
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);
}
多少能进面昂
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
做算法题太专心了,忘记还有一个开放题了
。佬,请问开放题是什么?
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-03 18:30
湖南大学 游戏策划
嵌入式的小白:其实说句实话,这个福利背后是后一套逻辑的
1.公司食堂提供免费的早餐,但不会提供到比如10点,这样大家就会早点来公司
2.食堂提供宵夜,也是同样的道理,想让员工晚上加班
3.提供健身房,也是希望看能不能把大家吸引来周末加班
4.有宿舍的,这个宿舍一般不会很远的,缩短在路上的耗时,更多的时间就放在公司上了
巨人网络公司福利 91人发布 点赞 评论 收藏
分享