关注
等我提交的时候,没时间了。。。 import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
int n = Integer.parseInt(line);
int[][] area = new int[n][n];
for (int i = 0; i < n; i++) {
line = scanner.nextLine();
String[] split = line.split(",");
if (split.length != n) {
throw new IllegalArgumentException("错误输入");
}
int j = 0;
for (String num : split) {
area[i][j++] = Integer.parseInt(num);
}
}
int minimumTimeCost = getMinimumTimeCost(n, area);
System.out.println(minimumTimeCost);
}
private static int getMinimumTimeCost(int n, int[][] area) {
int res = Integer.MAX_VALUE;
for (int i = 0; i < n; i++) {
int t = dfs(area, 0, i, n, 0);
// System.out.println("res:" + t);
if (t < res && t != -1)
res = t;
}
return res;
}
static int dfs(int[][] area, int i, int j, int n, int t) {
// System.out.println(i + " " + j);
if (i > n || j >= n)
return -1;
if (i == n)
return t;
if (j == n - 1)
return dfs(area, i += 2, j, n, t += area[i - 1][j]);
if (area[i + 1][j] <= area[i][j + 1])
return dfs(area, i += 2, j, n, t += area[i - 1][j]);
return dfs(area, i, j += 2, n, t += area[i][j - 1]);
}
}
查看原帖
点赞 评论
相关推荐
牛客热帖
正在热议
# 25届秋招总结 #
498058次浏览 5093人参与
# 职场情商大赛 #
8778次浏览 114人参与
# 晒一晒我的offer #
10106991次浏览 106975人参与
# 如何排解工作中的焦虑 #
80006次浏览 1100人参与
# 夸夸我的求职搭子 #
135288次浏览 1393人参与
# 机械人的薪资开到多少,才适合去? #
79236次浏览 376人参与
# 面试题刺客退退退 #
147706次浏览 2179人参与
# 字节跳动工作体验 #
227401次浏览 3133人参与
# 我的岗位说明书 #
96812次浏览 957人参与
# 如果不工作真的会快乐吗 #
62474次浏览 542人参与
# 我的第一份实习怎么找的 #
36440次浏览 316人参与
# 25届非技术实习投递记录 #
97184次浏览 878人参与
# 我的求职思考 #
4264479次浏览 57580人参与
# 小红书求职进展汇总 #
32188次浏览 273人参与
# 你投了多少份简历了? #
71521次浏览 842人参与
# 求职你最看重什么? #
19148次浏览 136人参与
# 远程面试的尴尬瞬间 #
24007次浏览 324人参与
# 听劝,这个公司值得去吗 #
335129次浏览 1357人参与
# 非技术岗薪资爆料 #
214886次浏览 1850人参与
# 平台or薪资,你更看重哪个 #
285918次浏览 1885人参与