自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(243)
  • 收藏
  • 关注

原创 常见排序算法

1.冒泡排序def bubble_sort(alist): """冒泡排序""" n = len(alist) for j in range(0,n-1): # 走多少次 count = 0 # 交换次数计数 for i in range(0, n-1-j): ...

2019-09-16 22:39:39 468

原创 (剑指offer)55.二叉树的深度

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def ...

2019-09-15 17:31:09 332

原创 (剑指offer)34.二叉树中和为某一值的路径

输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)class TreeNode: def __init__(self, x): self.val = x self.left = None s...

2019-09-15 16:36:11 327

原创 (剑指offer)33.二叉搜索树的后序遍历

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:递归。最后一个数字是树的根节点,第一部分是左子树节点的值,都比根节点小。第二部分是右子树节点的值,都比根节点大。class Solution: def VerifySquenceOfBST(self, sequence): ...

2019-09-14 22:08:26 185

原创 (剑指offer)28.对称二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:1.针对前序遍历定义一种对称的遍历算法,即:根-右孩子-左孩子如果对称遍历和前序遍历相同则是对称子树。2.特殊情况,节点值全部相同。(考虑保存叶子节点None指针即可)class TreeNode: def __init__(self, x): ...

2019-09-14 19:48:04 210

原创 (剑指offer)27.二叉树的镜像

思路:先前序遍历这颗树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶节点的左右节点之后就得到了树的镜像。class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution:...

2019-09-14 17:27:16 140

原创 (剑指offer)26.树的子结构

输入两棵树A和B,判断B是不是A的子结构。思路:这道题我理解错了,其实B只有一个节点,这个节点也是A的子结构。1.树A中查找与根节点的值一样的节点。(先比较根AB,在比较根A的左孩子与根B,最后比较根A的右孩子和根B)2.树A中根节点的子树和树B是否具有相同的结构。class TreeNode: def __init__(self, x): self.val = ...

2019-09-14 13:52:18 175

原创 (剑指offer)52.两个链表的第一个公共节点

输入两个链表,找出它们的第一个公共结点。思路:1.先遍历两个链表,计算出长度2.让长度较长的先走 先走步数=长度差3.然后再两个链表一起走,值相同的第一个就是两个链表第一个公共节点时间复杂度:o(m+n)空间复杂度:比实现两个栈的思想低。class ListNode: def __init__(self, x): self.val = x s...

2019-09-13 18:38:01 133

原创 (剑指offer)25.合并两个有序链表

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:依次比较进行递归class ListNode: def __init__(self,x): self.val = x self.next = Noneclass Solution: def Merge(self,pHead1,pHead2): ...

2019-09-13 17:27:49 161

原创 (剑指offer)35.复杂链表的复制

输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)思路:1.先复制链表节点的值放在原来的节点后面,组成一个新的链表2.处理复杂指针:安排复制节点的复杂指针指向 原始节点复杂指针指向的下一个3.拆分这个链表,偶数节点为原链表,...

2019-09-13 17:25:44 145

原创 (剑指offer)24.反转链表

输入一个链表,反转链表后,输出新链表的表头。思路:1.设置两个指针,分别指向当前结点的前preNode后nextNode2.将当前结点的next指向前一个结点preNode。3.将当前结点和nextNode都向前移一个(preNode,pHead = pHead,nextNode)class solition: def ReverList(self,pHead): ...

2019-09-12 19:58:04 151

原创 (剑指offer)23.链表中环的入口节点

给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出None。思路:1.找相遇点:设置一个快指针pFast一个慢指针pSlow,先找到一个相遇点,一定在环中2.计算环的长度: 从相遇点出发,到相遇点结束-1,即为环的长度。3.pFast:从pHead+环的长度出发;pSlow从pHead出发,当pFast=pSlow时,即为入口节点。class ListNode: d...

2019-09-12 19:53:28 145

原创 (小米)手撕数据库

面试小米测开的时候,面试官出了一道数据库的题,当时不是很理解。题目是这样:1.给你一个学生表 里面有姓名 科目 成绩,怎么查找课程成绩最高的学生(那么我就把我二面的时候的数据表拿来研究了。)use aa;create table student_num(name varchar(20),kecheng varchar(20),fenshu int(20));insert in...

2019-09-06 12:00:15 451

原创 (手撕代码)腾讯测开

一个数组存储了一堆逗号分隔的数字,需要他找出两两相加之和等于100的所有组合并打印,每个数字只能用一次。例如:输入:[1,99,1,1,99,2,98,50,23,43] 输出:1 99 1 99 2 98这道题我没有搜到答案,自己用了迭代的思想,复杂度很高,欢迎指点。def word(li,low,high): for j in range(low,high+1): ...

2019-08-31 18:21:05 422

原创 (手撕代码)360python开发

最长公共连续子串牛牛有两个字符串(可能包含空格),牛牛想找出其中最长的公共连续子串,希望你能帮助他,并输出其长度。输入描述输入为两行字符串(可能包含空格),长度均小于等于50.输出描述输出为一个整数,表示最长公共连续子串的长度。示例1输入abcdeabgde输出2手撕的时候,还不理解动态规划,面试官毙了我。后来下面又想了一下这道题,值等于斜线前一个值加一,并存在maxnu...

