![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法刷题集
文章平均质量分 85
Saul Zhang
https://github.com/SaulZhang
展开
-
20. Valid Parentheses
20. Valid Parenthesesdescription:题解:solution1:声明一个栈,从头到尾遍历一遍字符串,如果遇到左括号则压栈,遇到右括号则取栈顶元素与当前遍历的元素进行匹配,若匹配则继续遍历字符串,若不匹配直接返回false,只得到字符串遍历结束。判断当前栈是否为空,若为空则返回True,若不为空则返回False。除此之外还需要注意一些特殊情况的处理。以下为py...原创 2018-10-17 22:04:29 · 132 阅读 · 0 评论 -
7. Reverse Integer
Reverse IntegerDescription:原创 2018-10-15 08:32:40 · 96 阅读 · 0 评论 -
1.Two Sum
1.Two Sum题解暴力搜索O(N²):两次遍历数组,两两相加找到符合条件的答案。O(N)解法:初始化已给空字典dict,对整个数组从前往后遍历一遍(k:0->len(list)),对于遍历到的值,如果该值不存在于字典中,则将target减去当前值作为key,把当前的k作为value存入到字典当中,如果当前的值已经存在于字典的keys当中,那么输出[dict[num[i]],i...原创 2018-10-15 09:09:06 · 140 阅读 · 0 评论 -
21. Merge Two Sorted Lists
21. Merge Two Sorted Listsdescription:Solutionsolution1:暴力遍历声明一个空的链表linkList3,然后一起遍历了linkList1和linkList2,每次取最小的元素接到linkList3中,然后对应的两遍当前指针往后移动,当两个链表中出现一个链表为空的时候,就把另一个链表直接接在linkList3的后面。Python3实现代...原创 2018-10-18 15:15:53 · 110 阅读 · 0 评论 -
14. Longest Common Prefix
14. Longest Common PrefixDescription:题解:Solution1:先找出list中长度最小的元素min_str,然后以此长度作为待匹配前缀的最长长度,两层遍历,第一层为min_str的长度,第二层为list的数组元素,按字母的先后顺序逐字母进行匹配,每遍历完一遍list之后,统计匹配的个数cnt,如果cnt等于len(list)-1,则当前字母匹配成功,在...原创 2018-10-16 10:55:29 · 129 阅读 · 0 评论 -
动态规划小结
动态规划1、矩阵链问题(加括号问题)2、三角形最优剖分问题(加括号问题与矩阵链问题同构)3、最长公共递增子序列问题4、电路布线问题5、图像压缩问题6、最大子段和问题7、投资问题8、背包问题9、最优二叉搜索树问题10、流水作业问题11、序列匹配问题12、总结...原创 2018-12-11 17:38:37 · 430 阅读 · 2 评论 -
回溯法
回溯法1、N皇后问题2、旅行售货员问题3、转载问题4、图的m着色问题5、最大团问题:原创 2018-12-11 17:44:30 · 259 阅读 · 0 评论 -
136. Single Number
1.description2.Solution这道题一看就感觉是水题,但注意到要在线性的时间里面,不开辟额外的存储空间,那么确实是有点棘手。看了社区的讨论原来python可以用一行就能求解。是什么方法这么厉害?那就是Xor操作了,直观的感受两个相同的数取异或(转为二进制,按位取异或)之后最终的结果就是0,那么只要遍历一遍数组,对异或进行累积,那么最终得到的就是那个独立的数了。指的注意的是初值...原创 2018-12-19 09:42:28 · 90 阅读 · 0 评论 -
63. Unique Paths II
1、Description样例2.思路--动态规划首先该问题由于限定了移动的方向只能向右或者向下,因此该问题具有最优子结构的性质。不难得到规划矩阵m,其中m[i][j]表示走到地图中(i,j)的路径数,那么可以得到以下的递推方程。 m[i,j] = m[i][j-1] + m[i-1][j]对于所给的case的递推矩阵如下所示,红色部分为初始化的结果,绿色部分为...原创 2019-01-20 11:37:36 · 165 阅读 · 0 评论 -
64. Minimum Path Sum
1、Description2、题解--动态规划由于从地图的左上角走到地图的右下角的过程中,只能向右走或者向下走,因此该问题具有最优子结构性质,定义规划矩阵C,其中矩阵元素C[i][j]表示走到(i,j)这个点的最小代价。则可以得到如下递推方程:C[i][j] = max(C[i-1][j],C[i][j-1])+grid[i][j]上述case递推求解所得到的规划矩阵最终结果如...原创 2019-01-20 12:13:36 · 101 阅读 · 0 评论 -
152. Maximum Product Subarray
1、Description2、题解思路对于该问题,需要与之前的最大子段和进行区别,最大值段和产生以nums[i]元素结尾的局部最大值maxVal[i]的时候,只需要获取maxVal[i-1]+nums[i]和nums[i]之间的较大值即可。而该问题为最大子段乘积问题,如果所给的数全都为正整数,那么其递推方程的定义与最大子和是一样的,只不过把加号换成了乘号,然而对于该问题所给的元素也有可能是负...原创 2019-01-21 22:35:24 · 101 阅读 · 0 评论 -
Coincidence (九度教程第 98 题)
Coincidence (九度教程第 98 题)时间限制:1 秒 内存限制:32 兆 特殊判题:否1.题目描述:Find a longest common subsequence of two strings.输入:First and second line of each input case contain two strings of lowercasecharacter a…...原创 2019-02-14 16:30:33 · 275 阅读 · 0 评论 -
213. House Robber II
1、Description2、题解思路该问题和之前的House Robber I问题基本类似,只不过多了一个小变化,就是所有的城市现在围成一个环状,也就是多了个限制:不允许数组头尾的两家银行同时被盗。由House Robber I不难得到递推方程rob[i]=maxrob[i−2]∗nums[i],rob[i−1]rob[i]=max{rob[i-2]*nums[i] ,rob[i-1]}r...原创 2019-01-23 11:20:40 · 145 阅读 · 0 评论 -
121. Best Time to Buy and Sell Stock
1、Description2、题解solution1:由于只能买卖一只股票,所以最简单的方法就是采用暴力遍历两层for循环找出所有的两两配对的收益,获得最大值,这样一来时间复杂度就是O(n²),提交时运行效率只打败了1.36%的人,显然还有很大的优化空间。solution2:那么该问题有没有O(n)的解决方法呢?有的,其实该问题的主要目的就是求解后面的值与前面之间的最大差值,那么其实只需要...原创 2019-01-23 13:33:11 · 125 阅读 · 0 评论 -
122. Best Time to Buy and Sell Stock II
1、Description2、题解思路该题是在121. Best Time to Buy and Sell Stock的基础上进行改进的,在121中每一次至多只能进行一笔交易,但在该问题中交易次数是不限制的,因此也加大了难度,但其思路仍然与121类似,一样可以把所有的数值看做还是二维平面上的点,该时刻的数值就是点的高度。以用例[7,1,5,3,6,4]为例。可以画出如下的图像。在图中我们...原创 2019-01-23 17:41:53 · 154 阅读 · 0 评论 -
人见人爱 A ^ B (九度教程第 57 题)
人见人爱 A ^ B (九度教程第 57 题)时间限制:1 秒 内存限制:128 兆 特殊判题:否1.描述:求 A^B 的最后三位数表示的整数。说明: A^B 的含义是“A 的 B 次方”输入:输入数据包含多个测试实例,每个实例占一行,由两个正整数 A 和 B 组成( ),如果 A=0, B=0,则表示输入数据的结束,不做处理。:1<=A,B<=10000输出对于每个测...原创 2019-02-21 17:03:37 · 445 阅读 · 0 评论 -
采药(九度教程第 101 题)
采药(九度教程第 101 题)时间限制:1 秒 内存限制:32 兆 特殊判题:否1.题目描述:辰辰是个很有潜能、天资聪颖的孩子,他的梦想是称为加粗样式世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到个到处都是草药的山洞里对他说: “孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,...原创 2019-02-15 23:12:48 · 181 阅读 · 0 评论 -
畅通工程(九度 OJ 1012)
畅通工程(九度 OJ 1012)时间限制:1 秒 内存限制:128 兆 特殊判题:否1.题目描述:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?输入:测试输入包含若干测试用例。每个测试用例的第 1 行给出...原创 2019-02-09 21:37:04 · 525 阅读 · 0 评论 -
More is better (九度 OJ 1444)
More is better (九度 OJ 1444)时间限制:1 秒 内存限制:100 兆 特殊判题:否**1.题目描述:**Mr Wang wants some boys to help him with a project. Because the project israther complex, the more boys come, the better it will be. ...原创 2019-02-09 22:09:04 · 208 阅读 · 0 评论 -
二叉树遍历(九度教程第 32 题)
二叉树遍历(九度教程第 32 题)时间限制:1 秒 内存限制:32 兆 特殊判题:否1.题目描述:二叉树的前序、中序、后序遍历的定义:前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树;后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。给定一棵二叉树的前序遍历和中序遍历,求其后序遍历...原创 2019-02-09 22:25:15 · 327 阅读 · 0 评论 -
二叉排序树 (九度教程第 35 题)
二叉排序树 (九度教程第 35 题)时间限制:1 秒 内存限制:32 兆 特殊判题:否1.题目描述:输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入:输入第一行包括一个整数 n(1<=n<=100)。接下来的一行包括 n 个整数。输出:可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。每种遍历结果...原创 2019-02-09 22:33:15 · 293 阅读 · 0 评论 -
a+b(九度教程第 60 题)
a+b(九度教程第 60 题)时间限制:1 秒 内存限制:32 兆 特殊判题:否1.题目描述:实现一个加法器,使其能够输出 a+b 的值。输入:输入包括两个数 a 和 b,其中 a 和 b 的位数不超过 1000 位。输出:可能有多组测试数据,对于每组数据,输出 a+b 的值。样例输入:2 610000000000000000000 100000000000000000000...原创 2019-02-21 21:03:25 · 408 阅读 · 0 评论 -
还是畅通工程 (九度 OJ 1017)
还是畅通工程 (九度 OJ 1017)时间限制:1 秒 内存限制:128 兆 特殊判题:否1.题目描述:某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。输入:测试输入包含若干测试用例。每个测试用例的第 1...原创 2019-02-09 23:03:51 · 175 阅读 · 0 评论 -
Freckles(九度 OJ 1144)
Freckles(九度 OJ 1144)时间限制:1 秒 内存限制:128 兆 特殊判题:否1.题目描述:In an episode of the Dick Van Dyke show, little Richie connects the freckles onhis Dad’s back to form a picture of the Liberty Bell. Alas, one...原创 2019-02-10 00:05:26 · 460 阅读 · 0 评论 -
最短路 (九度 OJ 1447)
最短路 (九度 OJ 1447)时间限制:1 秒 内存限制:128 兆 特殊判题:否1.题目描述:在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的 t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?输入:输入包括多组数据。每组数据第一行是两个整数 N、M(N<=100,M&a原创 2019-02-10 14:10:14 · 293 阅读 · 0 评论 -
最短路径问题 (九度 OJ 1008)
5.6 最短路径问题 (九度 OJ 1008)时间限制:1 秒 内存限制:128 兆 特殊判题:否1.题目描述:给你 n 个点, m 条无向边,每条边都有长度 d 和花费 p,给你起点 s 终点 t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。输入:输入 n,m,点的编号是 1~n,然后是 m 行,每行 4 个数 a,b,d,p,表示 a 和 b...原创 2019-02-10 18:45:09 · 614 阅读 · 0 评论 -
Leagal or Not (九度 OJ 1448)
Leagal or Not (九度 OJ 1448)时间限制:1 秒 内存限制:128 兆 特殊判题:否1.题目描述:ACM-DIY is a large QQ group where many excellent acmers get together. It is so harmonious that just like a big family. Every day,many “ho...原创 2019-02-10 23:32:01 · 192 阅读 · 0 评论 -
胜利大逃亡 (九度 OJ 1456)
胜利大逃亡 (九度 OJ 1456)时间限制:2 秒 内存限制:32 兆 特殊判题:否1.题目描述:Ignatius 被魔王抓走了,有一天魔王出差去了,这可是 Ignatius 逃亡的好机会.魔王住在一个城堡里,城堡是一个 ABC 的立方体,可以被表示成 A 个 B*C 的矩阵,刚开始 Ignatius 被关在(0,0,0)的位置,离开城堡的门在(A-1,B-1,C-1)的位置,现在...原创 2019-02-11 01:20:14 · 394 阅读 · 0 评论 -
汉诺塔 III(九度 OJ 1458)
汉诺塔 III(九度 OJ 1458)时间限制:1 秒 内存限制:32 兆 特殊判题:否1.题目描述:约 19 世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由 64 个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。现在我们改变游戏的玩法,不允许直接从最左(右)边移到最右(...原创 2019-02-11 16:39:08 · 238 阅读 · 1 评论 -
Prime ring problem (九度 OJ 1459)
Prime ring problem (九度 OJ 1459)时间限制:2 秒 内存限制:32 兆 特殊判题:否1.题目描述:A ring is compose of n circles as shown in diagram. Put natural number 1, 2, …, n into each circle separately, and the sum of numbers...原创 2019-02-11 17:21:52 · 325 阅读 · 0 评论 -
九度OJ 1074 (对称平方数)
九度OJ 1074 (对称平方数)1.题目描述:打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121输入:无任何输入数据输出:输出具有题目要求的性质的数。如果输出数据不止一组,各组数据之间以回车隔开。2.代码实现#include <iostream>#include <stdio.h>#define N 7//wo...原创 2019-02-27 15:16:24 · 233 阅读 · 0 评论 -
Digital Root(九度教程第 42 题);
Digital Root(九度教程第 42 题)1.题目描述:The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then that digit is the digital root. If...原创 2019-02-27 15:31:25 · 1008 阅读 · 0 评论 -
非常可乐(九度 OJ 1457)
非常可乐(九度 OJ 1457)时间限制:1 秒 内存限制:32 兆 特殊判题:否1.题目描述:大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后,阿牛就要求和 seeyou 一起分享这一瓶可乐,而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子,它们的容量分别是 N 毫升和 M 毫升 可乐的体积...原创 2019-02-11 21:21:36 · 622 阅读 · 1 评论 -
Oil Deposit(九度 OJ 1460)
Oil Deposit(九度 OJ 1460)时间限制:1 秒 内存限制:32 兆 特殊判题:否1.题目描述:The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular ...原创 2019-02-12 00:16:37 · 208 阅读 · 0 评论 -
A+B (九度教程第 43题 )
A+B (九度教程第 43题 )1.描述:输入两个不超过整型定义的非负 10 进制整数 A 和 B(&lt;=231-1),输出 A+B的 m (1 &lt; m &lt;10)进制数。输入:输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出 m 和A, B 的值。当 m 为 0 时输入结束。输出:输出格式:每个测试用例的输出占一行,输出 A+B 的 m 进制数。样例输...原创 2019-02-27 17:28:41 · 290 阅读 · 0 评论 -
数制转换(九度教程第 44题)
数制转换(九度教程第 44题)1.题目描述:求任意两个不同进制非负整数的转换(2 进制~16 进制),所给整数在 long所能表达的范围之内。不同进制的表示符号为(0, 1, …, 9, a, b, …, f)或者(0, 1, …, 9, A, B, …, F)。输入:输入只有一行,包含三个整数 a, n, b。 a 表示其后的 n 是 a 进制整数, b表示欲将 a 进制整数 n 转换...原创 2019-02-27 19:06:00 · 313 阅读 · 0 评论 -
进制转换(九度教程第 45 题)
进制转换(九度教程第 45 题)1.题目描述将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。输入描述:多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数)输出描述:每行输出对应的二进制数。示例1输入复制0138输出复制011110002.基本思路java大数直接上3.代码...原创 2019-02-27 19:49:42 · 385 阅读 · 0 评论 -
八进制(九度教程第 46 题)
八进制(九度教程第 46 题)1.题目描述输入一个整数,将其转换成八进制数输出。输入描述:输入包括一个整数N(0&lt;=N&lt;=100000)。输出描述:可能有多组测试数据,对于每组数据,输出N的八进制表示数。示例1输入复制789输出复制710112.基本思路直接对十进制求余,除法转为8进制。或者java直接toString(8)上3.代码实现...原创 2019-02-27 20:27:10 · 436 阅读 · 0 评论 -
Temple of the bone(九度 OJ 1461)
Temple of the bone(九度 OJ 1461)时间限制:1 秒 内存限制:32 兆 特殊判题:否1.题目描述:The doggie found a bone in an ancient maze, which fascinated him a lot.However, when he picked it up, the maze began to shake, and the...原创 2019-02-12 23:54:40 · 210 阅读 · 0 评论 -
最大公约数 (九度教程第 47题)
最大公约数 (九度教程第 47题)时间限制:1 秒 内存限制:32 兆 特殊判题:否1.题目描述:输入两个正整数,求其最大公约数。输入:测试数据有多组,每组输入两个正整数。输出:对于每组输入,请输出其最大公约数。样例输入:49 14样例输出:7来源:2011 年哈尔滨工业大学计算机研究生机试真题2.基本思路欧几里得算法3.代码实现#include &lt;io...原创 2019-02-28 15:46:46 · 260 阅读 · 0 评论