- 博客(5)
- 问答 (1)
- 收藏
- 关注
原创 串的模式匹配——KMP算法理解
模式匹配算法——KMP算法如图,L为字符串,L1为已经匹配了的字符子串,红色部分表示L1的下一位出现不匹配。假如在已经匹配了的子串中从某个位置开始,出现了新的匹配,即这里的L2。那么下一次对字符串的匹配只需要从L2开始进行匹配就可以了(如果子串中出现新的匹配,它必然在L2中,L2代表这最大的新匹配),而不需要从L1首位置的下一位开始。由观察可以发现,L2为L1的后缀,而L2又是新的匹配,说明它必然和L1的前一部分相同,即它也是L1的前缀。因此要定位下次重新匹配的位置,我们只需从找到L1前缀和后缀相同最
2021-08-16 20:46:50
306
原创 二叉树的实现及非递归遍历
二叉树的定义 struct TreeNode { //二叉树结构体定义(来自leetcode) int val; TreeNode *left; TreeNode *right; TreeNode() : val(0), left(nullptr), right(nullptr) {} TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} };...
2021-08-14 20:55:33
138
原创 排序算法实现汇总
插入排序 int n=arr.size(); int tmp; //哨兵 for(int i=1;i<n;i++){ if(arr[i]<arr[i-1]){ //arr[i]比前面小时插入; tmp=arr[i]; int j; for(j=i-1;tmp<arr[j];j--){ //移动; arr[j+1]=arr[j];
2021-08-12 18:20:55
99
原创 1143.最长公共子序列
二维动态规划class Solution {public: int longestCommonSubsequence(string text1, string text2) { int m=text1.length(),n=text2.length(); vector<vector<int>> dp(m+1,vector<int>(n+1,0)); //dp[i][j]表示当前位置下匹配最多的字符串数 for(i
2021-07-30 13:46:56
87
空空如也
svm手写体数字识别不收敛
2021-07-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人