- 博客(162)
- 收藏
- 关注
原创 动态规划双字符串
一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。输入:word1 = “intention”, word2 = “execution”输入:text1 = “abcde”, text2 = “ace”输入:text1 = “abc”, text2 = “abc”解释:最长公共子序列是 “abc” ,它的长度为 3。
2024-07-14 16:31:49
620
原创 【剑指 Offer II 095】最长公共子序列
一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。输入:text1 = “abcde”, text2 = “ace”输入:text1 = “abc”, text2 = “abc”解释:最长公共子序列是 “ace” ,它的长度为 3。解释:最长公共子序列是 “abc” ,它的长度为 3。来源:力扣(LeetCode)
2023-04-05 17:58:36
411
原创 【并查集】【Union-Find】
链接:https://leetcode.cn/problems/number-of-provinces/solution/python-duo-tu-xiang-jie-bing-cha-ji-by-m-vjdr/
2023-01-15 18:54:52
427
原创 C++常用知识点积累
优先队列c++优先队列(priority_queue)用法详解STL总结:(queue队列)(pair)(set集合)(stack栈)(priority_queue优先队列)
2022-03-06 21:38:03
367
原创 剑指 Offer II 037. 小行星碰撞
文章目录题目描述解题思路(1)使用栈实现(2)数组模拟栈实现题目描述给定一个整数数组 asteroids,表示在同一行的小行星。对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移动,负表示向左移动)。每一颗小行星以相同的速度移动。找出碰撞后剩下的所有小行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。示例 1:输入:asteroids = [5,10,-5]输出:[5,1
2022-03-04 20:09:30
136
原创 LeetCode1122:数组的相对排序
题目描述给你两个数组,arr1 和 arr2,arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]提示:1 <= arr1.length,
2021-12-12 18:05:39
318
原创 【LeetCode 151】翻转字符串里的单词
题目描述给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符串 s 可以在前面、后面或者单词间包含多余的空格。翻转后单词间应当仅用一个空格分隔。翻转后的字符串中不应包含额外的空格。示例 1:输入:s = “the sky is blue”输出:“blue is sky the”示例 2:输入:s = " hello world
2021-11-27 22:49:10
136
原创 动态规划_最长回文子串/子序列
题目描述给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”动态规划class Solution {public: string longestPalindrome(string s) { int n = s.size
2021-11-26 21:07:26
474
原创 合并数组区间-双指针
题目描述以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [[1,4],[
2021-11-23 22:10:26
118
原创 tmet(learning c++)
int FinaDestination(vector<vector<int> votes, int initialPoint){ int i = 0; vector<bool> visited(votes.size(),false); int dest = initialPoint; while ( i < votes.size()) { if (votes[i][1] == dest) { if
2021-10-24 16:59:07
325
原创 1431. 拥有最多糖果的孩子
题目描述https://leetcode-cn.com/problems/kids-with-the-greatest-number-of-candies/给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。示例 1:输入:candies = [2,3,
2021-10-24 16:07:56
75
原创 string与int之间转换
一、int 转换为 string(1)使用to_string()函数格式:string str = to_string(number);需引入头文件:#include<string>string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigned lon
2021-10-20 22:53:36
37529
1
原创 前缀和应用总结
一、前缀和定义假设我们有一个字符串ABCDE,什么是这个单词的前缀,A、AB、ABC、ABCD、ABCDE就是这个单词的前缀,就是从第一个字母开始,依次往后拼接。E、ED、EDC、EDCB、EDCBA被称为这个单词的后缀。那么对于一个数组的前缀,例如数组a = [1,2,3,4,5],我们维护一个由前缀的和组成的数组sum,sum[i]表示数组中a[0]~ a[i] 的和。sum[0] = a[0]sum[1] = a[0] + a[1]sum[2] = a[0] + a[1] + a[2]su
2021-10-20 07:51:43
1395
1
原创 考试排名【结构体/多关键字排序】
题目描述http://acm.hdu.edu.cn/showproblem.php?pid=2093C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点。它的功能是怎么实现的呢?我们做好了题目的解答,提交之后,要么“AC”,要么错误,不管怎样错法,总是给你记上一笔,表明你曾经有过一次错误提交,因而当你一旦提交该题“AC”后,就要与你算一算帐了,总共该题错误提交了几回。虽然你在题数上,大步地跃上了一个台阶,但是在耗时上要摊上你共花去的时间。特别是,曾经有过的错误提交,每次都要摊上一定的单位时间分
2021-10-18 22:36:33
301
原创 二分搜索总结
标准二分搜索// 标准二分法int BinarySearch (vector<int> nums, int target) { if (nums.empty()) { return -1; } int left = 0; int right = nums.size() - 1; while (left <= right) { int mid = (right - left) / 2 + left;
2021-10-18 07:41:58
86
原创 两数之和(双指针/哈希表)
无序数组中任意两数之和题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3
2021-10-17 21:05:29
134
原创 字符串处理
leetcode总结/* * @Author: gavyn * @Date: 2021-10-16 18:23:34 * @LastEditTime: 2021-10-16 18:23:34 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \tmp\build\字符处理.cpp *//** * @description: 给定一个字符串,输出无重复字符的连续
2021-10-17 17:06:53
534
原创 【算法专题四】滑动窗口
算法框架/* 滑动窗⼝算法框架 */void slidingWindow(string s, string t){ unordered_map<char, int> need, window; for (char c : t) { need[c]++; } int left = 0, right = 0; int valid = 0; while (right < s.size()) { // c 是将
2021-10-16 21:29:20
261
原创 位运算总结
基本概念应用总结1. &(and)运算&运算通常用于二进制取位操作,例如一个数 & 1的结果就是取二进制的最末位。基础用法:(1)可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。(2)x & (x-1) 用于消去 x 的最后一位 1。(3)在运用(2)的基础上可以用来判断一个正整数是不是2的整数幂次,如果x & (x-1) 是0,说明是;如果不是0,说明不是;2. | (or)运算| 运算通常用于二进
2021-10-13 23:01:32
620
原创 【算法专题三】查找/排序算法
二分搜索// 标准二分法int BinarySearch (vector<int> nums, int target) { if (nums.empty()) { return -1; } int left = 0; int right = nums.size() - 1; while (left <= right) { int mid = (right - left) / 2 + left;
2021-10-12 07:59:09
81
原创 c++ primer案例学习
第十章 泛型算法消除重复单词sort函数在头文件中,排序规则为字典序排序。void elimDups(vector<string> &vec){ sort(vec.begin(), vec.end()); auto end_unique = unique(vec.begin(), vec.end()); vec.erase(end_unique, vec.end());}// 重新排序,排序规则为先按大小排序,大小相同的按字典序排序。bool isShorter(co
2021-10-10 09:21:03
206
原创 【算法专题三】BFS
基本概念BFS问题的本质就是让你在⼀幅「图」中找到从起点 start 到终点 target 的最近距离,这个例⼦听起来很枯燥,但是 BFS 算法问题其实都是在⼲这个事⼉,把枯燥的本质搞清楚了,再去欣赏各种问题的包装才能胸有成⽵嘛。算法框架// 计算从起点 start 到终点 target 的最近距离int BFS(Node start, Node target){ Queue<Node> q; // 核⼼数据结构 Set<Node> visited
2021-10-08 00:05:20
135
1
原创 【题目3】: 全排列(leetcode 46、47)
题目描述1给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1] 输出:[[0,1],[1,0]] 示例 3:输入:nums = [1] 输出:[[1]]提示:1 <= nums.length <= 6-10 <= nums[i] <
2021-10-04 11:05:25
918
原创 输入/输出总结
读取数量不定的数据读取未知数量的string对象#include<bits/stdc++.h>using namespace std;int main(){ string word; while (cin >> word) { // 反复读取,直至到达文件末尾,一遇到换行符就输出 cout << word << endl; // 换行符输出,逐个输出单词,每个单词后面紧跟一个换行符 } retur
2021-09-24 19:44:34
182
原创 leetcode总结
字符串字符串相加要点:字符‘num’到数字的方法:’num’ - ‘0’数字到字符‘num’的方法:num + ‘0’string 倒转函数的用法reverse
2021-09-01 20:35:24
79
原创 VsCode配置C++/Cmake
Referencehttps://zhuanlan.zhihu.com/p/87864677步骤1、安装VSCode,直接在 官网下载 安装即可2、配置C/C++环境,安装MinGW编译器,也可以在 官网 下载安装3、MinGW编译器刚才下载的是个下载器,直接双击安装,配置X86和WIN32,指定下载目录(需要记住,之后会用,并且目录不能有空格)4、下载完成之后,将刚才下载目录下的bin文件夹目录配置到环境变量里5、CMD窗口输入gcc -v不报错就证明配置成功6、VSCode中搜索C
2021-07-23 21:15:31
1746
3
原创 GPU并行计算
ReferenceCUDA编程入门GPU编程 | 并行计算的helloworld!【并行计算-CUDA开发】CUDA线程、线程块、线程束、流多处理器、流处理器、网格概念的深入理解CUDA编程(一)第一个CUDA程序
2021-03-04 14:44:52
264
1
原创 论文中涉及的格式排版问题
图片字号A4纸尺寸:210mm×297mm小五字体对应9号在excel等软件中的图片大小设置好后,在word中保持大小不变则字体会正确初号=42磅=14.82毫米 (CAD高=10.77mm)小初=36磅=12.70毫米 (CAD高=9.23mm)一号=26磅=9.17毫米 (CAD高=6.67mm)小一=24磅=8.47毫米 (CAD高=6.15mm)二号=22磅=7.76毫米 (CAD高=5.64mm)小二=18磅=6.35毫米 (CAD高=4.62mm)三号=16磅=5
2021-02-14 21:14:39
905
原创 evo 评测工具的使用
Reference官方wikiSLAM 轨迹评估工具EVO评价SLAM算法的一些指标及评价工具evo的使用方法[VIO|实践]evo测评工具的安装与使用使用evo工具评测SLAM算法性能并可视化结果轨迹评估工具使用总结(二) evo 绘图& ROS map评价指标绝对轨迹误差(ATE:abosulte trajectory error):直接计算相机位姿的真实值与SLAM系统的估计值之间的差,程序首先根据位姿的时间戳将真实值和估计值进行对齐, 然后计算每对位姿之间的差值, 并最终
2021-01-26 09:57:52
531
原创 2021-01-04
make[2]: *** [stereo_kitti] Error 1CMakeFiles/Makefile2:183: recipe for target 'CMakeFiles/stereo_kitti.dir/all' failedmake[1]: *** [CMakeFiles/stereo_kitti.dir/all] Error 2make[1]: *** 正在等待未完成的任务....../lib/libvlsift.so:对‘_vl_distance_mahalanobis_sq_av
2021-01-04 17:00:06
360
原创 常见数据结构
C++ vector & 数组数组概念:C++中数组是一种内置的数据类型。数组是存放类型相同的对象的容器,数组的大小确定不变,不能随意向数组中增加元素。1、定义和初始化内置数组(1)数组的大小不变,(a[d],d为数组的维度),数组的维度必须是一个常量表达式。定义数组的时,必须指定数组的类型和大小。(2)初始化时,允许不指明数组的维度,不指明维度,则编译器根据数组初始值的大小推测出维度;若指定维度,则初始值的个数要小于等于维度,当小于时,不足的部分为0(其实还是等于维度)。1 int a
2020-12-23 16:13:10
104
原创 左神算法-基础班-class 2
荷兰国旗问题引入题目1:荷兰国旗问题及复杂度分析给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N)分析和预备问题相似1.把数组划分为小于num的区域、等于num的区域和大于num的区域。用变量less代表小于区域的位置、more代表大于num的区域。刚开始由于不存在小于和大于的区域,则less = l-1,more = r + 1,表示指向数组l-1、r + 1(不存在)。
2020-12-14 22:47:07
301
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人