刷题
黑衣骑士兴
这个作者很懒,什么都没留下…
展开
-
最长公共子序列(C++)(动态规划)(求子序列)
题目描述给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则输出-1。示例1输入"1A2C3D4B56","B1D23CA45B6A"返回值"123456"说明"123456"和“12C4B6”都是最长公共子序列,任意输出一个。1、先求出最长公共子序列长度2、再求出子序列class Solution {public: /** * longest common subsequence *原创 2021-04-21 18:37:27 · 484 阅读 · 0 评论 -
岛屿数量(C++)(DFS)(遍历所有点)
题目描述给一个01矩阵,1代表是陆地,0代表海洋,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。示例1输入[[1,1,0,0,0],[0,1,0,1,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,1,1,1]]返回值31、考察:类似城堡问题,遍历所有点2、更改grid[i][j]的值,来表示是否被访问过class Solution {public: .原创 2021-04-21 18:14:50 · 701 阅读 · 0 评论 -
加起来和为目标值的组合(C++)(DFS)(求组合)
题目描述给出一组候选数\ CC和一个目标数\ TT,找出候选数中起来和等于\ TT的所有组合。\ CC中的每个数字在一个组合中只能使用一次。注意:题目中所有的数字(包括目标数\ TT)都是正整数 组合中的数字 (a_1, a_2, … , a_ka1,a2,…,ak) 要按非递增排序 (a_1 \leq a_2 \leq … \leq a_ka1≤a2≤…≤ak). 结果中不能包含重复的组合 组合之间的排序按照索引从小到大依次比较,小的排在前面,如果索引相同...原创 2021-04-21 17:07:24 · 607 阅读 · 0 评论 -
二维数组查找(C++)(二分查找)
题目描述已知int一个有序矩阵mat,同时给定矩阵的大小n和m以及需要查找的元素x,且矩阵的行和列都是从小到大有序的。设计查找算法返回所查找元素的二元数组,代表该元素的行号和列号(均从零开始)。保证元素互异。示例1输入[[1,2,3],[4,5,6]],2,3,6返回值[1,2]考察:本质为二分查找,排除不可能的选项,缩小查找范围class Solution {public: vector<int> findElement(vector<ve原创 2021-04-21 16:19:09 · 198 阅读 · 0 评论 -
矩阵最小路径和(C++)(动态规划)(求路径和)
题目描述给定一个n * m的矩阵a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。示例1输入[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]返回值12class Solution {public: /** * * @param matrix int整型vector<vector<>> the matri...原创 2021-04-21 16:03:29 · 1800 阅读 · 0 评论 -
最长公共子串(C++)(动态规划)(求子串)
题目描述给定两个字符串str1和str2,输出两个字符串的最长公共子串题目保证str1和str2的最长公共子串存在且唯一。示例1输入"1AB2345CD","12345EF"返回值"2345"class Solution {public: /** * longest common substring * @param str1 string字符串 the string * @param str2 string字符串 the str原创 2021-04-21 15:40:17 · 635 阅读 · 0 评论 -
最长公共子序列(C++)(动态规划)(求长度)
给定两个字符串A和B,返回两个字符串的最长公共子序列的长度。例如,A="1A2C3D4B56”,B="B1D23CA45B6A”,”123456"或者"12C4B6"都是最长公共子序列。给定两个字符串A和B,同时给定两个串的长度n和m,请返回最长公共子序列的长度。保证两串长度均小于等于300。测试样例:"1A2C3D4B56",10,"B1D23CA45B6A",12返回:6class LCS {public: int findLCS(string A, int n, s原创 2021-04-21 14:37:57 · 459 阅读 · 0 评论 -
最长回文子串(C++)(暴力)
题目描述对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。给定字符串A以及它的长度n,请返回最长回文子串的长度。示例1输入复制"abc1234321ab",12返回值复制7解法一:暴力法穷举所有子串 判断每一个子串是不是回文子串,并更新最大长度 class Solution {public: int getLongestPalindrome(string A, int n) { // write code here原创 2021-04-21 14:21:42 · 422 阅读 · 0 评论