自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python实现二叉树遍历(递归与非递归)

python实现二叉树遍历(递归与非递归)递归非递归递归 # class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None## # @param root TreeNode类 the root of binary tree# @return int整型二维数组#class Solution:

2021-06-20 14:19:09 255

原创 python实现排序(冒泡,选择,插入,希尔,快排,归并,堆排)

python实现排序(冒泡,选择,插入,希尔,快排,归并,堆排)写在前面算法解析实现冒泡排序1.快速理解/复杂度2.代码选择排序1.快速理解与复杂度2.代码插入排序1.快速理解/复杂度2. 代码希尔排序1.快速理解与复杂度2.代码快速排序(!!!)1.快速理解/复杂度2.代码归并排序(!!)1.理解/复杂度2.代码堆排序(!)写在前面还是从最基本的开始,实际上4月各种实习面试里最容易问的大概是快排,归并,堆排也有概率问到。周末摸鱼回顾一下!(误)算法解析实现冒泡排序1.快速理解/复杂度时:时间

2021-06-19 23:52:16 670 10

原创 python实现Leetcode树相关题(重建二叉,子结构,镜像,对称,层次遍历,深度,和/路径,第k大节点,最近公共祖先)

python实现Leetcode树相关题目1.重建二叉树2.树的子结构3.二叉树的镜像4.对称的二叉树5.层次遍历5-1.输出层次遍历结果5-2.每层单独输出5-3.之字形输出1.重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:递归1.直接递归左右子树的时候切分前序和中序。pos是获取在中序遍历里

2021-03-10 12:07:42 367

原创 python实现Leetcode链表题型全解(反转,合并,删除,环,公共节点,复制,相加,重复,回文,重排)更新ing

python实现Leetcode链表题型全解(反转,合并,删除,环,公共节点,复制,相加,重复,回文)1.反转链表2.合并2个有序链表3. 删除链表节点4-1.删除链表的倒数第n个节点4-2. 输出该链表中倒数第k个结点5-1.链表是否有环5-2.若链表有环找入环点6.两个链表的第一个公共结点7.复制复杂链表(含random)8.两个链表相加链表元素正序链表元素倒序9.删除链表的重复元素未排序链表排序链表排序链表,且不把重复元素保留一次,全部删除10. 判断链表是否回文1.反转链表输入一个链表,反转链表

2021-03-01 16:53:31 204 2

原创 [S]O-68-最近公共祖先问题

[S]O-68-python:最近公共祖先问题0-祖先&最近公共祖先意义祖先最近公共祖先1.二叉搜索树中两个节点的最近公共祖先题目分析python代码2.二叉树中两个节点的最近公共祖先题目分析python代码0-祖先&最近公共祖先意义参考:大神的link祖先若节点 p 在节点 root的左(右)子树中,或 p=root,则称 root 是 p 的祖先最近公共祖先最近公共祖先的定义: 设节点root 为节点 p,q的某公共祖先,若其左子节点 root.left 和右子节点roo

2021-02-09 10:16:50 146

原创 [M]O-32从上到下打印二叉树(python)

