首页 > 哔哩哔哩8.25笔试——Java(游戏开发)
头像
夜尽天明~
编辑于 2021-08-25 22:41
+ 关注

哔哩哔哩8.25笔试——Java(游戏开发)

兄弟们什么情况?我看帖子说的怎么都不一样,
Java游戏开发
21道选择题(45)加两道编程(55)
编程:
  1. 求人围成的圈数(30)
  2. 求最少减速多少(25)
问题:
  1. 为啥有人说编程不能用IDE啊,我这边可以用啊
  2. 还有人说伪代码,是什么鬼
  3. 有简答题的兄弟投的什么岗位啊

AK代码:
  1. (被这个输入输出恶心到了。。。)
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    public class Main {
        static int[] dirs = {0,-1,0,1,0};
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            List<int[]> list = new ArrayList<>();
            while (sc.hasNextLine()){
                String s = sc.nextLine();
                if("".equals(s)) break;
                String[] split = s.split(",");
                int[] tem = new int[split.length];
                for (int i = 0; i < split.length; i++) {
                    tem[i] = Integer.valueOf(split[i]);
                }
                list.add(tem);
            }
            int m = list.size();
            int n = list.get(0).length;
            int[][] grid = new int[m][n];
            int ans = 0;
            for (int i = 0; i < m; i++) {
                grid[i] = list.get(i);
            }
            for (int i = 0; i < m; i++) {
                for (int j = 0; j < n; j++) {
                    if(grid[i][j] == 1){
                        back(i,j,m,n,grid);
                        ans++;
                    }
                }
            }
            System.out.println(ans);
    
        }
        static void back(int sx, int sy,int m, int n,int[][] grid){
            for (int i = 0; i < 4; i++) {
                int x = sx+dirs[i];
                int y = sy+dirs[i+1];
                if(x<0 || y<0 || x>=m || y>=n || grid[x][y]==0) continue;
                grid[x][y] = 0;
                back(x,y,m,n,grid);
            }
        }
    }
    

  2. import java.util.Scanner;
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int[][] grid = new int[n][n];
            for (int i = 0; i < n; i++) {
                String s = sc.next();
                String[] split = s.split(",");
                for (int j = 0; j < n; j++) {
                    grid[i][j] = Integer.valueOf(split[j]);
                }
            }
            int [][] dp = new int[n][n];
            dp[0][0] = grid[0][0];
            for (int i = 1; i < n; i++) {
                dp[0][i] = grid[0][i]+dp[0][i-1];
                dp[i][0] = grid[i][0]+dp[i-1][0];
            }
            for (int i = 1; i < n; i++) {
                for (int j = 1; j < n; j++) {
                    dp[i][j] = Math.min(dp[i][j-1],dp[i-1][j])+grid[i][j];
                }
            }
            System.out.println(dp[n-1][n-1]);
        }
    }
    


全部评论

(9) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