专业网站优化推广,wordpress前端是什么意思,wordpress一直维护,深圳卫生人才网官网牛客.单词搜索 刚开始我就想是搜索#xff0c;但是不清楚bfs还是dfs更好#xff0c;我尝试了bfs但是队列存东西#xff0c;没有我想象的那么好写#xff0c;所以我决定试试dfs import java.util.*;public class Solution {static int m 0;static int n 0;static int […牛客.单词搜索 刚开始我就想是搜索但是不清楚bfs还是dfs更好我尝试了bfs但是队列存东西没有我想象的那么好写所以我决定试试dfs import java.util.*;public class Solution {static int m 0;static int n 0;static int []dx {1, -1, 0, 0};static int []dy {0, 0, 1, -1};static boolean [][]vis;static char[]word;/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可*** param board string字符串一维数组* param word string字符串* return bool布尔型*/public static boolean exist (String[] board, String _word) {m board.length;n board[0].length();word _word.toCharArray();char[][]a new char[m][n];vis new boolean[m][n];for (int i 0; i m; i) {for (int j 0; j n; j) {if (board[i].charAt(j) word[0]) {vis[i][j] true; //标记if (dfs(board, i, j, 0) true) {return true;};vis[i][j]false; //回溯}}}return false;}private static boolean dfs(String[] board, int i, int j, int pos) {if (pos word.length - 1) {return true;}for (int ii 0; ii 4; ii) {int x i dx[ii];int y j dy[ii];
//注意这里是pos1传递的是第几个下标if (x 0 x m y 0 y n board[x].charAt(y) word[pos 1] vis[x][y] false) {vis[x][y] true; //标记if ( dfs(board, x, y, pos 1) true) {return true;};vis[x][y] false; //回溯}}return false;}
} 牛客.杨辉三角 还想起来我第一次处理这个的时候怎么想也不知道怎么写那时候我是大一下学期刚学数据结构然后到了今天虽然我不是特别厉害但是还是有所进步的这个问题的想法由于它是由上一行的这个和上一行的左边这个加一起我的想法瞬间就想起来了dp于是使用了dp处理这个问题 import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别int a scanner.nextInt();int[][]b new int[a 1][a 1];for (int i 0; i a; i)b[i][0] 1;for (int i 1; i a; i) {for (int j 1; j i; j) {b[i][j] b[i - 1][j - 1] b[i - 1][j];}}for (int i 0; i a; i) {for (int j 0; j i; j) {if (b[i][j] ! 0) {StringBuffer ret new StringBuffer();int len Integer.toString(b[i][j]).length();for (int k 0; k 5 - len; k)ret.append( );System.out.print(ret.toString() b[i][j]);}}if (i 1 ! a)System.out.println();}}
} 牛客.游游的you 输入输出是因为我想熟悉一下模版这道题不用也可以。就是看连续的o就-1,先找对应的you再去找oo
import java.util.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.BufferedWriter;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static PrintWriter out new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));public static void main(String[] args)throws IOException {Read scanner new Read();int a1 scanner.nextInt();int[][] a new int[a1][3];int[] dp new int[a1];int[] count new int[a1];for (int i 0; i a1; i) {int min Integer.MAX_VALUE;for (int j 0; j 3; j) {a[i][j] scanner.nextInt();min Math.min(a[i][j], min);}count[i] a[i][1];dp[i] min;}int sum 0;for (int i 0; i a1; i) {if (count[i] - dp[i] - 1 0)sum dp[i] * 2;else sum dp[i] * 2 (count[i] - dp[i] - 1) ;System.out.println(sum);}// 注意 hasNext 和 hasNextLine 的区别}
}
class Read {StringTokenizer st new StringTokenizer();BufferedReader bf new BufferedReader(new InputStreamReader(System.in));String next()throws IOException {while (!st.hasMoreTokens()) {st new StringTokenizer(bf.readLine());}return st.nextToken();}String nextLine()throws IOException {return bf.readLine();}int nextInt() throws IOException {return Integer.parseInt(next());}long nextLong()throws IOException {return Long.parseLong(next());}double nextDouble()throws IOException {return Double.parseDouble(next());}
}
牛客.腐烂的苹果 常规的bfs,使用vis来标记然后就直接宽度搜索用一个队列放循环里面然后分两块往下面遍历(因为这是1s所以把它放到sz出去因为这个sz的作用是用来统计一个烂苹果能感染多少组好苹果然后把这些好苹果放到里面) import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可*** param grid int整型ArrayListArrayList* return int整型*/static int []dx {0, 0, 1, -1};static int []dy {1, -1, 0, 0};public static int rotApple (ArrayListArrayListInteger grid) {int m grid.size();int n grid.get(0).size();int ret 0;boolean[][]vis new boolean[m][n];Queueint[]q new LinkedList();for (int i 0; i m; i) {for (int j 0; j n; j) {if (grid.get(i).get(j) 2) {q.add(new int[] {i, j});vis[i][j] true;}}}while (!q.isEmpty()) {int sz q.size();while (sz 0) {int []k q.poll();sz--;for (int i 0; i 4; i) {int x dx[i] k[0];int y dy[i] k[1];if (x 0 x m y 0 y n grid.get(x).get(y) 1 vis[x][y] false) {q.add(new int[] {x, y});vis[x][y] true;}}}ret;}for (int i 0; i m; i) {for (int j 0; j n; j) {if (grid.get(i).get(j) 1 vis[i][j] false) {return -1;}}}return ret - 1;}// write code her
}