8皇后问题——回溯法、递归解决
摘要:最近工作上不太顺,虽然做大数据,但是部门拉胯,现在已经成为了CRUD工程师,唉。 开始重温Java了,学习韩顺平老大的Java培训课,总不能就这样拉跨下去吧。 看到了8皇后问题,这个很经典的问题。 八皇后问题是一个古老而又著名的问题,是学习回溯算法的一个经典案例。之前应该练习过,今天我们就一起来探究
阅读全文
posted @
2021-07-01 11:12
桌子哥
阅读(137)
推荐(0) 编辑
Leetcode练习(Python):递归类:面试题16. 数值的整数次方:实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。
摘要:题目: 数值的整数次方:实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 思路: 递归,二分法 程序: class Solution: def myPow(self, x: float,
阅读全文
posted @
2020-04-27 14:23
桌子哥
阅读(388)
推荐(0) 编辑
Leetcode练习(Python):递归类:面试题10- II. 青蛙跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
摘要:题目: 青蛙跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 思路: 和斐波那契数列思路类似。 程序: import functool
阅读全文
posted @
2020-04-27 10:24
桌子哥
阅读(1592)
推荐(0) 编辑
Leetcode练习(Python):递归类:面试题10- I. 斐波那契数列:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0,   F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
摘要:题目: 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 思路: 递归,别忘了取模啊。 程序: import functools cla
阅读全文
posted @
2020-04-27 10:09
桌子哥
阅读(3072)
推荐(0) 编辑
Leetcode练习(Python):递归类:面试题07. 重建二叉树:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
摘要:题目: 重建二叉树:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 思路: 简单 程序: # Definition for a binary tree node.# class TreeNode:# def __init__(self,
阅读全文
posted @
2020-04-27 09:57
桌子哥
阅读(282)
推荐(0) 编辑
Leetcode练习(Python):递归类:面试题 16.11. 跳水板:你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。 返回的长度需要从小到大排列。
摘要:题目: 你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。 返回的长度需要从小到大排列。 提示: 0 < shorter <= longer 0 <= k <= 1
阅读全文
posted @
2020-04-26 20:31
桌子哥
阅读(566)
推荐(0) 编辑
Leetcode练习(Python):递归类:面试题 08.06. 汉诺塔问题:在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。
摘要:题目: 在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:(1) 每次只能移动一个盘子;(2) 盘子只能从柱子顶端滑出移到下一根柱子;(3) 盘子
阅读全文
posted @
2020-04-26 10:16
桌子哥
阅读(870)
推荐(0) 编辑
Leetcode练习(Python):递归类:面试题 08.05. 递归乘法:递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。
摘要:题目: 递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。 思路: 递归,思路简单。 程序: class Solution: def multiply(self, A: int, B: int) -> int: A, B = max(A,
阅读全文
posted @
2020-04-26 09:51
桌子哥
阅读(828)
推荐(0) 编辑