201512-2 消除类游戏 Java

Posted 鱼の家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了201512-2 消除类游戏 Java相关的知识,希望对你有一定的参考价值。

思路:
用二维数组,对于每一个棋子,向右看三个,向下看三个,如果相等则置为负数,最后遍历输出。

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n,m;
		n=sc.nextInt();
		m=sc.nextInt();
		int[][] a=new int[n][m];
		for(int i=0;i<n;i++)
			for(int j=0;j<m;j++)
				a[i][j]=sc.nextInt();
		//行标记
		for(int i=0;i<n;i++)
			for(int j=0;j<m-2;j++)
				if(Math.abs(a[i][j])==Math.abs(a[i][j+1])&&Math.abs(a[i][j+1])==Math.abs(a[i][j+2])) {
					if(a[i][j]>0)   a[i][j]*=-1;//相当于一个标记,所以在上面判断的时候才用绝对值
					if(a[i][j+1]>0) a[i][j+1]*=-1;
					if(a[i][j+2]>0) a[i][j+2]*=-1;
				}
		//列标记
		for(int j=0;j<m;j++)
			for(int i=0;i<n-2;i++)
				if(Math.abs(a[i][j])==Math.abs(a[i+1][j])&&Math.abs(a[i+1][j])==Math.abs(a[i+2][j])) {
					if(a[i][j]>0)   a[i][j]*=-1;
					if(a[i+1][j]>0) a[i+1][j]*=-1;
					if(a[i+2][j]>0) a[i+2][j]*=-1;
				}
		//输出
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				if(j!=0)
					System.out.print(" ");
				if(a[i][j]<0)
					System.out.print(0);
				else
					System.out.print(a[i][j]);
			}
			System.out.println();
		}
		sc.close();

	}

}

以上是关于201512-2 消除类游戏 Java的主要内容,如果未能解决你的问题,请参考以下文章

CCF - 201512-2 - 消除类游戏

CCF CSP 201512-2 消除类游戏

201512-2消除类游戏 (水题,暴力)

[CCF CSP]201512-2 消除类游戏

CCF_ 201512-2_消除类游戏

LeetCode - 390 -消除游戏 - Java - 细喔