博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Unlock Patterns
阅读量:7000 次
发布时间:2019-06-27

本文共 1381 字,大约阅读时间需要 4 分钟。

public class Solution {    private boolean[][] visited = new boolean[3][3];    private int m;    private int n;    public int numberOfPatterns(int m, int n) {        if (n == 0 || m > n) {            return 0;        }        int result = 0;        this.m = m;        this.n = n;        for (int i = 0; i < 3; i++) {            for (int j = 0; j < 3; j++) {                visited[i][j] = true;                result += getPattern(i, j, 1);                visited[i][j] = false;            }        }        return result;    }            private int getPattern(int x, int y, int level) {        if (level > n) {            return 0;        }                int result = level >= m ? 1 : 0;        for (int i = 0; i < 3; i++) {            for (int j = 0; j < 3; j++) {                if (visited[i][j] ||                x == i && Math.abs(y - j) == 2 && !visited[i][1] ||                y == j && Math.abs(x - i) == 2 && !visited[1][j] ||                Math.abs(x - i) == 2 && Math.abs(y - j) == 2 && !visited[1][1]) {                    continue;                }                visited[i][j] = true;                result += getPattern(i, j, level + 1);                visited[i][j] = false;            }        }        return result;    }}

 

 

1. 3x3 pattern board. Do not mess it up.

2. pattern counting start from 1, not 0

转载于:https://www.cnblogs.com/shuashuashua/p/5619059.html

你可能感兴趣的文章
5.7.17 GR(group replication)
查看>>
HTTP API压力测试
查看>>
常用正则表达式收藏
查看>>
MVC 5限制所有HTTP请求必须是POST方式 - Sweet-Tang - 博客园
查看>>
机械硬盘提示参数错误文件怎么找回
查看>>
JavaScript学习笔记
查看>>
JAVA常用类
查看>>
Java SE 7新特性:创建泛型实例时自动类型推断
查看>>
面试问题之:JSON是什么?
查看>>
创建plist
查看>>
性能测试的几种类型
查看>>
【译】LogicMonitor 使用 Terraform, Packer & Consul为灾难恢复
查看>>
重庆工业赋能创新中心项目签约并正式揭牌
查看>>
如何正确处理 InterruptedException
查看>>
Python入门学习指南--内附学习框架
查看>>
程序员必备系列:开发工具的安装和使用
查看>>
G7在实时计算的探索与实践
查看>>
怎么在电脑上进行屏幕录像?电脑录屏的方法
查看>>
手机照片误删怎么恢复?别说,这招还真管用
查看>>
数领科技|solidworks教程:solidworks快捷键汇总
查看>>