剑指offer_python解法
sty945
这个作者很懒,什么都没留下…
展开
-
剑指offer 40.最小的 K 个数 python代码
题目寻找数组中的最小的k个数,也叫topk问题。 牛客网测试地址 注意: 牛客网的提交需要将最终的结果排序思路快速排序的 partition() 方法,会返回一个整数 j 使得 a[l..j-1] 小于等于 a[j],且 a[j+1..h] 大于等于 a[j],此时 a[j] 就是数组的第 j 大元素。可以利用这个特性找出数组的第 K 个元素,这种找第 K 个元素的算法称为快...原创 2018-05-13 16:18:51 · 6407 阅读 · 4 评论 -
判断某数组是不是二叉树的后序遍历序列 python递归与非递归解法
python 递归class Solution: def VerifySquenceOfBST(self, sequence): # write code here if len(sequence) <= 0 or sequence == None: return False length = len(s...原创 2018-09-07 15:19:40 · 5647 阅读 · 0 评论 -
二叉树中和为某一值的路径
前言输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)python 非递归做法利用后序遍历的非递归思想class Solution: # 返回二维列表,内部每个列表表示找到的路径 def FindPath(sel...原创 2018-09-08 14:28:32 · 5346 阅读 · 0 评论 -
判断入栈顺序和出栈顺序是否合理 python实现
前言输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路1.我们申请一个的新的列表stack,依次将入栈序列中的值加入 2.每次...原创 2018-09-04 20:52:23 · 8070 阅读 · 0 评论 -
顺时针打印矩阵 python
前言题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路1.我们依次打印每一行 2.打印完了之后,我们需要删除第一行 3.然后我们需要把整个矩阵逆时针旋转一下,让...原创 2018-09-04 16:03:38 · 5615 阅读 · 0 评论 -
python实现二叉树的重建2 之由中序遍历和后序遍历重建
前言通过上一节对python实现二叉树的重建1 之由前序遍历和中序遍历重建,我相信我们再来做这个问题就不难了,完全可以照猫画虎的来实现,具体的原理几乎是一样的,直接上代码了code# 通用解法 def buildTree(self, inorder, postorder): """ :type inorder: List[int] :...原创 2018-08-26 15:27:51 · 5826 阅读 · 0 评论 -
python实现二叉树的重建1 之由前序遍历和中序遍历重建
前言此题是关于树的面试题目的常见题型,题目的含义很清晰,这个就不用多说了解法关于这道题的解法有很多不同的样式,通用的解法是这样的: 假如现在我们有如下两个遍历的情况preorder: [1, 2, 4, 5, 3, 6]inorder: [4, 2, 5, 1, 6, 3]那么我们建树的办法通常是1.用先序遍历的第一个元素也就是1,作为root2.然后在ino...原创 2018-08-26 14:54:35 · 6031 阅读 · 2 评论 -
剑指offer 矩阵中的路径 回溯
# coding:utf-8# !/usr/bin/env python# Time: 2018/6/11 9:09# Author: sty# File: Findpath.pynext_state = [[0, -1], [0, 1], [1, 0], [-1, 0]]class MatrixPath(): def has_path(self, array, r...原创 2018-06-11 10:16:43 · 5629 阅读 · 0 评论 -
python 通过双栈实现队列
开始做法# coding:utf-8# !/usr/bin/env python# Time: 2018/6/6 9:32# Author: sty# File: stack_queue.pyclass Solution(): def __init__(self): self.stack1 = [] self.stack2 = []...原创 2018-06-06 09:51:14 · 5638 阅读 · 0 评论 -
判断某数组是不是二叉树的前序遍历序列 python递归
codeclass Solution: def VerifySquenceOfBST(self, sequence): # write code here if len(sequence) <= 0 or sequence == None: return False length = len(sequence...原创 2018-09-07 15:33:03 · 5737 阅读 · 0 评论