class Solution {
public:
void gameOfLife(vector<vector<int>>& board) {
queue<int> temp_state;
int row = board.size();
int i,j;
if(row < ) return;
int col = board[].size();
if(col <) return;
for(i=;i<row;i++)
for(j=;j<col;j++){
int state_i_j = next_state(board,i,j);
temp_state.push(state_i_j);
if((j == col-)) { //每行最后一个元素 更新
if((i>=)){ //如果不是第一行,更新前一行
for(int z=;z<col;z++){
board[i-][z] = temp_state.front();
temp_state.pop();
}
}
if((i==row-)){ //如果是最后一行,更新当前行
for(int z=;z<col;z++){
board[i][z] = temp_state.front();
temp_state.pop();
}
}
}
}
} int next_state(vector<vector<int>>& board,int i,int j){
int sum = ; int row = board.size();
int col = board[].size(); if(board[i][j] == ){
if(i- >=){
if(j->= && board[i-][j-] == ) sum++;
if(board[i-][j] == ) sum++;
if(j+<col && board[i-][j+] == ) sum++;
}
if(i+ < row){
if(j->= && board[i+][j-] == ) sum++;
if(board[i+][j] == ) sum++;
if(j+<col && board[i+][j+] == ) sum++;
}
if(j->= && board[i][j-] == ) sum++;
if(j+< col && board[i][j+] == ) sum++;
if(sum== || sum ==) return ;
return ;
} if(board[i][j] == ){
if(i- >=){
if(j->= && board[i-][j-] == ) sum++;
if(board[i-][j] == ) sum++;
if(j+<col && board[i-][j+] == ) sum++;
}
if(i+ < row){
if(j->= && board[i+][j-] == ) sum++;
if(board[i+][j] == ) sum++;
if(j+<col && board[i+][j+] == ) sum++;
}
if(j->= && board[i][j-] == ) sum++;
if(j+< col && board[i][j+] == ) sum++;
if(sum ==) return ;
return ;
} }
};

随机推荐

  1. Linux就这个范儿 第19章 团结就是力量 LSB是Linux标准化基地(Linux Standards Base)的简称

    Linux就这个范儿 第19章 团结就是力量  LSB是Linux标准化基地(Linux Standards Base)的简称 这个图片好可爱,它是LSB组织的图标.你肯定会问:“图标这么设计一定有说 ...

  2. 离线下载Windows 调试符号 Symbols

    公司开发机没有不能连接到互联网.调试程序时那些Windows模块(如ntdll.dll)不能加载符号,而程序总是崩在这些模块里.想看一眼到底崩在了什么地方. 需要把对应的符号下载下来. 使用工具sym ...

  3. j2ee ehcache

    Ehcache is an open source, standards-based cache that boosts performance, offloads your database, an ...

  4. IOS推荐学习网站

    1> 个人博客:技术大牛 唐巧:http://blog.devtang.com/blog/archives/ 王巍:http://www.onevcat.com 破船之家:http://beyo ...

  5. G面经prepare: Reorder String to make duplicates not consecutive

    字符串重新排列,让里面不能有相同字母在一起.比如aaabbb非法的,要让它变成ababab.给一种即可 Greedy: 跟FB面经Prepare task Schedule II很像,记录每个char ...

  6. hunnu 修路

    ing········ 这题我一眼就想到二分修路的长度 可是还有一个问题,有个费用,如果没有的话就所有的边都连起来判断能否二分到最小可行的 可是,有费用... 怎么做呢... ... 有了费用后,就不 ...

  7. JQuery权限管理

    <title></title> <script src="JS/jquery-1.7.1.js"></script> <scr ...

  8. Spring day01

    1 实例化Spring容器 新建springday01项目1.F盘jar/Spring/first/五个jar包拷贝到lib下,复制xml文件到项目first包下2.First.java测试如何启动容 ...

  9. CDC

    CDC中最重要的问题是metastability问题. 加入Synchronizer来进行异步时钟的同步,两级的Sync,第二级仍然会出现亚稳态的概率由MTBF决定. MTBF:mean time b ...

  10. AHB中split机制简介

    完整的AHB协议:1)可以多个master,并且需要外加一个Arbiter,和write multiplexor.为了保证每一时刻只有一个master拥有访问权. 2)为了增强pipeline的能力, ...