Leetcode 351. Android Unlock Patterns
题目
解法:backtracking
这道题读懂题意挺关键。题目的意思是,从一个位置到另一个位置有两种情况,一种情况是到上下左右或者四个对角相邻的位置,另一种情况通过相邻且已经被访问过的位置到另一个不相邻的位置
主要思想就是铜鼓obacktracking来访问所有可能的解法。为啥是backtracking呢,因为对于解法的长度有一个范围,也就是当前一种解法成立的时候,继续扩展下去还有可能形成新的解法,至于具体的实现也需要很巧妙的设计。参考这个网址,里面有对解法的具体设计有很详细的解释:https://leetcode.com/problems/android-unlock-patterns/discuss/874714/Simple-Python-Solution-with-Explaination
class Solution:
def numberOfPatterns(self, m: int, n: int) -> int:
def backtracking(curr_key,step):
if step == 1:
return 1
count = 0
seen