day20(11.21)——leetcode面试经典150

289. 生命游戏

289. 生命游戏

题目:

题解:

java 复制代码
class Solution {
    public void gameOfLife(int[][] board) {
        // 计算长和宽
        int x_len = board.length;
        int y_len = board[0].length;
        //标记要变化的位置
        boolean[][] flag=new boolean[x_len][y_len]; 
        for(int i=0;i<x_len;i++) {
            for(int j=0;j<y_len;j++) {
                //周围活细胞的数量
                int sum=0;
                for(int x=-1;x<=1;x++) {
                    for(int y=-1;y<=1;y++) {
                        if(x==0&&y==0) {
                            continue;
                        }
                        int xx=i+x;
                        int yy=j+y;
                        //如果没有超出边界,那么进行统计当前活细胞的数量
                        if(xx<x_len&&yy<y_len&&xx>=0&&yy>=0) {
                            sum+=board[xx][yy];
                        }
                    }
                }
                if(board[i][j]==1) {
                    if(sum<2) {
                        flag[i][j]=true;
                    }
                    else if(sum>3) {
                        flag[i][j]=true;
                    }
                }
                else {
                    if(sum==3) {
                        flag[i][j]=true;;
                    }
                }
            }
        }
        for(int i=0;i<x_len;i++) {
            for(int j=0;j<y_len;j++) {
                if(flag[i][j]==true) {
                    board[i][j]=1-board[i][j];
                }
            }
        }
    }
}
相关推荐
ZK_H1 天前
嵌入式c语言——关键字其6
c语言·开发语言·计算机网络·面试·职场和发展
fei_sun1 天前
面经、笔试(持续更新中)
fpga开发·面试
Yuk丶1 天前
UE4客户端开发技术问题汇总
面试·ue4·图形学·ue4客户端开发
yuki_uix1 天前
重排、重绘与合成——浏览器渲染性能的底层逻辑
前端·javascript·面试
何陋轩1 天前
OpenAI Codex深度解析:终端里的AI代码特工,一个指令重构整个项目
人工智能·面试
yuki_uix1 天前
虚拟 DOM 与 Diff 算法——React 性能优化的底层逻辑
前端·react.js·面试
yuki_uix1 天前
从输入 URL 到页面显示——浏览器工作原理全解析
前端·面试
im_AMBER1 天前
手撕发布订阅与观察者模式:从原理到实践
前端·javascript·面试
yuki_uix1 天前
遇到前端题目,我现在会先问自己这四个问题
前端·面试
Wect1 天前
JS 手撕:对象创建、继承全解析
前端·javascript·面试