
剑指offer
吾心0218
一位不断探索自己道路的求道者
展开
-
[剑指 Offer] 13. 机器人的运动范围
地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3来源:力扣(LeetC.原创 2020-06-28 15:34:59 · 149 阅读 · 0 评论 -
剑指 Offer 07 已知前序遍历和中序遍历的结果,请重建该二叉树 python
根据前序遍历的结果划分后序遍历结果为左右子树,递归实现。# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def buildTree(self, preorder: List[int], i原创 2020-06-26 14:56:34 · 184 阅读 · 0 评论 -
[剑指 Offer] 12. 矩阵中的路径 Golang
深度优先搜索,每次向上下左右四个方向搜索。func exist(board [][]byte, word string) bool { flag := make([][]byte,len(board)) for i:= range flag{ flag[i] = make([]byte,len(board[0])) } for i:= range board{ for j:= range board[0]{ if原创 2020-06-26 14:50:23 · 217 阅读 · 0 评论 -
[剑指 Offer] 38 字符串的排列
排列方案的生成方法: 根据字符串排列的特点,考虑深度优先搜索所有排列方案。即通过字符交换,先固定第 1位字符( n种情况)、再固定第2位字符( n−1 种情况)、... 、最后固定第 n位字符( 1种情况)。class Solution: def permutation(self, s: str) -> List[str]: s = [c for c in s] def backtrace(start): if start==...原创 2020-06-26 14:45:21 · 130 阅读 · 0 评论 -
剑指 Offer 32 从上到下打印二叉树
二叉树的层次遍历,借助一个队列,每次弹出队列的头节点,只要其子节点不为空,入队。# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def levelOrder(self, root: Tre原创 2020-06-26 14:40:37 · 172 阅读 · 0 评论