2019-08-31 18:17:02 300

原创 flask_todolist项目脑图整理

2019-08-28 11:22:32 305

原创 (剑指offer)面试题22:链表中倒数第k个节点

输入一个链表,输出该链表中倒数第k个结点。这道题的思路很好如果在只希望一次遍历的情况下, 寻找倒数第k个结点, 可以设置两个指针第一个指针先往前走k-1步, 然后从第k步开始第二个指针指向头结点然后两个指针一起遍历当地一个指针指向尾节点的时候, 第二个指针正好指向倒数第k个结点推广: 寻找中间节点, 两个指针一起, 第一个指针每次走两步, 第二个指针每次走一步, 快指针指到尾部, 慢...

2019-08-18 16:30:41 196

原创 (剑指offer)面试题18:删除链表的节点

给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点# 如果不是尾结点:o(1),把下一个节点的内容复制到需要删除的节点上覆盖原有内容,再把下一个节点删除# 如果删除的是尾结点,需要全部遍历:o(n)复杂度,利用前一节点删除# 平均复杂度仍然为o(1)# 链表只有一个节点,那么删除结点后还需要把头结点设为Noneclass ListNode: def __in...

2019-08-18 13:39:41 199

原创 复杂度相关笔记

一、时间复杂度(1)时间频度一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。(2)时间复杂度在刚才提到...

2019-07-23 22:16:56 137

