![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程题
HawardScut
工作啦,有时比较忙没及时回复,望见谅。
展开
-
变态跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 分析:每个台阶都有跳与不跳的0,1选择,但是最后一个台阶必须跳,为1,所以总的次数是2n−12n−12^{n-1}。使用左移(1<<代表1左移一位,乘2)可以比较快算出。class Solution: def jumpFloorII(self, nu...原创 2018-07-08 09:45:40 · 149 阅读 · 0 评论 -
格雷编码
题目:格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。 输入: 2 输出: [0,1,3,2] 解释: 00 - 0 01 - 1 11 - 3 10 - 2对于给定的 n,其格雷编码序列并不唯一。 例如,[0,2,3,1] 也是一个有效的格雷编码序列。0...原创 2018-09-04 12:17:39 · 2076 阅读 · 0 评论 -
Z字形变换
题目: 将字符串 “PAYPALISHIRING” 以Z字形排列成给定的行数: P A H N A P L S I I G Y I R 之后从左往右,逐行读取字符:”PAHNAPLSIIGYIR” 思路: 通过从左向右迭代字符串,我们可以轻松地确定字符位于 Z 字形图案中的哪一行。 算法 我们可以使用 min(numRows,len(s))min(numRow...原创 2018-08-21 16:03:51 · 1226 阅读 · 0 评论 -
最长公共子串——动态规划
题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 示例: 输入: “babad” 输出: “bab” 注意: “aba”也是一个有效答案。思想:动态规划 步骤: 第一步:确定子问题。 在这一步重点是分析那些变量是随着问题规模的变小而变小的, 那些变量与问题的规模无关。 第二步:确定状态:根据上面找到的子问题来给你分割的子问题限定状态 ...原创 2018-08-19 23:45:25 · 233 阅读 · 0 评论 -
重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。class TreeNode: def __init__(self,x): self.val=x se...原创 2018-07-06 21:47:33 · 124 阅读 · 0 评论 -
二叉搜索树与双向链表
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思想:先进行中序遍历,把每个节点保存在list中,然后对list中元素进行连接.# -*- coding:utf-8 -*-class TreeNode: def __init__(self, x): self.val = x ...原创 2018-07-11 16:30:30 · 170 阅读 · 0 评论 -
中序遍历
# -*- coding:utf-8 -*-class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def midTraver(self, root,listNode): ...原创 2018-07-11 16:11:32 · 1316 阅读 · 0 评论 -
带记忆的DFS
题目描述 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 思想: 把引用作为函数参数,保存记忆信息。结合递归的思想,number-root.val 即为下一个节点判断的数字和,终止条件是叶子节点。# -*- coding:utf-8 ...原创 2018-07-11 14:31:34 · 947 阅读 · 1 评论 -
BFS
根据访问节点的顺序,可分为广度优先搜索(BFS)和深度优先搜索(DFS)。广度优先搜索(BFS)广度优先搜索在进一步遍历图中顶点之前,先访问当前顶点的所有邻接结点。 a .首先选择一个顶点作为起始结点,并将其染成灰色,其余结点为白色。 b. 将起始结点放入队列中。 c. 从队列首部选出一个顶点,并找出所有与之邻接的结点,将找到的邻接结点放入队列尾部,将已访问过结点涂成黑色,没访问...原创 2018-07-11 13:54:41 · 1839 阅读 · 0 评论 -
斐波那契数列
题目:要求输入一个整数n,请你输出斐波那契数列的第n项。 fn=fn−1+fn−2fn=fn−1+fn−2f_n=f_{n-1}+f_{n-2}f0=0f0=0f_0=0f1=1f1=1f_1=1class Solution: def Fibonacci(self, n): s0=0 s1=1 ...原创 2018-07-08 10:19:33 · 137 阅读 · 0 评论