中级农民
- 积分
- 200
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2011-4-8
- 最后登录
- 1970-1-1
|
- public static boolean isValid(int[][] puzzle){
- if(puzzle == null || puzzle.length == 0){
- return false;
- }
- int m = puzzle.length, n = puzzle[0].length;
- boolean[][] marked = new boolean[m][n];
- helper(puzzle, 0, 0, marked);//dfs search all 0s connected to (0, 0)
- for(int i = 0; i < m; i++){
- for(int j = 0; j < n; j++){
- if(puzzle[i][j] == 0 && !marked[i][j]){
- return false;
- }
- }
- }
- return true;
-
- }
-
- public static void helper(int[][] puzzle, int i, int j, boolean[][] marked){
- if(!isValidIdx(puzzle, i, j)){
- return;
- }
- if(marked[i][j]){
- return;
- }
- if(puzzle[i][j] == 1){
- return;
- }else{
- marked[i][j] = true;
- helper(puzzle, i - 1, j, marked);
- helper(puzzle, i + 1, j, marked);
- helper(puzzle, i, j - 1, marked);
- helper(puzzle, i, j + 1, marked);
- }
- }
-
- private static boolean isValidIdx(int[][] matrix, int i, int j){
- int m = matrix.length, n = matrix[0].length;
- return i >= 0 && i < m && j >= 0 && j < n;
- }
复制代码 LZ帮忙看下第二题的代码,下周就要店面他家了
另外第一题面试官没叫考虑Corner cases么
比如string开头有空格什么的,中间delimiter是多个空格什么的,如过用trim, split这些build-in function算不算耍赖?
祝LZ onsite好运,记得发面经哦
补充内容 (2015-3-15 18:14):
另外LZ面试官叫什么名字? |
|