自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 二叉搜索树的第k个结点

题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。二叉搜索树:中序遍历就相当于从小到大排列二叉查找树(英语:Binary Search Tree),也称二叉搜索树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:sorted binary tree),是指一棵空树或...

2019-03-21 18:23:25 106

原创 把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。思路:层次遍历,利用列表进行辅助# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.righ...

2019-03-21 17:43:05 87

原创 对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:1.首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同2.左子树的右子树和右子树的左子树相同即可,采用递归3.非递归也可,采用栈或队列存取各级子树根节点递归:# -*- coding:utf-8 -*-# class TreeNode...

2019-03-20 23:54:22 80

原创 二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:分析二叉树的下一个节点,一共有以下情况:1.二叉树为空,则返回空;2.节点右孩子存在,则设置一个指针从该节点的右孩子出发,一直沿着指向左子结点的指针找到的叶子节点即为下一个节点;3.节点不是根节点。如果该节点是其父节点的左孩子,...

2019-03-20 23:22:48 94

原创 平衡二叉树

题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。思路:使用获取二叉树深度的方法来获取左右子树的深度 左右深度相减,若大于1返回False 通过递归对每个节点进行判断,若全部均未返回False,则返回True代码:# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# ...

2019-03-11 10:55:55 78

原创 二叉树的深度

题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路:第一是我们可以通过借助一个队列进行层次遍历# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# ...

2019-03-11 10:20:08 101

原创 Python笔试题

黑色加粗的是笔试题1.什么是GIL2.Python中的@staticmethod和@classmethod的区别 (**)3.Python里面如何拷贝一个对象,并解析深浅拷贝4.Python里面的search()和match()的区别5.简述迭代器生成器以及他们之间的区别6.什么是协程,Python中的协程是如何实现的7.什么是装饰器,请使用装饰器实现singletio...

2019-03-10 22:00:32 457

原创 Python中找出数组中第二大的数

已知numpy函数库中max和argmax函数可以得出一个数组中最大的成员以及所在位置:import numpy as np arr = [2, 3, 4, 1, 7, 6, 5]print("# arr中最大的数为{},位于第{}位".format(np.max(arr), np.argmax(arr)+1))那么如何得到一个数组中第二大的成员呢?我的思想是:将原数组中最大...

2019-03-10 13:37:08 14597 2

原创 丑数

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。方法一:简单粗暴,分解每一个数,看他的因数是不是只有2,3,5。import mathclass Solution: def GetUglyNumber_Solution(self, i...

2019-03-04 17:57:03 374

原创 字符串的排列(全排列)

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。#使用itertools中的permutations,可以实现全排列from itertools import ...

2019-03-03 15:44:52 415

原创 二叉搜索树的后序遍历序列

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路 :BST的后序序列的合法序列是,对于一个序列S,最后一个元素是x (也就是根),如果去掉最后一个元素的序列为T,那么T满足:T可以分成两段,前一段(左子树)小于x,后一段(右子树)大于x,且这两段(子树)都是合法的后序序列。完美的递归定义...

2019-03-03 10:25:38 125

原创 从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:这是一个二叉树的层次遍历,这时我们需要用一个队列来实现注意:这里我们需要注意的是root为None的情况# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# se...

2019-03-03 10:04:02 181

原创 包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路:当我们看到这道题要求时间复杂度为O(1),所以求最小值,肯定不能用遍历的方法进行。这时我们应该想到用一个位置存这个最小值,我在这利用了一个辅助栈来实现,辅助栈的栈顶元素一直是存储的最小值。 当push时,我们通过判断这个数值跟辅助栈的栈顶元素大小进行比较,如果这个数值比...

2019-03-03 08:59:30 117

原创 栈的压入、弹出序列

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:这是我们需要利用一个辅助栈,首先我们一次的将这些数据添加到辅助栈中,每次都判断一次...

2019-03-02 12:07:00 80

原创 顺时针打印矩阵

思路:刚开始看着道题没想到什么好的方法,就想到暴力,但是暴力好麻烦,然后参考了一下别人的思路,恍然大悟。首先1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16这些数字是排列成一个矩阵形式。1 2 3 45 6 7 89 10 11 1213 14 15 16我的方法是每次都取第一行。当取完...

2019-03-02 10:47:03 98

原创 二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...

2019-03-02 10:22:25 88

原创 树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:1. 首先我们先判断一下树的根值是否相等2. 如果相等时我们可以写一个可以判断该根左右孩子结点是否相等的递归函数。这个函数主要是判断B数是否是A数的子结构3. 如果不相等的话,找大树的左右孩子结点当根结点,递归到步骤1# -*- coding:utf-8 -*-# cla...

2019-03-02 09:10:37 82

原创 合并两个排序的链表

思路:比较两个链表的首结点,哪个小的的结点则合并到第三个链表尾结点,并向前移动一个结点。 步骤一结果会有一个链表先遍历结束,或者没有 第三个链表尾结点指向剩余未遍历结束的链表 返回第三个链表首结点 # -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x#...

2019-03-02 00:05:27 113

最短路径问题

求最短路的问题

2017-07-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除