![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
做题
文章平均质量分 78
� 晶妹妹
这个作者很懒,什么都没留下…
展开
-
【LeetCode】最长公共子子串
目录问题分析图表分析代码实现问题分析和LCS问题唯一不同的地方在于当A[i] != B[j]时,res[i][j]就直接等于0了,因为子串必须连续,且res[i][j] 表示的是以A[i],B[j]截尾的公共子串的长度。图表分析代码实现#include <stdio.h>#include <string.h> #define N 256int f(const char* s1, const char* s2){ int a[N][N]; int len1 =原创 2020-06-25 23:19:33 · 626 阅读 · 0 评论 -
【LeetCode】LCS最长公共子序列
最长公共子序列题目描述思路分析递归结构算法实现输出最长子序列算法实现题目描述思路分析设A=“a0,a1,…,am”,B=“b0,b1,…,bn”,且Z=“z0,z1,…,zk”为它们的最长公共子序列。不难证明有以下性质:如果am=bn,则zk=am=bn,且“z0,z1,…,z(k-1)”是“a0,a1,…,a(m-1)”和“b0,b1,…,b(n-1)”的一个最长公共子序列;如果am!=bn,则若zk!=am,蕴涵“z0,z1,…,zk”是“a0,a1,…,a(m-1)”和“b0,b1,…,b原创 2020-06-25 23:01:02 · 371 阅读 · 0 评论 -
【LeetCode】动态规划相关问题汇总
动态规划相关问题汇总动态规划基础70. 爬楼梯题目描述题解1 使用数组题解2 两个临时变量120. 三角形最短路径和题目描述题解1 两行变量记录 复杂度O(n)题解2 一行变量 自顶向下 空间复杂度O(n)题解3 自底向上 不需要额外空间343. 整数拆分题目描述题解1 动态规划279. 完全平方数题目描述题解1 使用队列进行图的遍历(时间较短)题解2 动态规划91. 解码方法题目描述题解1 难点在于分类讨论62. 不同路径题目描述题解163. 不同路径 II题目描述题解1 额外空间题解2 不使用额外空间原创 2020-06-25 20:21:40 · 482 阅读 · 0 评论 -
【LeetCode】递归回溯相关问题汇总
递归回溯相关问题汇总树形问题17. 电话号码的字母组合题目描述题解1 使用vector储存临时结果93. 复原IP地址题目描述题解1 回溯+剪枝131. 分割回文串题目描述题解1 遍历以每个字母为起点的所有可能排列问题46. 全排列题目描述题解1 使用visited记录之前是否使用过该元素47 全排列Ⅱ题目描述题解1 使用map容器记录使用次数 每个位置只能使用一次该元素避免重复题解2 使用vector排序 如果nums[i]==nums[i-1]就跳过组合问题及优化77. 组合题目描述题解1 回溯题解2原创 2020-06-25 17:47:41 · 210 阅读 · 0 评论 -
【LeetCode】二叉树以及二叉树递归相关问题汇总
二叉树相关二叉树的天然递归结构104. 二叉树的最大深度题目描述题解111. 二叉树的最小深度题目描述题解 注意终止条件必须是叶子节点 左右子树为空题解2 简化代码题解3简单的二叉树递归问题226. 翻转二叉树题目描述题解1 先交换左右节点的位置再反转节点题解2 先反转左右节点 再交换位置100. 相同的树题目描述题解1 判断左右节点是否相同并且root值相同题解2 化简代码101. 对称二叉树题目描述题解1 左子树反转后和右子树相同题解2 右子树等于左子树 左子树等于右子树 根节点值相等222. 完全原创 2020-06-11 22:43:59 · 461 阅读 · 0 评论 -
【笔试相关】OJ在线编程常见输入输出练习(C++版)牛客网题目
输入输出练习A+B(1)A+B(2)A+B(3)A+B(4)A+B(5)A+B(6)A+B(7)字符串排序(1)字符串排序(2)字符串排序(3)字符串分割函数(处理结尾的两种方法)A+B(1)void fun1(){ int a, b; while (cin >> a >> b) { cout << a + b << endl; }}A+B(2)void fun2(){ int n, a, b; cin >> n原创 2020-06-07 22:07:41 · 2649 阅读 · 1 评论 -
【笔试相关】数论相关基础算法
关于数字质因数分解最大公约数辗转相除法辗转相减法穷举法最小公倍数通过最大公约数求解穷举法质因数分解vector<int> dividenum(int n){ vector<int> ret; int n_sqrt = sqrt(n); //循环截至条件到根号n就行 //从2开始,遇到的第一个因数,一定是质数 //比如24,遇到了2,就一直除,直到余数不为0 //有人说,4也是24的因数啊,但是不是质数 //这个在遇到2时,一直除,这里已经将4除掉了 //24已经原创 2020-06-07 13:52:45 · 169 阅读 · 0 评论 -
【LeetCode】栈和队列相关问题
栈和队列相关问题栈的基础应用20. 有效的括号题目描述方法1 基础栈的应用方法2 将右括号入栈 加速150. 逆波兰表达式求值题目描述方法1三级目录栈的基础应用20. 有效的括号题目描述方法1 基础栈的应用 bool isValid1(string s) { stack<char> stack1; for (int i = 0;i < s.size();i++) { if (s[i] == '{' || s[i] == '(' || s[i] == '[')原创 2020-06-07 11:36:17 · 313 阅读 · 0 评论 -
【LeetCode】链表相关问题总结
链表相关问题总结链表相关辅助函数链表结构数组创建链表向量创建链表链表末尾插入元素删除和打印链表节点间穿针引线206. 反转链表题目描述方法1 迭代方法2 递归92. 反转链表 II题目描述方法1 缓存相关节点83. 删除排序链表中的重复元素题目描述方法1 保留第一个重复元素方法2 保留第一个重复元素优化86. 分隔链表题目描述方法1 根据大小划分成两个子链表再合并328. 奇偶链表题目描述方法1 分成两个子链表再合并2. 两数相加题目描述方法1 转化成整数在转化成链表(数字太大会溢出)方法2 从头到尾依次按原创 2020-06-06 23:23:34 · 287 阅读 · 0 评论 -
【LeetCode】查找表相关问题汇总
这里写目录标题一级目录349. 两个数组的交集题目描述方法1 两个set用来去重查找三级目录三级目录三级目录350. 两个数组的交集 II题目描述方法1方法2c++ Map的行为模式其他思路 排序后双指针242. 有效的字母异位词题目描述方法1 Map容器统计每个单词中字母出现的次数方法2 使用数组记录每个单词出现次数 遍历数组方法3 使用map简化方法2202. 快乐数题目描述方法1 使用set容器查找是否重复方法2 使用快慢指针破除循环290. 单词规律题目描述分割函数1分割函数2 遍历每一个字符方法1原创 2020-05-26 01:56:14 · 211 阅读 · 0 评论 -
【LeetCode】滑动窗口解决字符串问题
滑动窗口209. 长度最小的子数组题目描述方法1 暴力搜索 复杂度为O(n3)方法2 滑动窗口方法3 二分查找3. 无重复字符的最长子串题目描述方法1 标准格式的滑动窗口方法2 使用while循环直到将左指针滑到合适位置438. 找到字符串中所有字母异位词题目描述算法实现三级目录76. 最小覆盖子串题目描述算法实现总结滑动窗口公式209. 长度最小的子数组题目描述方法1 暴力搜索 复杂度为O(n3) int minSubArrayLen(int s, vector<int>&原创 2020-05-18 16:37:53 · 423 阅读 · 0 评论 -
【LeetCode】对撞双指针相关题目(待续)
对撞双指针167. 两数之和 II - 输入有序数组题目描述思路1 暴力解法思路2 二分搜索法思路3 双指针对撞思路4 二分搜索+双指针对撞125. 验证回文串二级目录二级目录二级目录344. 反转字符串二级目录二级目录二级目录345. 反转字符串中的元音字母二级目录二级目录二级目录三级目录11. 盛最多水的容器二级目录二级目录二级目录三级目录167. 两数之和 II - 输入有序数组题目描述思路1 暴力解法思路2 二分搜索法思路3 双指针对撞 vector<int> twoSum原创 2020-05-18 16:06:31 · 139 阅读 · 0 评论 -
【LeetCode】经典排序算法变形
这里写目录标题75. 颜色分类题目描述方法1 统计每个元素个数方法2 三路快排88. 合并两个有序数组题目描述二级目录二级目录215. 数组中的第K个最大元素题目描述三级目录75. 颜色分类题目描述方法1 统计每个元素个数 void sortColors(vector<int>& nums) { int count[3] = { 0 };//[0..low)为0 for (int i = 0;i < nums.size();i++) { count[nu原创 2020-05-18 15:41:36 · 221 阅读 · 0 评论 -
【LeetCode】关于数组中两个指针的题目
这里写目录标题283.移动零题目描述方法1 使用额外空间方法2方法3 使用交换方法4 使用count记录需要移动的位数27 移除元素题目描述方法1 拷贝覆盖方法2 交换移除26 删除排序数组中的重复项题目描述思路1 快慢指针思路2 快慢指针80 删除排序数组中的重复项 II题目描述二级目录二级目录二级目录二级目录三级目录283.移动零题目描述方法1 使用额外空间 void moveZeroes1(vector<int>& nums) { vector<int>原创 2020-05-17 02:09:37 · 189 阅读 · 0 评论 -
【LeetCode】06. 从尾到头打印链表
使用栈类型 先入后出 时间 30-80不等 空间 100/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Soluti...原创 2020-05-02 00:39:36 · 113 阅读 · 0 评论 -
【刷题总结】一些记录
一些记录二分法查找代码容器size的返回类型关于一些矩阵/字符串合并关于递归二分法查找代码int twodivide(int a[], int n,int target){ int begin = 0; int end = n - 1; int midle; while (begin <= end)//是小于等于不是小于 { midle = begin + (end - ...原创 2020-05-01 23:28:36 · 112 阅读 · 0 评论 -
【LeetCode】10-1.斐波那契数列
非递归 使用循环class Solution {public: int fib(int n) { if(n==0){return 0;} if(n==1){return 1;} int f1=0; int f2=1; int f=0; for(int i=0;i<n-1;i++) ...原创 2020-05-01 23:05:56 · 133 阅读 · 0 评论 -
【LeetCode】05.替换空格
新建一个字符串,如果是空格就增加%20,否则增加原字符。 string replaceSpace(string s) { int len=s.length(); string result; for(int i=0;i<len;i++) { if(s[i]!=' ') {...原创 2020-05-01 22:47:18 · 141 阅读 · 1 评论 -
【LeetCode】04. 二维数组中的查找
想法 先比较每一行 然后每一行用二分法查找class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { int ret=false; int height=matrix.size(); ...原创 2020-05-01 16:51:38 · 172 阅读 · 0 评论 -
【LeetCode】03.数组中重复的数字
题目描述思路 使用哈希表class SolutionHash{public: int findRepeatNumber(vector<int> &nums) { unordered_map<int, int> count;//哈希表变量 for (int n : nums) { ...原创 2020-05-01 14:37:32 · 175 阅读 · 0 评论 -
【题目】收藏的刷题总结
刷题总结转载 2020-04-28 01:06:15 · 98 阅读 · 0 评论 -
【刷题记录】2020HW实习笔试编程题
应该是动态规划吧 但是我不会动态规划 就用遍历做的反正感觉写的很垃圾 但是输出好像是对的#define _CRT_SECURE_NO_WARNINGS #include <iostream>using namespace std;int devide(int* array, int len, int m, int* round, int* pos, int begin, ...原创 2020-04-22 22:22:00 · 180 阅读 · 0 评论