![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
豌豆射手GCC
这个作者很懒,什么都没留下…
展开
-
二叉树前序遍历转KMP+二叉树匹配 572. 另一个树的子树
572. 另一个树的子树给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1:给定的树 s: 3 / \ 4 5 / \ 1 2给定的树 t: 4 / \ 1 2返回 true,因为 t 与 s 的...原创 2020-05-07 13:20:35 · 162 阅读 · 0 评论 -
KMP(最长相同前后缀)+字符串匹配+双指针 28. 实现 strStr() 214. 最短回文串
28. 实现 strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaa...原创 2020-05-02 15:50:32 · 695 阅读 · 0 评论 -
子数组处理+数学+滑动窗口+下标保存 leetcode 1248. 统计「优美子数组」
1248. 统计「优美子数组」给你一个整数数组 nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。示例 2:输入:nums =...原创 2020-04-21 22:42:23 · 259 阅读 · 0 评论 -
DFS+最大连通子图数量 200. 岛屿数量+130. 被围绕的区域
200. 岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3...原创 2020-04-20 13:00:49 · 570 阅读 · 0 评论 -
递归+vector+string leetcode 51. N皇后+52. N皇后 II
N皇后n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:输入: 4输出: [ [".Q..", // 解法 1 "...Q",...原创 2020-04-19 19:51:47 · 154 阅读 · 0 评论 -
表排序+环的分类 1067 Sort with Swap(0, i) (25分)
1067 Sort with Swap(0, i) (25分)Given any permutation of the numbers {0, 1, 2,…, N−1}, it is easy to sort them in increasing order. But what if Swap(0, *) is the ONLY operation that is allowed to use?...原创 2020-04-19 12:40:13 · 173 阅读 · 0 评论 -
结构数组排序+compare函数+多细节 1075 PAT Judge (25分)
1075 PAT Judge (25分)The ranklist of PAT is generated from the status list, which shows the scores of the submissions. This time you are supposed to generate the ranklist for PAT.Input Specification:...原创 2020-04-18 15:18:43 · 238 阅读 · 0 评论 -
双指针 leetcode11. 盛最多水的容器+42. 接雨水
11. 盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容...原创 2020-04-18 13:43:12 · 215 阅读 · 0 评论 -
leetcode vector+区间合并 56. 合并区间+57. 插入区间
56. 合并区间给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重...原创 2020-04-16 14:49:17 · 155 阅读 · 0 评论 -
排序算法 冒泡+插入+希尔+选择+堆排序+归并+快排
冒泡排序特点:稳定排序优点:可用于链表排序,数组排序复杂度:顺序最好O(N),逆序最坏O(N^2)插入排序特点:稳定排序复杂度:顺序最好O(N),逆序最坏O(N^2)void InsertionSort( ElementType A[], int N ){ /* 插入排序 */ int P, i; ElementType Tmp; for...原创 2020-04-15 14:49:37 · 145 阅读 · 0 评论 -
AOE 拓扑排序+求最短工期+求各边的机动时间+得到关键路径 08-图9 关键活动 (30分)
08-图9 关键活动 (30分)假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同...原创 2020-04-15 00:11:20 · 3165 阅读 · 0 评论 -
C 最小生成树 + Prim算法 08-图7 公路村村通 (30分)
08-图7 公路村村通 (30分)现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通...原创 2020-04-14 14:51:39 · 405 阅读 · 0 评论 -
C 拓扑排序+求总工期时长 08-图8 How Long Does It Take (25分)
08-图8 How Long Does It Take (25分)Given the relations of all the activities of a project, you are supposed to find the earliest completion time of the project.Input Specification:Each input file con...原创 2020-04-14 14:41:09 · 240 阅读 · 0 评论 -
最小生成树 Prim算法 Kruskal算法
最小生成树的特征树的特征:1.无回路2.V个顶点有V-1条边生成树的特征:1.包含树的所有顶点2.V-1条边都在图里最小:边的权重和最小Prim算法每次找到树外面的边权值最小的结点;将该结点加入树内;关键点找结点时需要同时满足1.只能用图里已有的边连接结点2.只能正好用掉V-1条边3.加入新的结点后不能有回路出现解决办法如何判断结点是否收录进树中:收录后的结点与树...原创 2020-04-14 14:20:32 · 166 阅读 · 0 评论 -
1018 DFS求最短路径+记录路径+路径结点权值的比较 Public Bike Management (30分)
1018 Public Bike Management (30分)There is a public bike service in Hangzhou City which provides great convenience to the tourists from all over the world. One may rent a bike at any station and retur...原创 2020-04-13 21:16:18 · 478 阅读 · 0 评论 -
C DFS+最短路径+邻接表表示+地铁换乘(map保存地铁线路) 1131 Subway Map (30分)
1131 Subway Map (30分)In the big cities, the subway systems always look so complex to the visitors. To give you some sense, the following figure shows the map of Beijing subway. Now you are supposed t...原创 2020-04-12 22:49:56 · 2330 阅读 · 0 评论 -
C Dijkstra+结点权值+边权值+统计边数+统计最短路径个数+保存路径 1087 All Roads Lead to Rome (30分)
1087 All Roads Lead to Rome (30分)Indeed there are many different tourist routes from our city to Rome. You are supposed to find your clients the route with the least cost while gaining the most happi...原创 2020-04-12 13:25:45 · 296 阅读 · 0 评论 -
C Dijkstra算法 多次使用 1072 Gas Station (30分)
1072 Gas Station (30分)A gas station has to be built at such a location that the minimum distance between the station and any of the residential housing is as far away as possible. However it must gua...原创 2020-04-11 22:26:17 · 176 阅读 · 0 评论 -
C Dijkstra拓展 含结点权重 1003 Emergency (25分)
1003 Emergency (25分)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams i...原创 2020-04-11 14:59:58 · 133 阅读 · 0 评论 -
C 图的链表表示 和 邻接矩阵表示
图的链表表示单源无权最短路径——BFS可以考虑用链表表示——更节省内存空间;#define MaxVertexNum 100 /* 最大顶点数设为100 */typedef int Vertex; /* 用顶点下标表示顶点,为整型 */typedef int WeightType; /* 边的权值设为整型 */typedef char DataTyp...原创 2020-04-10 23:45:11 · 316 阅读 · 0 评论 -
C Dijkstra 算法 floyd算法 拓展 07-图6 旅游规划 (25分)
07-图6 旅游规划 (25分)有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速...原创 2020-04-10 21:38:48 · 1071 阅读 · 0 评论 -
C Floyd算法 邻接矩阵表示图 07-图4 哈利·波特的考试 (25分)
07-图4 哈利·波特的考试 (25分)哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。现在...原创 2020-04-09 21:44:51 · 334 阅读 · 0 评论 -
leetcode 1162 BFS地图分析
1162. 地图分析你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离。我们这里说的距离是『曼哈顿距离』( Manhattan Distance):(x0, y0) 和 (x1, y1) 这两个区域之间...原创 2020-03-30 11:35:14 · 129 阅读 · 0 评论 -
C++ 枚举 002:拨钟问题
002:拨钟问题总时间限制: 1000ms 内存限制: 65536kB描述有9个时钟,排成一个3*3的矩阵。|-------| |-------| |-------|| | | | | | ||---O | |---O | | O || | | | | ...原创 2020-03-25 15:33:36 · 1187 阅读 · 2 评论 -
C++ 枚举 001:特殊密码锁
001:特殊密码锁总时间限制: 1000ms 内存限制: 1024kB描述有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态。然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转。当然,如果你按的是最左或者最右边的按钮,该按钮只会影响到跟它相邻的一个按钮。当前密码锁状态已知,需要解决的问题是,你至少需要按多少次按钮...原创 2020-03-25 15:22:53 · 702 阅读 · 0 评论 -
C++ 递归 002:2的幂次方表示
002:2的幂次方表示总时间限制: 1000ms 内存限制: 65536kB描述任何一个正整数都可以用2的幂次方表示。例如:137=27+23+20同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示) 3=2+20所以最后137可表示为:2(2(2)+2+2(0))+2(2...原创 2020-03-25 15:13:45 · 388 阅读 · 0 评论 -
递归 001:全排列
001:全排列总时间限制: 1000ms 内存限制: 65536kB描述给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有’a’ < ‘b’ < … < ‘y’ < ‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。输出输出这个...原创 2020-03-25 13:52:36 · 224 阅读 · 0 评论 -
递归 002:简单的整数划分问题
002:简单的整数划分问题总时间限制: 100ms 内存限制: 65536kB描述将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。正整数n 的这种表示称为正整数n 的划分。正整数n 的不同的划分个数称为正整数n 的划分数。输入标准的输入包含若干组测试数据。每组测试数据是一个整数N(0 &l...原创 2020-03-24 19:32:15 · 304 阅读 · 0 评论 -
递归 001:Boolean Expressions
001:Boolean Expressions总时间限制: 1000ms 内存限制: 65536kB描述The objective of the program you are going to produce is to evaluate boolean expressions as the one shown next:Expression: ( V | V ) & F &am...原创 2020-03-24 19:17:41 · 198 阅读 · 0 评论 -
BFS 迷宫问题
001:迷宫问题总时间限制: 1000ms 内存限制: 65536kB描述定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程...原创 2020-03-24 11:39:45 · 263 阅读 · 1 评论 -
动态规划+中心拓展法 5. 最长回文子串.516. 最长回文子序列 647. 回文子串
5. 最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”解题思路子串问题,动态规划1.最优子问题dp[i][j],表示第i个字符到第j个字符是否是回文字符串若dp[i+1][j-1]是回文字...原创 2020-03-23 16:30:16 · 173 阅读 · 0 评论 -
二分算法
001:Aggressive cows总时间限制: 1000ms 内存限制: 65536kB描述Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,…,xN (0 ...原创 2020-03-23 11:42:20 · 157 阅读 · 0 评论 -
DFS+动态规划 10 正则表达式匹配
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = “aa”p = “...原创 2020-03-22 13:32:12 · 170 阅读 · 0 评论 -
分治 002:求排列的逆序数
002:求排列的逆序数总时间限制: 1000ms 内存限制: 65536kB描述在Internet上的搜索引擎经常需要对信息进行比较,比如可以通过某个人对一些事物的排名来估计他(或她)对各种不同信息的兴趣,从而实现个性化的服务。对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n的排列i1,i2,…,in,如果其中存在j,k,满足 j < k 且 ij > ik...原创 2020-03-22 11:30:54 · 490 阅读 · 0 评论 -
分治 001:输出前k大的数
001:输出前k大的数总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB描述给定一个数组,统计前k大的数并且把这k个数从大到小输出。输入第一行包含一个整数n,表示数组的大小。n < 100000。第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。第三行包含一个整数k。k < n。...原创 2020-03-22 11:19:11 · 552 阅读 · 1 评论 -
动态规划 003:最佳加法表达式
003:最佳加法表达式总时间限制: 1000ms 内存限制: 65536kB描述给定n个1到9的数字,要求在数字之间摆放m个加号(加号两边必须有数字),使得所得到的加法表达式的值最小,并输出该值。例如,在1234中摆放1个加号,最好的摆法就是12+34,和为36输入有不超过15组数据每组数据两行。第一行是整数m,表示有m个加号要放( 0<=m<=50)第二行是若干个数字。...原创 2020-03-21 12:26:09 · 949 阅读 · 0 评论 -
动态规划 002:Zipper
002:Zipper总时间限制: 1000ms 内存限制: 65536kB描述Given three strings, you are to determine whether the third string can be formed by combining the characters in the first two strings. The first two strings c...原创 2020-03-21 11:34:28 · 268 阅读 · 0 评论 -
动态规划 001:拦截导弹
001:拦截导弹总时间限制: 1000ms 内存限制: 65536kB描述某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面...原创 2020-03-21 10:57:10 · 490 阅读 · 0 评论 -
动态规划 003:分蛋糕
003:分蛋糕总时间限制: 1000ms 内存限制: 65536kB描述有一块矩形大蛋糕,长和宽分别是整数w 、h。现要将其切成m块小蛋糕,每个小蛋糕都必须是矩形、且长和宽均为整数。切蛋糕时,每次切一块蛋糕,将其分成两个矩形蛋糕。请计算:最后得到的m块小蛋糕中,最大的那块蛋糕的面积下限。假设w= 4, h= 4, m= 4,则下面的切法可使得其中最大蛋糕块的面积最小。假设w= 4, h...原创 2020-03-20 19:38:08 · 862 阅读 · 1 评论 -
动态规划 002:Charm Bracelet
Charm Bracelet总时间限制: 1000ms 内存限制: 65536kB描述Bessie has gone to the mall’s jewelry store and spies a charm bracelet. Of course, she’d like to fill it with the best charms possible from the N(1 ≤ N≤ 3...原创 2020-03-20 19:11:01 · 291 阅读 · 0 评论