1.题目从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]题目要求的二叉树的 从上至下 打印(即按层打印),又称为二叉树的 广度优先搜索(BFS)。BFS 通常借助 队列 的先入先出特性来实现特例处理: 当树的根节点为空,则直接返回空列表 [] ;初始化: 打印结果列表 res = [

2021-01-17 22:29:04 177

原创 O-07/26/27/28 二叉树重建/子结构/镜像/对称(Python)

O-07 重建二叉树题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。给出:前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回: 3 / \ 9 20 / \ 15 7分析与代码前序遍历性质: 节点按照 [ 根节点 | 左子树 | 右子树 ] 排序。中序遍历性质: 节点按照 [ 左子树 | 根节点 | 右子树 ] 排序。

2021-01-15 22:38:58 208

原创 [S]O-30/31包含min函数的栈/栈的压入弹出序列

[S]O-30/31包含min函数的栈/栈的压入弹出序列1.1O-30包含min函数的栈定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.po

2021-01-11 22:27:36 145

原创 [S]O-22/23/24 链表倒数第k个节点、反转链表、合并排序列表(Python)

[S]O-22/23/24 链表倒数第k个节点、反转链表、合并排序列表(Python)1. O-22链表倒数第k个节点-题目描述:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.1.分析与代码普通思

2021-01-10 16:36:31 130

原创 [S]O-18 删除链表的节点(Python)

题目给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。分析:双指针删除值为 val 的节点可分为两步:定位节点、修改引用。定位节点: 遍历链表,直到 head.val == val 时跳出,即可定位目标节点。修改引用: 设节点 cur 的前驱节点为 pre ,后继节点为 cur.next ;则执行 pre.next = cur.next ,即可实现删除 cur 节点。参考:link流程:特例处理: 当应删除头节点 head 时head.val

2021-01-08 14:56:28 178

原创 [H]O-19 正则表达式匹配(Python)

[H]O-19 正则表达式匹配题目请实现一个函数用来匹配包含’. ‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母以及字符 . 和 *,无连续的 *。输入:s = "ab"p = ".*"输出: tr

2021-01-08 14:42:58 216

原创 [s]O-21 调整数组顺序使奇数在偶数之前(python实现与升级版腾讯面试题)

[s]O-21 调整数组顺序使奇数在偶数之前(python实现与升级版腾讯面试题)题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。输入:nums = [1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。方法解决/代码Method1 双指针参考:link考虑定义双指针 i, j分列数组左右两端,循环执行:指针 i从左向右寻找偶数;指针 j 从右向左寻找奇数;将偶数 nu

2021-01-04 12:11:56 184

原创 [M]O-20 表示数值的字符串

[M]O-20 表示数值的字符串问题描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、"-1E-16"、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、"±5"及"12e+5.4"都不是。#本题有一些注意的情况’1 ‘’ 1‘ 像这种前后有空格的都属于TRUE’1. 1‘中间有空格属于FALSE'.2' TRUE 小数点前可没有数字,但是后边必须有问题分析在 C++ 文档 中,描述

2021-01-03 14:55:13 152

原创 [M]O-14剪绳子 (数学推导/动态规划/循环求余/快速幂)

[M]O-14剪绳子 (数学推导/动态规划/循环求余/快速幂)参考:求余和数学推导方法看这个!动态规划的解法解析看这个!问题描述给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m - 1] 。请问 k[0]k[1]…*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007

2021-01-02 20:48:51 199

原创 [S&D]O-17 打印从1到最大的n位数(考虑大数)

O-17 打印从1到最大的n位数(考虑大数)问题描述输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。输入: n = 1输出: [1,2,3,4,5,6,7,8,9]方法看了题目很快做完通过,看了题解才发现这个不是这么解答的,应该主要考的是通过字符串解决大数问题。以为这样????class Solution: def printNumbers(self, n: int) -> List[int]:

2021-01-01 16:48:42 180

原创 [M]O-16 数值的整数次方

[M]O-16 数值的整数次方问题描述实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。输入: 2.00000, 10输出: 1024.00000输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25思路分析首先分三种情况:(1)x=0时返回0(2)当 n < 0时:把问题转化至 n≥0 的范围内,即执行 x =

2021-01-01 12:06:28 148

原创 [S]O-9 用两个栈实现队列

问题描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1] 输入:["CQueue","deleteHead","appendTail","ap

2020-12-31 18:18:44 119 1

原创 [S]O-15 二进制中1的个数

[S]O-15 二进制中1的个数问题描述:请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'输入:11111111111111111111111111111101输出:31解释:

2020-12-31 17:54:00 125

原创 [S]O-10-2 青蛙跳台阶问题

[S]O-10-2 青蛙跳台阶问题1.问题描述一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 :输入:n = 2输出:2输入:n = 7输出:21输入:n = 0输出:12.解决方法同10-1那道题 动态规划题解参考link:Link此类求 多少种可能性 的题目一般递推性质 ,即 f(n) 和 f(n−1)…f(1)

2020-12-18 11:51:02 227

原创 [S]O-10-1 斐波那契数列

[S]O-10-1 斐波那契数列1.问题描述写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1示例:输入:n = 2输出:1输入:n = 5

2020-12-17 14:00:18 168

原创 【S】O-11.旋转数组的最小数字

【S】O-11.旋转数组的最小数字题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1题解可以忽略的Method直接排序return最小…完全不看题作答但也可以通过,和直接min(numbers)一样好笑!正经Method参考链接:写的很好的题解循环二分排序数组的查找问题首先考虑使用 二分法 解决,其可将 遍历法

2020-12-16 16:15:45 94

原创 [S]O-06 从尾到头打印链表

[S]O-06 从尾到头打印链表问题描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。输入:head = [1,3,2]输出:[2,3,1]解决方案:method1:列表再反转列表append再反转reverse或者[::-1]都可以列表反转:l.reverse()则已经反转了l本身,l.reverse()的值为null,不是反转结果。l[::-1]也是对列表l进行了反转# Definition for singly-linked list.# class L

2020-12-14 20:12:27 68

原创 [S]O-05替换空格

[S]O-05替换空格问题描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。输入:s = "We are happy."输出:"We%20are%20happy."解决方案:Method1/Method2差不多Method1:一个是把str用split转成list,进行字符串拼接,最后一个直接拼接不需要加%20。Method2:直接str里判断,新建list append,最终用join连接字符串。class Solution: def replaceSpace

2020-12-14 19:26:54 184

原创 [M]O4二维数组中的查找

[M]O4二维数组中的查找问题描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解决方案:参考:题解Method1:由于这个二维数组的特殊:从左到右从上到下依次增大我们从左下角开始遍历,当该值小于 target 值时,向右搜索;大于 target 值时,向上搜索。如果找到 target 则返回 True,否则返回 False。**注意:**当数组为

2020-12-13 15:38:30 95

原创 [S]O-03数组中重复数字

[S]O-03数组中重复数字问题描述:数组中重复数字class Solution: def findRepeatNumber(self, nums: List[int]) -> int:解决方案:1- Method1:利用hash初始化:新建 HashSet ,记为 dicdic ;遍历数组 nums 中的每个数字 num:当 num在 dic中,说明重复,直接返回 num ;将 num添加至 dic 中;返回 -1。本题中一定有重复数字,因此这里返回多少都可以。

2020-12-13 14:56:58 106 2

原创 [M]Longest Palindromic Substring最长回文子串

[M]Longest Palindromic Substring最长回文子串题目描述题解思路1.定义2.需要满足状态转移方程3.说明4.初始化和输出什么5.python代码6.复杂度题目描述Given a string s, return the longest palindromic substring in s.题解思路动态规划——状态如何转移一个回文去掉两头以后,剩下的部分依然是回文如果一个字符串的头尾不相等,那么这个字符串一定不是回文串;如果一个字符串的头尾两字符相等,才继续判断下去

2020-10-16 13:01:48 90 1

原创 【vue】解决:vue调用echarts时mounted不起作用页面不显示

【vue】解决:vue调用echarts时mounted不起作用页面不显示问题:图像不显示;mounted灰色不起作用。解决:mounted不可以写在methods里,生命周期钩子的函数需要写在methods外部。调用相应的echarts画图的函数即可。...

2020-08-28 11:46:21 3335 3

原创 【tools】Latex菜鸟快速入门教程(基于overleaf平台:Learn LaTeX in 30 minutes)

【tools】Latex菜鸟快速入门教程(基于overleaf平台)注册登录overleafLaTeX入门教程1.First start2.序言Preamble3.添加标题、作者和日期4.添加注释6.加粗、斜体和下划线7.添加图像8.标题,标签和参考9.创建列表10.为 LaTeX 添加数学表达式11.基本格式1.摘要2.段落和换行符3.章节&分段12.创建表格1.简单表格2.添加边框3.表格标题,标签和参考13.添加目录14.下载完成文档参考教程:Overleaf - Learn LaTeX i

2020-08-27 16:11:26 21234 8

原创 Github无法访问解决办法

Github无法访问解决办法问题描述:网速正常,但是github无法访问。解决办法:1.因为Github网址域名更换。查询网站https://ipchaxun.com/ ,例如输入github.com.在C:\Windows\System32\drivers\etc的host文件中加入以下内容:140.82.114.4 github.com140.82.114.4 gist.github.com185.199.108.153 assets-cdn.github.com151.10

2020-06-16 09:00:10 7936 8

原创 【Backend】post方法接收的对象是多个json对象组成的列表时如何处理

【Backend】post方法接收的对象是json对象组成的列表时如何request处理问题:假如有接口/book,需要写一个【POST】方法,提交书本内容。但顾客提交的内容不是单个的json对象,而是一次提交多个json对象组成的列表来批量更新。此时:当传过来POST的数据是列表,里面是具体的n个json对象,[{},{},{}](实际上相当于/book 【get】的数据又返回去了),用于批量更新。【get】方法的数据示意如下:解决:此时不单纯使用获取单个json对象的某字段信息时一个个用↓

2020-05-25 10:42:41 887

原创 【Backend】Sqlalchemy统计表数目耗时少的方法

【Backend】Sqlalchemy统计表数目耗时少的方法问题:在使用flask-sqlalchemy对多个表查询计数用len(表名.query.filter(Mtv.id).all())或者进行count操作时,出现了耗时严重、内存飙升的问题。 count = len(表名.query.filter(表名.id).all())解决:用sqlalchemy下的func就可以from sqlalchemy import funccount = db.session.query(func.cou

2020-05-25 10:31:24 472

原创 【Tool】python重命名文件夹下的所有图片文件名

【Tool】python重命名文件夹下的所有图片文件名今天发现某个要用的图片文件夹里的图片命名有问题,数目差1:文件夹里图片命名都是page-0,page-1…想把他变成page-1,page-2…简单记下源码:主要是os.rename(oldname,newname),没什么好说的。记一下。# #重命名文件夹里图片import os# 原路径path="d:/ori_path/"# 现路径outputpath="d:/des_path/"for i, filename in enume

2020-05-11 17:57:37 434 1

原创 【Tools】Postman的下载使用——接口测试

Postman最近写前后端分离之后,只写后端时候觉得get方法可以直接本地网页测试,但是POST在就不方便测试了,于是选择postman作为接口测试的工具使用啦。Postman下载官网直接下载相应版本就可以:https://www.getpostman.com/downloads/Postman使用最简单的使用方法记录一下都直接↓1.测试GET方法接口(1)输入url——测试...

2020-04-21 17:05:33 514

原创 【Opencv】Python+openCV实现全景图拼接(左右两张图片拼接成一张全景图)

Python+openCV实现全景图拼接(左右两张图片拼接成一张全景图)全景图拼接思路具体步骤代码与结果代码效果测试1效果测试2全景图拼接思路这个就是简单对左右两张图进行拼接,希望实现下面效果:左图全景图右图这里不是指严丝合缝的可以直接拼接的图,比如如下面两个图:(以中间那个仙人掌(貌似)为指标,可见第一张图应该位于全景图的左边,第二张图位于全景图右边)想要实现效果(简单拼接成全景...

2020-04-02 18:15:36 14003 22

原创 【Opencv】Python3.7+Opencv3.x SIFT特征检测与匹配(采坑记录)

Python3.7+Opencv3.x SIFT特征检测与匹配SIFT图像特征检测理解SIFT算法步骤实验与结果安装配置记录代码运行结果SIFT图像特征检测理解得到特征关键点,并可以将关键点向量化.实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。...

2020-04-02 11:14:22 2227 5

原创 【Opencv】基于Opencv和PCV两种方法的Harris 角点检测与匹配

【Opencv】基于Opencv和PCV两种方法的Harris 角点检测与匹配【附代码】理解Harris角点检测代码:Harris角点检测1.【opencv版】Harris角点检测2.【PCV版】Harris角点检测与匹配3.【PCV版】Harris匹配理解Harris角点检测明确两个概念:边界——一面比较平稳变换,一面比较明显角点——无论是水平还是竖直方向,变化都很明显角点的一个特性:...

2020-04-02 09:50:20 2332

原创 【Opencv】识别信用卡数字【代码实现】

【Opencv】识别信用卡数字【代码实现】主要用到模板匹配,轮廓外接矩形等——根据银行卡实际情况来做的不具有普适性,但车牌扫描可以参考。直接上代码:识别信用卡数字:如下图:最终达成效果:提供数字模板:主代码:opencv_study_CreditNumberMatch.py# 导入工具包from imutils import contoursimport numpy as ...

2020-03-29 22:10:48 1317

原创 【Opencv】基于python-opencv的CV2实现图片OCR前的扫描摆正OCR识别【代码实现】

基于python-opencv的CV2实现图片OCR前的扫描摆正OCR识别【代码实现】实验目的代码实现预处理(注意Resize图像)轮廓检测(找到矩形)透视变换(摆正图像)OCR识别文字实验结果发票图片自己随便拍的图片实验目的本实验的目的主要是实现诸如发票,pdf扫描成的图片,如何可以实现找到发票(这里都用发票指代了)外轮廓,把桌面等信息消除,直接将发票清晰摆正呈现,方便后续的OCR识别。2...

2020-03-29 18:44:51 5289 2

原创 【Opencv】opencv-python学习笔记代码复现(图像金字塔,轮廓检测,直方图)

opencv-python学习笔记代码复现(图像金字塔,轮廓检测,直方图,识别信用卡实战)图像金字塔轮廓检测绘制轮廓轮廓近似模板匹配直方图绘制图像直方图mask操作直方图均衡化自适应直方图均衡化傅里叶变换识别信用卡数字图像金字塔高斯金字塔#金字塔# 高斯金字塔(向上【放大】,向下【缩小】)img=getimg('d:/wall.jpg',0)up=cv2.pyrUp(img)do...

2020-03-29 16:47:31 529

原创 【Opencv】opencv-python学习笔记(基本操作,图像融合,图像平滑,阈值,膨胀腐蚀等)

【Opencv】opencv-python基本操作学习笔记截取图像图像融合读取视频调整帧速显示图像阈值图像平滑(滤波操作)膨胀腐蚀——形态学操作梯度——不同算子边缘检测——Canny边缘检测截取图像图像融合读取视频调整帧速显示末行cv2.waitKey(10)数值的改变可以改变播放速率import cv2import numpy as npcap =cv2.VideoCapt...

2020-03-26 21:17:35 553

空空如也

空空如也

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

TA关注的人

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