0 点赞 评论 收藏
分享
小白小白啦:import java.util.ArrayList;
import java.util.Scanner;
public class Main {
static ArrayList<Integer> result = new ArrayList<>();
public static void solution(int n, int m, int k, int[][] tone){
int[][] qipan = new int[n][m];
for(int i=0; i<k; i++)
qipan[tone[i][0]][tone[i][1]] = 1;
dfs(qipan, new boolean[n][m], 0, 0, 0, n, m);
int min = Integer.MAX_VALUE;
for(int i=0; i<result.size(); i++)
min = Math.min(min, result.get(i));
if(min == Integer.MAX_VALUE)
System.out.println(0);
else
System.out.println(min);
}
public static void dfs(int[][] dp, boolean[][] mark, int i, int j, int path, int n, int m){
if(i == n-1 && j == m-1){
result.add(path);
return;
}
if(i<0 || i>=n || j<0 || j>=m || dp[i][j] == 1 || mark[i][j] == true)
return;
mark[i][j] = true;
dfs(dp, mark, i+1, j, path+1, n, m);
dfs(dp, mark, i-1, j, path+1, n, m);
dfs(dp, mark, i, j+1, path+1, n, m);
dfs(dp, mark, i, j-1, path+1, n, m);
mark[i][j] = false;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int k = scanner.nextInt();
int[][] tone = new int[k][2];
for(int i=0; i<k; i++)
for(int j=0; j<2; j++)
tone[i][j] = scanner.nextInt();
solution(n, m, k, tone);
}
} 棋盘最短路径。dfs找出所有路径,输出最小值
投递小红书等公司10个岗位 >
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
2019-08-27 20:45
东北大学 Java 许愿offer来:import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int[][] A = new int[N][M];
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
A[i][j] = sc.nextInt();
}
}
int res = 0;
for (int i = 0; i < M; i++) {
int max = Integer.MIN_VALUE;
for (int j = 0; j < N; j++) {
max = Math.max(max, A[j][i]);
}
res += max;
}
System.out.println(res);
}
}
第二题看是其他人发的帖子 import java.util.Arrays;
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++)
nums[i] = sc.nextInt();
int sum = 0;
int flag = 0;
for (int i = 0; i < n; i++) {
if (nums[i] < 0) {
flag = 1;
} else {
sum += nums[i];
}
}
if (flag == 1) {
Arrays.sort(nums);
int max = nums[nums.length - 1];
sum -= max;
}
System.out.println(sum);
}
}
0 点赞 评论 收藏
分享
2019-07-27 23:02
东北大学 Java 0 点赞 评论 收藏
分享
2019-05-06 00:30
东北大学 Java bybywudi:有没有实习生现在去西二旗软件园实习的?我租了自如的一个西二旗软件园门口东馨园小区的两室一厅的房子,租金6600一个月,但暂时空置不住,想便宜租出去,每个卧室70一天,可以按天付,从今天起到7月初都可以住,需要的联系18691203189
0 点赞 评论 收藏
分享
2019-05-04 17:33
东北大学 Java 0 点赞 评论 收藏
分享
2019-04-13 21:05
东北大学 Java 拼命_up:只用考虑原来字符串最大连续1的长度和首尾是否都有连续的1就行 如果字符串开头是0,就算把后面挪到前面不改变最长1的长度,结尾是0的话同理
投递京东等公司10个岗位 >
0 点赞 评论 收藏
分享
投递华为等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了: