自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 判断字符串是否由另外两个字符串交织而成(动态规划杀我)

问题描述给出三个字符串s1, s2, s3,判断s3是否可以由s1和s2交织而成。例如:给定s1 =“aabcc”,s2 =“dbbca”,如果s3 =“aadbbcbcac”, 返回true如果s3 =“aadbbbaccc”, 返回false分析又是动态规划的题,好头疼,思绪混乱,又要去评论区翻代码看才明白要怎么做,枯了啊。主要就是用一个二维数组dp[i][j]记录s1[0…...

2020-05-03 21:55:23 1028 1

转载 求母串中出现字串的次数

题目描述给定一个字符串S和一个字符串T,计算S中的T的不同子序列的个数。字符串的子序列是由原来的字符串删除一些字符(也可以不删除)在不改变相对位置的情况下的剩余字符(例如,"ACE"is a subsequence of"ABCDE"但是"AEC"不是)例如:S =“rabbbit”, T =“rabbit”返回3分析我们需要一个二维数组dp(i)(j)来记录长度为i的字串在长度为j...

2020-04-30 16:23:30 503

原创 三角形找到最小路径和(最大路径和同理)

题目描述给出一个三角形,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字,例如,给出的三角形如下:[↵ [2],↵ [3,4],↵ [6,5,7],↵ [4,1,8,3]↵]最小的从顶部到底部的路径和是2 + 3 + 5 + 1 = 11。注意:如果你能只用O(N)的额外的空间来完成这项工作的话,就可以得到附加分,其中N是三角形中的行总数。...

2020-04-29 23:29:46 273

原创 买入卖出股票的最佳时间(分不同的交易次数)

题目描述假设你有一个数组,其中第i个元素是某只股票在第i天的价格。设计一个算法来求最大的利润。你最多可以进行两次交易。注意:你不能同时进行多个交易(即,你必须在再次购买之前出售之前买的股票)。分析一只股在i天的时间内可以进行至多两次交易,买入-卖出-买入-卖出,目标是 最终利润=max{ -第一次买入价格+第一次卖出价格 - 第二次买入价格 + 第二次卖出价格}。因为刚学到贪心法,所以...

2020-04-29 15:23:51 980

原创 判断字符串是不是回文

题目描述判断题目给出的字符串是不是回文,仅考虑字符串中的字母字符和数字字符,并且忽略大小写例如:"A man, a plan, a canal: Panama"是回文"race a car"不是回文注意:你有没有考虑过字符串可能为空?这是面试时应该提出的一个好问题。针对这个问题,我们定义空字符串是回文 分析这让我想起昨天做的类似的题目,“给一串字符串找出最小的分割次数使分割后的每...

2020-04-28 20:30:49 513

原创 找到数组中最长的连续序列的长度

题目描述给定一个无序的整数类型数组,求最长的连续元素序列的长度。例如:给出的数组为[100, 4, 200, 1, 3, 2],最长的连续元素序列为[1, 2, 3, 4]. 返回这个序列的长度:4你需要给出时间复杂度在O(n)之内的算法分析这道题令我想起之前做过的一道题,是要在数组里面找到一个连续的子序列,这个序列能使元素和最大:这一题的解决办法是,遍历数组,如果后一个元素大于 ...

2020-04-27 19:53:59 1729

原创 字符串经过最少切割次数,使得切割后的每个字串都是回文串

题目描述给出一个字符串s,分割s使得分割出的每一个子串都是回文串计算将字符串s分割成回文分割结果的最小切割数例如:给定字符串s=“aab”,返回1,因为回文分割结果[“aa”,“b”]是切割一次生成的。分析设置两个变量 i 和 j,i 从字符串最后一个字符开始向前走,j 从 i 开始往后走到字符串结尾。设置数组dp[i]代表从 i 到s.length-1这段字符串要分割的最小次数,p...

2020-04-27 15:01:48 839

原创 拷贝无向图

题目描述本题要求复制一个无向图,图中每个节点都包含一个标签和它的邻居列表我们无向图用以下的方法序列化:• 节点的标签是互不相同的,• 我们使用“#”作为节点之间的分隔符,使用“,”作为节点标签和节点的节点邻居的分隔符。例如:现在有一个序列化的无向图{0,1,2#1,2#2,2}.这个无向图一共有3个节点,因此序列被#分隔成三部分第一个节点的标签是0,节点0和节点1,节点2之间有边...

2020-04-26 15:13:12 224

原创 环形路能否找到一个加油站使从此开始走完环形路油是够的

问题描述环形路上有n个加油站,第i个加油站的汽油量是gas[i].你有一辆车,车的油箱可以无限装汽油。从加油站i走到下一个加油站(i+1)花费的油量是cost[i],你从一个加油站出发,刚开始的时候油箱里面没有汽油。求从哪个加油站出发可以在环形路上走一圈。返回加油站的下标,如果没有答案的话返回-1。注意:答案保证唯一。分析因为n个加油站是环形分布,为了避免多余的取模运算,起点从最后一...

2020-04-26 13:43:28 330

原创 数组中只出现一次的数字(普通版+进阶版)

普通版题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。分析 利用“其他的数字都出现了两次”这个条件,我们知道两个相同的数做^运算等于0,那么可以对整个数组中的元素进行异或,所有出现了两次的数字都变为了0,剩下的是这两个只出现一次的数字异或的结果。又因为这两个数字不是相等的,那么异或结果必定至少会有一位是1,根据这个1为出现的位置si...

2020-04-25 20:34:08 163

原创 拷贝带随机指针的链表

题目描述现在有一个这样的链表:链表的每一个节点都附加了一个随机指针,随机指针可能指向链表中的任意一个节点或者指向空。请对这个链表进行深拷贝。A linked list is given such that each node contains an additional random pointer which could point to any node in the list or n...

2020-04-24 23:36:25 189

原创 重置单链表(L 0→L n →L 1→L n-1→L 2→L n-2→…)

题目描述将给定的单链表L: L 0→L 1→…→L n-1→L n,重新排序为: L 0→L n →L 1→L n-1→L 2→L n-2→…要求使用原地算法,并且不改变节点的值例如:对于给定的单链表{1,2,3,4},将其重新排序为{1,4,2,3}.Given a singly linked list L: L 0→L 1→…→L n-1→L n,reorder it to: ...

2020-04-24 17:31:26 678

原创 用栈前序、中序、后序遍历二叉树

前序遍历:先访问父结点,接着访问左孩子和右孩子中序遍历:先访问左孩子,接着父结点,最后右孩子后序遍历:先访问左右孩子,后访问父结点分析前序遍历(同时也是DFS)先将根节点进栈,当栈不为空的时候出栈,记下出栈的结点当子树不为空,依次进栈右子树和左子树中序遍历先将根节点进展,当栈不为空的时候先拿栈顶的元素如果有左孩子,进栈左孩子如果上一次访问了它的左孩子或者左孩子为空,出栈,并...

2020-04-23 22:20:29 461

原创 Opencv和python3实现人脸识别(树莓派)

Opencv和python3实现人脸识别..硬件设备树莓3、usb摄像头.语言和库Opencv、python3.第一步:在树莓派上安装opencv和python(用时:约10小时)分别按顺序输入以下的命令,等待安装完成:展开文件系统:$ sudo raspi-config$ sudo reboot$ sudo apt-get purge wolfram-engine...

2020-04-23 20:44:27 2866 3

原创 用插入排序对链表排序(如果有环怎么办?)

分析插入排序就是从头到尾选择一个结点插入到前面的有序数组或者链表中,如果是数组那么可以从当前待插入的元素往前搜索找到插入的位置,单链表只允许从头结点开始往后查找有序链表找到插入的位置。对于本题,先设置一个虚拟结点,后面跟的是排序好了的链表。为什么要设置虚拟结点目的是为了在后面的结点插入到这个带头单链表时可以不用分开考虑是否插入到表头的情况。最后再将排序好的链表的头结点的下一个返回就可以了。...

2020-04-23 15:47:39 145

原创 小米笔试题:树的高度(非给一棵树结构,而是根据输入计算)

题目描述现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度输入描述:输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号输出描述:输出树的高度,为一个整数示例1输入50 10 21 31 4输出3...

2020-04-21 11:43:22 208

原创 单链表排序(时间复杂度O(n logn),常数级空间复杂度)

题目描述在O(n log n)的时间内使用常数级空间复杂度对链表进行排序。Sort a linked list in O(n log n) time using constant space complexity.分析这个时间复杂度O(nlogn)一般就是归并排序,然而要使用常数级的空间,那只能在链表上进行排序而不能转成数组排序后再转换成链表了。归并排序核心思想就是递归地对当前数组或链表...

2020-04-20 15:16:16 2824

原创 计算逆波兰式的值(用到栈)

问题描述计算逆波兰式(后缀表达式)的值运算符仅包含"+","-","“和”/",被操作数可能是整数或其他表达式例如:[“2”, “1”, “+”, “3”, ""] -> ((2 + 1) * 3) -> 9↵ [“4”, “13”, “5”, “/”, “+”] -> (4 + (13 / 5)) -> 6分析逆波兰式简单来说就是将操作符放到数值的后面的表...

2020-04-19 23:50:26 257

原创 一棵树是否为另一颗树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)分析一开始我把子结构理解成一棵树得在另一颗树的末端才算是子结构,后来看了讨论区发现可以位于树的中间位置。深度遍历二叉树知道找到A的一个结点值等于B的根节点的值,然后判断从这两个结点开始对比,B是否在A中。妈耶,居然有点难以确认自己写的判断两棵树是否相同的代码部分是不是正确了…不过这里的写...

2020-04-19 20:42:38 106

原创 矩阵中的路径(满足某个字符串)-回溯法,和机器人走格子的范围类似方法

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 [abcesfcsadee]\left[ \begin{matrix} a & b & c & e\\ s &a...

2020-04-19 17:44:03 105

原创 二叉搜索树的第k小的结点(用栈进行中序遍历)

题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。思路二叉搜索树的特点是:左子树的值比根节点小,右字数的值比根节点要大(不排除等于的情况)。利用搜索二叉树的特点,采用中序遍历二叉搜索树,其结果刚好等于从小到大对二叉树的结点进行排序。如何中序遍历?我知道DFS遍历二叉树用到了栈,中序遍历也用到栈这个...

2020-04-19 00:23:11 175

原创 链表中环的入口结点(快慢指针)

题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。分析根据《剑指offer》上的分析,记得要查找一个链表是否有环,设置两个快慢指针,快指针一次走两步,慢指针一次走一步。如果链表有环,这两个指针必定会相遇。于是,解决这道题的第一步,先要判断链表是否有环;若有环,接下来需要找环的入口结点。同样是两个指针,一个指针还在原来快慢指针相遇的地方开始遍历,另一个指针从头...

2020-04-18 13:47:08 222

原创 构建乘积数组(根据数组A构建数组B-矩阵)

题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)思路可以运用到矩阵的思想来降低运算的时间复杂度。如图是A和...

2020-04-17 23:51:45 223

原创 翻转英文语句中单词的顺序

题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?思路看到讨论区第一的...

2020-04-17 10:56:28 291

原创 和为S的连续整数序列。感觉是找规律系列,有点绕

题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!思路这些连续的正数序列,前后组成一对,一...

2020-04-16 21:27:32 145

原创 两个链表的第一个公共结点

题目描述输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)思路两个链表结构像是一个“Y”,这个第一个公共结点就是这个Y的中间那个点(不是找相同的那个结点)。设置两个指针,让他们分别跟踪一个链表,如果长度相同,第一趟就能找到(这个很容易想到,对一下这个“Y)若长度不一样,当跟踪指针走到某条链表最后,继续走另一...

2020-04-15 21:38:17 54

原创 数组中只出现一次的两个数(异或)

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。解决思路这道题用异或来解决非常巧妙,理解了为什么这么做后就有一种毛塞顿开的感觉。利用“其他数字都出现两次”的条件,从头到尾进行异或运算,相同的数异或为0,那么一趟异或下来所有出现了两次的数都相互抵消了。异或最终结果的二进制必定至少有一个1,因为这两个只出现了一次的数是不相同的。从低位开始...

2020-04-15 14:07:02 238

原创 找到丑数(剑指offer)

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。题目分析一开始我以为丑数是它的因子只能为2,3和5,再看了一遍题目,丑数是它的质数因子只能为2,3和5,意味着可以包含非质数的因子。解题思路丑数都是由丑数*丑数得来的,如2 ∗\ast∗ 13 ∗...

2020-04-14 21:58:38 87

原创 整数中“1”出现的个数

题目描述求出1-13的整数中1出现的次数,并算出100-1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1到n中1出现的次数)。解决思路要计算某一个整数中数字“1”出现的次数,可以运用到取余运算,从低位开始...

2020-04-14 17:02:49 120

原创 连续子数组的最大和(java)

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列...

2020-04-14 16:20:27 157

空空如也

空空如也

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

TA关注的人

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