原创 (剑指offer)面试题11:旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。class Solution: def minNumberInRotateArray(self, rotateAr...

2019-07-20 15:45:50 180

原创 (剑指offer)面试题10:斐波那契数列

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。变形:青蛙跳台,一只青蛙可以一次跳1个台阶,也可以一次跳2个台阶。求该青蛙跳上n级台阶总共多少种跳法class Solution: def Fibonacci(self,n): tempArray=[0,1] # 初始值0,1 if n>=2: f...

2019-07-20 13:56:02 181

原创 (剑指offer)面试题9:用两个栈实现队列

栈后进先出,队列先进先出。1.当stack2不为空时,stack2中的栈顶元素是最先进入队列的元素,可以弹出。2.当stack2为空时,把stack1中的元素逐个弹入并压入stack2中,先入stack1的元素这时在stack2顶部,这时弹出stack2就完成了队列class Solution: def __init__(self): self.stack1=[] ...

2019-07-20 12:01:40 131

原创 (剑指offer)面试题8:二叉树的下一个节点

结合图,我们可发现分成两大类:1、有右子树的,那么下个结点就是右子树最左边的点;(eg:D,B,E,A,C,G)2、没有右子树的,也可以分成两类:a)是父节点左孩子(eg:N,I,L) ,那么父节点就是下一个节点 ;b)是父节点的右孩子(eg:H,J,K,M)找他的父节点的父节点的父节点…直到当前结点是其父节点的左孩子位置。如果没有eg:M,那么他就是尾节点(M一直找到A发现是根节点,没...

2019-07-19 22:32:27 132

原创 (剑指offer)面试题7:重建二叉树

这个题主要利用递归求解。利用二叉树前序遍历和中序遍历的特性。前序遍历的第一个值一定为根节点,对应于中序遍历中间的一个点。在中序遍历序列中,这个点左侧的均为根的左子树,这个点右侧的均为根的右子树。这时可以利用递归,分别取前序遍历[1:i+1]和中序遍历的[:i]对应与左子树继续上一个过程,取前序遍历[i+1:]和中序遍历[i+1]对应于右子树继续上一个过程,最终得以重建二叉树。"""输入某二叉树...

2019-07-19 22:01:19 129

原创 (剑指offer)面试题6:从尾到头打印链表

栈的思维:先进后出# 单向链表的节点class ListNode: def __init__(self,x=None): self.val = x self.next = None# 答案class Solution: def PrintListTailToHead(self,listnode): #牛客网的编辑器,把判断为空列表去掉...

2019-07-19 18:43:06 119

原创 c++入门笔记(1)

我是win下vs2013编程,之前一直下了vs没有用。今天拿来学习下c++跟着这位b站up主学的,作个笔记。文章目录1.c++介绍1.新建项目2.标准库、注释、条件编译3.c++标准输入输出-名字空间1.#include c++标准输入输出流头文件2.#include文件输入输出流4.引用变量、引用形参1.引用变量&2.形参3.传递指针4.引用形参5.函数的默认形参、函数重载1.默...

2019-07-19 10:29:06 241

原创 mysql复习:查询语句详解

文章目录1.基本查询语句2.查询表中部分字段3.查询表中所有字段4.查询经过计算的值5.查询表中若干记录1.清楚取值重复的行2.查询表中满足条件的记录(1)比较大小(2)确定范围(3)带in关键字查询(4)带Like的字符匹配查询(5)查询空值(6)多重条件查询6.对查询结果进行排序order by7.统计函数和分组记录结果1.coung()统计行数2.avg()统计某列平均值3.sum()统计某...

2019-07-18 15:46:41 381

原创 mysql复习:数据类型和运算符

文章目录1.数据类型(简要)2.常见运算符1算术运算符2比较运算符1.=2.<=>安全等于3.between and4.least(value 1,value 2,...)5.greatest(value1,value2,...)6.in、 not in7.like8.regexp 正则表达式3.逻辑运算符1.not 或 !2.and或者&&3.or或者||4.xor ...

2019-07-16 23:03:39 163

原创 mysql复习:数据表的基本操作

最近面试纷纷扰扰觉得自己数据库太差了,重新复习一遍文章目录1.创建表(简单略过)2.主键(之前没有好好学 ,这里仔细学习)1.创建表(简单略过)create database aa;use aa;create table tb_employee1(id int(11),name varchar(25),deptld INT(11),salary float);show ta...

2019-07-16 17:06:25 290

原创 (python数据结构3)二叉树、二叉树的遍历

二叉树二叉树的基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的性质(特性)性质1: 在二叉树的第i层上至多有2^(i-1)个结点(i>0)性质2: 深度为k的二叉树至多有2^k - 1个结点(k>0)性质3: 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为...

2019-07-07 22:23:15 186

原创 (python数据结构2)单链表与单向循环链表

1.单链表"""单链表的时间复杂度不会变,分散的空间可以利用,但是占用空间大顺序表的空间必须是连续的"""class Node(object): def __init__(self,elem): self.elem = elem self.next = Noneclass SingleLinkList(object): def __...

2019-06-26 13:26:58 335

原创 (python数据结构1)理解时间复杂度

文章目录算法的概念算法的五大特性时间复杂度与“大O记法”最坏时间复杂度时间复杂度的几条基本计算规则Python内置类型性能分析数据结构概念算法与数据结构的区别抽象数据类型(Abstract Data Type)最常用的数据运算有五种:看的b站视频https://www.bilibili.com/video/av20982396/?p=1算法的概念算法是计算机处理信息的本质,因为计算机程序本质...

2019-06-10 21:57:51 1922

原创 (剑指offer)面试题5:替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。这道题出的应该不是replace…class Solution: # s 源字符串运行时间:33ms # # 占用内存:5752k def replaceSpace(self, s): ...

2019-06-06 17:14:48 145

原创 (剑指offer)面试题4:二维数组中的查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。ass Solution: def Find(self,array,target): # 判断数组是否为空,注意牛客网没有判断非法输入也可以通过 if array==...

2019-06-06 16:27:47 209

原创 (剑指offer)面试题3:数组中重复的数字

找出数组中重复的数字在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。import collectionsclass Solution: def dulicate(sel...

2019-06-06 16:25:57 162

转载 时间复杂度与空间复杂度

一 . 简介复杂度是衡量算法好坏的一个刻度尺快/慢就是时间复杂度使用空间(内存)就是空间复杂度二 . 时间复杂度我们知道, CPU每秒运行的指令数是恒定的, 衡量算法快慢的标准就是算法运行的基本指令个数, 运行指令个数f(n)和数据规模n有关现在来了解一下大O渐进法, 这个方法就是极限的方法, 在大O符号表示法中, 时间复杂度的公式是 : T(n) = O(f(n)), 来看一个例子...

2019-06-06 14:40:53 215

原创 (机器学习)-knn分类器的两个实例

文章目录1 KNN电影的分类K-Nearest Neighbor2.约会app的改进1 KNN电影的分类K-Nearest Neighbor根据打斗镜头和接吻镜头来给电影分出到底是动作片还是爱情片存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入本有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较...

2019-04-28 16:40:39 975

原创 (机器学习)线性回归-2

文章目录0三种梯度下降的方法1归一化特征缩放2学习率3多项式回归4保险数据去处理保险金的问题5解析解0三种梯度下降的方法“Batch” Gradient Descent 批梯度下降批梯度下降:指的是每下降一步,使用所有的训练集来计算梯度值“Stochastic” Gradient Descent 随机梯度下降随机梯度下降:指的是每下降一步,使用一条训练集来计算梯度值“Mini-Batc...

2019-04-28 16:01:23 275

转载 (卷积神经网络)训练自己的MNIST集

学习转载出处:http://www.jianshu.com/p/75a8eb564de7环境:anaconde + tensorflow-gpu(显卡mx150)+python3.6(亲测成功)文章目录1生成测试样本和训练样本的label2生成图片3网络模型的时候需要用到 字体文件和cv2库 我在下文中都给出了地址和安装方式。2.生成了图片之后,训练的时候是image是从文件夹读的,labe...

2019-04-26 21:59:18 1123

原创 (机器学习)线性回归-1

文章目录1.线性回归的一般步骤2第一个机器学习算法 - 单变量线性回归3损失函数(代价函数)4梯度下降法5线性回归的梯度下降6多变量线性回归7过拟合1.线性回归的一般步骤2第一个机器学习算法 - 单变量线性回归线性回归实际上要做的事情就是: 选择合适的参数(θ0, θ1),使得hθ(x)方程,很好的拟合训练集 pip install sklearn # 首先安装sklearn包# ...

2019-04-24 13:43:51 269

空空如也

空空如也

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

TA关注的人

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