自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (7)
  • 收藏
  • 关注

原创 [集合]字符集合

[集合]字符集合题目描述题目分析代码题目描述输入一个字符串,求出该字符串包含的字符集合输入:每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。输出:每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。题目分析对于这种题,可以使用一个集合来记录仪字符的集合,但注意它要返回的是顺序的字符,故遍历原字符串,若字符第一次出现在集合中,则保存,否则删除。代码import sysdef makSet(str1): ls

2021-08-11 00:36:49 351

原创 【队列】删数(热土豆问题)

[队列]删数(热土豆问题)问题描述:问题分析代码问题描述:有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。输入:每组数据为一行一个整数n(小于等于1000),为数组成员数,如果大于1000,则对a[999]

2021-08-10 23:43:53 477

原创 HO-MHT (Hypothesis Oriented Multi-Hypothesis Target Tracking/基于假设的多假设目标跟踪算法)

【滤波与目标跟踪-公开代码1】面向假设的多假设目标跟踪算法-Python3.X实现前言1. tracker.py1.1 _normalize_log_sum(items)1.2 LocalHypothesis类1.2.1 id()1.2.2target()1.2.3 density()1.2.4 predict(t_now)1.2.5 log_likelihood1.2.6 is_dead1.2.7 is_confirmed1.2.8 new_from_hit(cls, self, z, hit_llhoo

2021-07-01 20:21:36 4518 4

原创 [LaTex]LaTex中的公式标签|多公式标签

LaTex中的公式标签|多公式标签单标签多标签在LaTex中我们使用\ref{label}命令来引用公式/图表/表格,而使用\label{xxx}给公式/图表/表格打标签,本文介绍如何在一个公式环境中给公式打标签。单标签如果在align公式环境中输入:\begin{align}\label{key1} y&=x^2\end{align}得到结果为即y=x2y=x^2y=x2的标签为key1。这也是最为常用的标签形式。而有时我们需要写一些公式推导,写的好几行等式共用一个标签,例如:

2021-02-02 17:20:16 19506

原创 Python3-[51]面试题53-II.0~n-1中缺失的数字(二分查找)

面试题53-II.0~n-1中缺失的数字题目解题思路代码题目一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。解题思路二分查找寻找第一个值与索引不等的元素:若中间元素与索引不等:[left,mid-1]若中间元素与索引相等:[mid+1,right]最后值与索引相等,说明索引加1为所求;否则索引减1为所求。代码class Solution: def missing

2021-02-02 16:12:12 200

原创 Python3-[50]面试题50.第一个只出现一次的字符(散列表)

面试题50.第一个只出现一次的字符题目解题思路代码题目在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。解题思路使用字典:第一次遍历记录每个字母出现的频次第二次遍历找到第一个出现一次的字母代码class Solution: def firstUniqChar(self, s: str) -> str: #dict hashmap = {} for item in s:#第一次遍历记录每

2020-08-29 21:57:47 370

原创 Python3-[49]面试题49.丑数(堆排序&去重/动态规划DP)A

面试题46.丑数题目解题思路解法1:暴力判断每个数是否为丑数O(n2)O(n^2)O(n2)code1: O(n2)O(n^2)O(n2)解法2:最小堆code2:heap&set解法3:动态规划(DP)3.1定义状态:3.2状态转移方程:3.3初始化:3.4返回值code3:dp题目我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9,

2020-08-29 21:55:58 822

原创 Python3-[48]面试题47.礼物的最大价值(动态规划DP)

面试题47.礼物的最大价值题目解题思路定义状态状态转移方程状态初始化状态返回代码题目在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?解题思路典型的DP问题。定义状态状态dp[i][j]为到达当前格子时的最大价值状态转移方程dp[i,j]=max(dp[i,j−1],dp[i−1,j])+grid[i

2020-08-29 21:22:50 321

原创 Python3-[47]面试题44.数字序列中某一位的数字(math) A

面试题44.数字序列中某一位的数字题目解题思路解法1:(超时O(n))解法2:code题目数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。解题思路解法1:(超时O(n))直接序列化到n再取字符串的第n个数O(n)class Solution: def findNthDigit(self, n: int) -> int:

2020-08-29 00:10:27 522

原创 Python3-[46]面试题43. 1~n整数中1出现的次数(math) A

面试题43. 1~n整数中1出现的次数题目解题思路解法1:拼接字符串(超时O(nlogn))code1: cat. as a string解法2:对每个数进行求余运算(超时(O(nlogn)))code2: divmod. for each num.解法3:对每一位出现的1进行计算,再相加。code3: count by each byte using math. (O(logn))题目输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有

2020-08-29 00:07:13 456

原创 Python3-[45]面试题55-II.平衡二叉树

面试题55-II.平衡二叉树解题思路code输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \ 3

2020-08-28 23:46:06 219

原创 [小结]二叉树的最大/小深度以及平衡二叉树的判断 A

二叉树的最大/小深度题目解题思路1.层次遍历1.1最大深度1.2最小深度2.DFS(先序遍历)2.1最大深度2.2最小深度题目给定一个二叉树,找出其最大深度。给定一个二叉树,找出其最小深度。二叉树的最大深度为根节点到最远叶子节点的最长路径上的节点数。二叉树的最小深度为根节点到最近叶子节点的最短路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15

2020-08-28 17:48:31 697

原创 Python3-[44]面试题55-I.二叉树的深度(层次遍历/DFS)

面试题55-I.二叉树的深度题目解题思路层次遍历DFS(先序遍历)题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。解题思路层次遍历扫描完一层的节点,将该层的深度加1,直到队列中没有节点剩余。# Definition for a bina

2020-08-28 17:17:40 202

原创 Python3-[43]面试题53-I.在排序数组中查找数字I(二分查找)

面试题53-I.在排序数组中查找数字I二分查找mid在左区间:mid在右区间解题思路代码给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出:

2020-08-27 23:51:04 321

原创 Python3-[42]面试题52.两个链表的第一个公共节点

面试题52.两个链表的第一个公共节点题目解题思路解法1:hash mapcode1:hash map解法2:双指针code2: bi-pointer题目编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。P.S.题目来源于leetcode解题思路解法1:hash map使用一个集合存储A的所有节点,再判断B的节点是否再lookUp中,若在则说明是相交的节点,否则查询完毕不存在相交点code1:hash map# Definition for singl

2020-08-27 23:22:34 290

原创 Python3-[41]面试题48.最长不含重复字符的子字符串(滑动窗口法+set)

面试题48.最长不含重复字符的子字符串问题解题思路code:问题给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。解题思路这属于满足…的最长/短子数组的长度问题。更详细的问题解法参看我的这篇文章特判:若字符串的长度小于2,返回字符串初始化:vis = set():记录重复字符maxlen = 0:满足不含重复字符的最长子串的长度curlen=0:滑动窗口当前的不含重复子串的窗口长度left=0:窗口的左端指针处理右端值:遍历字符串作为右端点值rightvalue

2020-08-27 23:18:28 267

原创 满足...的最长/短子数组的长度(滑动窗口法)

满足...的最长/短子数组的长度题目解题思路求解:满足不含重复字符的最长子串的长度题目给定一个字符串,求满足…的最长/短子数组的长度。其中...部分可以是不含重复字符或含重复字符等。解题思路对于这种求满足一定条件的最长/短子数组长度的题目,可以使用滑动窗口法+set进行处理。求解:满足不含重复字符的最长子串的长度特判:若字符串的长度小于2,返回字符串初始化:vis = set():记录重复字符maxlen = 0:满足不含重复字符的最长子串的长度curlen=0:滑动窗口当前的不含重

2020-08-27 22:23:48 1128

原创 Python3-[40]面试题42.连续子数组的最大和(动态规划)A

面试题42.连续子数组的最大和题目解题思路1.状态定义:2.动态方程:4.初始化3.输出:代码题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。P.S. 题目来源于leetcode.解题思路动态规划解决:1.状态定义:dp[i]为以nums[i]结尾的连续子数组的最大和。2.动态方程:如果之前的和dp[i-1]小于0,说明dp[i-1]对当前值起到反作用,则舍去之前的和dp[i-1],令nums[i]为当前状态值进行计算。if dp

2020-08-27 21:15:09 667

原创 Python3-[39]面试题40.最小的k个数(TOPK问题)A

面试题40.最小的k个数题目解题思路解法1:heapcode1:max-heap解法2:快速排序code2:快排思路题目输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。P.S. 题目来源于leetcode解题思路这是TopK的问题,参看TOPK讲解。具体来说,为求解最小的k个数,可以使用2中方法:大顶堆和快速排序。下面分别利用大顶堆和快速排序得到TopK.解法1:heap由于在Python3中提供的hea

2020-08-27 20:49:55 353

原创 Python3-[38]面试题38.字符串的排列(全排列/递归)A

面试题38.字符串的排列题目解题思路1.变量:2.递归基:3.递归:代码题目输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。解题思路将string转换为charList得到nums再使用全排列的方法。在全排列之前,需要将nums进行排序。回溯问题:递归解决每次从nums列表中取出一个元素,如果该元素没有出现过则添加到路径中,层次+1;直到层次==len(nums),说明1条路径已搜索完,将路径添加到结果中,返回。1.变量:vis

2020-08-27 20:08:17 505

原创 Python3-[37]面试题36.二叉搜索树与双向链表(中序遍历/双向循环链表)A

面试题36.二叉搜索树与双向链表题目解题思路代码题目输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。特别地,我们希望可以就地完成转换操作。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。还需要返回链表中的第一个节点的指针。P.S.

2020-08-27 20:07:46 212

原创 TOPK问题(二叉堆/快速排序)A

TOPK问题问题描述解题思路解法1:最大二叉堆(重写heap)code1:max-heap解法2:最小堆-heapqcode2:min-heap/heapq解法3:快排quicksortcode3:quicksort问题描述TOPK问题:输入整数数组arr,找出其中最小的/最大的k个数这里以min-topk为例进行讲解解题思路解法1:最大二叉堆(重写heap)首先重写最大二叉堆(BinHeap),主要在_percUp和_percDown函数。class BinHeap:#最大二叉堆 d

2020-08-27 20:06:54 571

原创 Python3-[36]面试题35.复杂链表的复制(散列表/2N链表的指针)A

面试题35.复杂链表的复制题目解题思路解法1:HASH MAPcode: hash map解法2:pointer + 2N-chaincode:题目请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。解题思路解法1:HASH MAPusing extra space in order that saving time from O(n2)O(n^2)O(n2)

2020-08-26 21:26:39 205

原创 Python3-[35]面试题39.数组中出现次数超过一半的数字(散列表/Counter/摩尔投票法)

面试题39.数组中出现次数超过一半的数字题目解题思路code1:使用dictcode2:使用Counter扩展:摩尔投票法题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。解题思路最好想的思路是使用散列表进行存储每个数字出现的次数,由此可以使用dict或者使用collections.Counter进行计数。code1:使用dictclass Solution: def ma

2020-08-26 20:55:03 387

原创 Python3-[34]面试题37.序列化/反序列化二叉树(层次遍历/先序遍历)A

面试题37.序列化/反序列化二叉树题目解题思路1.层次遍历1.1序列化1.2反序列化code:level traversal2.先序遍历2.1序列化2.2反序列化code:preOrder题目序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并

2020-08-26 20:15:02 448

原创 Python3-[33]二叉树中和为某一值的路径(DFS)

二叉树中和为某一值的路径题目解题思路代码 --1.依次相减代码 --2.加辅助变量,依次相加扩展: 求从根节点到子节点的个数<2的末节点的和为sum的路径题目输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。说明: 叶子节点是指没有子节点的节点。解题思路1.用sums依次减去节点的值,直到叶子节点的值为sums2.设置辅助变量res,初始为0,一直加到叶子节点时,res+root.val==sums代码 --

2020-08-26 17:07:15 313

原创 Python3-[32]面试题33.二叉树的后序遍历序列(后序遍历/DFS)

面试题33.二叉树的后序遍历序列题目解题思路code1:使用索引的写法1code2:使用分片写法2题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。解题思路递归思路:依据二叉搜索树的DST后序遍历的性质找出数组中根节点的位置,左子树和右子树的位置在后序遍历得到的数组中,如[a,⋯ ,b,b+1,⋯ ,j−1,j][a,\cdots,b,b+1,\cdots,j-1,j][a,⋯,b,b+1,⋯,j

2020-08-26 15:33:24 321

原创 Python3-[31]面试题32-III.从上到下打印二叉树III(层次遍历/BFS)

面试题32-III.从上到下打印二叉树III题目解题思路代码题目请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。解题思路每一层的节点都等于当前队列que中的节点,在将当前层节点全部弹出之后再处理下一层。在标准层次遍历的基础上加上了按层输出的操作以及判断level的操作,path使用队列表示,奇数层用append将节点值添加到尾部,偶数层则用appendleft将节点添加到头部。代码# Defi

2020-08-26 14:44:28 211

原创 Python3-[30]面试题32-II.从上到下打印二叉树II(层次遍历/BFS)

面试题32-II.从上到下打印二叉树II题目解题思路code1:BFS每层输出写法1code2:BFS每层输出写法2(不推荐这样写)题目从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。解题思路对于标准的层次遍历,这里对于层次输出需要做的一点改变:应使每一层次的节点等于当前队列里的节点,这样则需要每次都把当前层所有节点都弹出并处理完再处理下一层。同样,我们有两种BFS写法:code1:BFS每层输出写法1# Definition for a binary tree n

2020-08-26 14:13:53 218

原创 Python3-[29]面试题32-I.从上到下打印二叉树(层次遍历/BFS)

面试题32-I.从上到下打印二叉树题目解题思路code1:层次遍历写法1code2:层次遍历写法2题目从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。解题思路很明显,这就是一个二叉树的层次遍历问题,在层次遍历的时候维护一个res列表存储结果即可。code1:层次遍历写法1# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val =

2020-08-26 12:54:26 304

原创 Python3-[28]面试题31.栈的压入、弹出序列(栈)

面试题31.栈的压入、弹出序列题目解题思路code1:借助队列code2:借助索引题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。解题思路借助一个辅助栈来模拟压入、弹出过程:依次压入,若能弹出当前元素就弹出,最后判断栈中是否还包含元素,若不包含则返回T,否则

2020-08-26 12:36:48 312

原创 Python3-[27]面试题30.包含min函数的栈(辅助同步栈)

面试题30.包含min函数的栈/最小栈题目解题思路代码题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。解题思路由于查询最小元素需要常数时间,故不能使用查找算法,需要维护一个辅助栈(同步栈)辅助栈helper和data保持同步增长。对于辅助栈:if not self.helper or x < s

2020-08-26 00:01:06 188

原创 Python3-[26]面试题26.树的子结构(先序遍历)

面试题26.树的子结构题目解题思路1.特判;2.先序遍历3.辅助函数Judge(nodeA,B)code:preorder等价的代码:题目输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。解题思路1.特判;A,B树有一个树为空,则返回False。空树不是任意一个树的子结构。if not (A and B):return False2.先序遍历判断A中子树是否包含树B。函数Judge(nodeA,B)判断

2020-08-25 23:56:04 619

原创 模式匹配 A

模式匹配题目解题思路0.统计a,b个数1.特判2.对于pattern和value都不为空时,两重遍历代码题目你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a",“go"是"b”),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和"b"不能同时表示相同的字符串。编写一个方法判断value字符串是否匹配pattern字符串。解题思路

2020-08-25 22:16:47 261

原创 数组和链表中的归并排序/堆排序

数组和链表中的归并排序题目1.归并排序的思路2.数组的归并排序3.链表的归并排序3.1递归基3.2二分3.3.二分递归3.4二路归并3.5返回值$code for ListSort:4.二路归并部分使用二叉堆题目有一个数组,对其进行O(nlog⁡n)O(n\log n)O(nlogn)时间复杂度的归并排序有一个链表,对其进行O(nlog⁡n)O(n\log n)O(nlogn)时间复杂度的归并排序1.归并排序的思路递归基:数组或链表中的元素个数小于2,不用排序,返回数组二分:找到数组或链表

2020-08-25 22:11:15 368

原创 Python3-[25]面试题25.合并两个排序的链表(链表)

面试题25.合并两个排序的链表题目解题思路代码题目输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。P.S.题目来源于leetcode解题思路一个简单的思路是二路归并算法,如21题合并两个有序链表和148.排序链表所示,步骤是一样的。代码# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# s

2020-08-25 20:27:33 262

原创 Python3-[24]面试题24.翻转链表(链表)A

面试题24.反转链表题目解题思路1.借助辅助栈+新链表code1:辅助栈2.双指针+辅助变量code2题目定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。比如:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLP.S.题目来源于leetcode解题思路1.借助辅助栈+新链表先用栈保存原链表的值。新链表的值取自栈中。code1:辅助栈### 辅助栈+新链表#

2020-08-25 18:36:24 234

原创 Python3-[23]面试题28.对称的二叉树(BFS)

面试题28.对称的二叉树解题思路代码###题目判断一棵二叉树是否对称解题思路简单的思路可以通过层次遍历+镜像树的思路实现。初始que中存入(root,root)每次循环中,存入每一层的(left.right, right.left)和(left.left, right.right).限制条件:left, right = que.popleft()判断无枝?->单枝?->两枝?若为无枝,则继续弹出下一组元素判断。若为单枝,则一定不对称,返回False。若为两枝,则判断值是否

2020-08-25 17:36:59 214

原创 Python3-[22]面试题27.二叉树的镜像(DFS/BFS)

面试题27.二叉树的镜像题目解题思路1. BFS-层次遍历code:BFS2.DFS-先序遍历code:DFS题目求二叉树的镜像,即翻转一棵二叉树。验证是否反转可参考110/111题。解题思路1. BFS-层次遍历可以使用广度优先搜素,层次遍历每个节点,交换节点的左右子节点,若左/右子节点不为None,则添加到Queue中进行下一次的搜索。code:BFS# Definition for a binary tree node.# class TreeNode:# def __ini

2020-08-25 16:57:25 397

原创 Python3-[21]调整数组顺序使奇数位于偶数前面(双指针)

调整数组顺序使奇数位于偶数前面(双指针)题目解题思路代码题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。解题思路简单思路:使用O(n)的空间,扫描1遍得到顺序的奇数,再扫描一遍得到顺序的奇数,再两个数组拼接。但这样要使用2次遍历,使用O(n)的空间。另外一种思路就是使用双指针,former从左到右扫描,latter从右向左扫描,当左指针遇到偶数,右指针遇到奇数时,数值交换直到左右指针相交。代码class Solution:

2020-08-25 00:21:25 446

温度监控器单片机实现

使用C语言在KEIL上进行的51单片机开发,内含完整的C语言代码,以及所对应的电路图设计

2018-09-17

静态的手势识别

非常好的手势识别程序,是静态手势识别的程序,通过调试可以运行

2018-04-12

基于matlab的摄像头处理程序

基于matlab的摄像头处理程序,把txt文档放到matlab中即可运行

2018-04-12

基于手指角度特征的手势识别技术研究

非常好的手势识别的硕士论文,caj格式的,描述的是利用角度特征来识别手势

2018-04-12

自动售水机

该程序是基于keil4软件用C语言实现的自动售水机单片机程序,单片机用的是IAP系列,里面附上实现的线路图,经过调试程序可以很好的运行

2018-04-06

温度监控器IAP15单片机实现程序

此程序是基于C语言keil4软件编写的IAP15单片机实现的温度监控器,编写经过调试可以运行。

2018-04-04

空空如也

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

TA关注的人

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