每日算法之方格填数

Posted lenkong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日算法之方格填数相关的知识,希望对你有一定的参考价值。

如下的10个格子

参看下图
技术分享图片
填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻)

一共有多少种可能的填数方案?

请填写表示方案数目的整数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

个人认为也是属于解法类型的,还是需要借助前面的题目,只是验证方法不一样而已

 1 package Square_Fill;
 2 
 3 public class Main{
 4     static  int count =0;
 5 
 6     public  static  void main(String  args[]){
 7         char []str = "0123456789".toCharArray();
 8         paixu(str,0,9);
 9         System.out.println(count);
10     }
11     public  static  void swap(char[] str,int a, int b){
12         char temp ;
13         temp = str[a];
14         str[a] = str[b];
15         str[b]  = temp;
16     }
17     public  static boolean check(char[] str){
18         if(check2(str[0],str[1])&&check2(str[0],str[3])&&check2(str[0],str[4])&&check2(str[0],str[5])&&check2(str[1],str[2])&&
19                 check2(str[1],str[4])&&check2(str[1],str[5])&&check2(str[1],str[6])&&check2(str[2],str[5])&& check2(str[2],str[6])&&
20                 check2(str[3],str[4])&&check2(str[3],str[7])&&check2(str[3],str[8])&&check2(str[4],str[5])&& check2(str[4],str[7])&&
21                 check2(str[4],str[8])&&check2(str[4],str[9])&&check2(str[5],str[6])&&check2(str[5],str[9])&& check2(str[5],str[8])&&
22                 check2(str[6],str[9])&&check2(str[7],str[8])&&check2(str[8],str[9]))
23         {
24             return true;
25         }
26         else  return false;
27 
28     }
29     public  static  boolean check2(char a,char b){
30         if(a==(b+1)||a==(b-1)){
31             return  false;
32         }
33         return  true;
34     }
35     public  static  void paixu(char[] str,int a,int length){
36         if(a==length){
37             if(check(str)){
38                 count++;
39                 System.out.println(String.valueOf(str));
40             }
41         }else
42         {
43             for(int i=a;i<=length;++i){
44                 swap(str,i,a);
45                 paixu(str,a+1,length);
46                 swap(str,i,a);
47             }
48         }
49     }
50 }

 










以上是关于每日算法之方格填数的主要内容,如果未能解决你的问题,请参考以下文章

方格填数

方格填数

蓝桥杯 方格填数 回溯法

2016_Bt6方格填数

2016_Bt6方格填数

方格填数