自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_43892514的博客

旁人若问其中意,且到寒寨吃苦茶

  • 博客(160)
  • 收藏
  • 关注

原创 算法专题-单调栈

一句话解释单调栈,就是一个栈,里面的元素的大小按照他们所在栈内的位置,满足一定的单调性。

2023-10-14 15:03:12 248

原创 【LeetCode72】编辑距离

【代码】【LeetCode72】编辑距离。

2023-04-05 18:04:37 352 1

原创 【剑指 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 357

原创 【并查集】【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 411

原创 C++进制转换

进制转化

2022-08-07 22:58:26 434

原创 C++常用知识点积累

优先队列c++优先队列(priority_queue)用法详解STL总结:(queue队列)(pair)(set集合)(stack栈)(priority_queue优先队列)

2022-03-06 21:38:03 340

原创 剑指 Offer II 037. 小行星碰撞

文章目录题目描述解题思路(1)使用栈实现(2)数组模拟栈实现题目描述给定一个整数数组 asteroids,表示在同一行的小行星。对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移动,负表示向左移动)。每一颗小行星以相同的速度移动。找出碰撞后剩下的所有小行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。示例 1:输入:asteroids = [5,10,-5]输出:[5,1

2022-03-04 20:09:30 112

原创 c++新特性ing

结构化绑定C++17尝鲜:结构化绑定声明(Structured Binding Declaration)

2021-12-12 18:40:22 226

原创 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 264

原创 【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 121

原创 最长回文子串

题目描述给你一个字符串 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 431

原创 合并数组区间-双指针

题目描述以数组 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 106

原创 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 295

原创 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 61

原创 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 36307 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 1238 1

原创 考试排名【结构体/多关键字排序】

题目描述http://acm.hdu.edu.cn/showproblem.php?pid=2093C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点。它的功能是怎么实现的呢?我们做好了题目的解答,提交之后,要么“AC”,要么错误,不管怎样错法,总是给你记上一笔,表明你曾经有过一次错误提交,因而当你一旦提交该题“AC”后,就要与你算一算帐了,总共该题错误提交了几回。虽然你在题数上,大步地跃上了一个台阶,但是在耗时上要摊上你共花去的时间。特别是,曾经有过的错误提交,每次都要摊上一定的单位时间分

2021-10-18 22:36:33 236

原创 二分搜索总结

标准二分搜索// 标准二分法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 71

原创 两数之和(双指针/哈希表)

无序数组中任意两数之和题目描述给定一个整数数组 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 116

原创 字符串处理

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 509

原创 【算法专题四】滑动窗口

算法框架/* 滑动窗⼝算法框架 */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 204

原创 位运算总结

基本概念应用总结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 565

原创 【算法专题三】查找/排序算法

二分搜索// 标准二分法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 64

原创 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 161

原创 【算法专题三】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 110

原创 C++常见知识点(四)

优先队列如何按照pair 的第二关键字排序(对比vector按照pair第二关键字排序)

2021-10-07 22:51:57 57

原创 【题目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 818

原创 【算法专题二】双指针

快慢指针面试题23.链表中环的入口节点

2021-10-03 14:51:33 123

原创 输入/输出总结

读取数量不定的数据读取未知数量的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 160

原创 sort排序应用

参考对结构体元素进行排序sort函数在STL中的底层实现

2021-09-17 21:52:28 174

原创 leetcode总结

字符串字符串相加要点:字符‘num’到数字的方法:’num’ - ‘0’数字到字符‘num’的方法:num + ‘0’string 倒转函数的用法reverse

2021-09-01 20:35:24 54

原创 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 1416 3

原创 GPU并行计算

ReferenceCUDA编程入门GPU编程 | 并行计算的helloworld!【并行计算-CUDA开发】CUDA线程、线程块、线程束、流多处理器、流处理器、网格概念的深入理解CUDA编程(一)第一个CUDA程序

2021-03-04 14:44:52 247 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 663

原创 evo 评测工具的使用

Reference官方wikiSLAM 轨迹评估工具EVO评价SLAM算法的一些指标及评价工具evo的使用方法[VIO|实践]evo测评工具的安装与使用使用evo工具评测SLAM算法性能并可视化结果轨迹评估工具使用总结(二) evo 绘图& ROS map评价指标绝对轨迹误差(ATE:abosulte trajectory error):直接计算相机位姿的真实值与SLAM系统的估计值之间的差,程序首先根据位姿的时间戳将真实值和估计值进行对齐, 然后计算每对位姿之间的差值, 并最终

2021-01-26 09:57:52 490

原创 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 303

原创 常见数据结构

C++ vector & 数组数组概念:C++中数组是一种内置的数据类型。数组是存放类型相同的对象的容器,数组的大小确定不变,不能随意向数组中增加元素。1、定义和初始化内置数组(1)数组的大小不变,(a[d],d为数组的维度),数组的维度必须是一个常量表达式。定义数组的时,必须指定数组的类型和大小。(2)初始化时,允许不指明数组的维度,不指明维度,则编译器根据数组初始值的大小推测出维度;若指定维度,则初始值的个数要小于等于维度,当小于时,不足的部分为0(其实还是等于维度)。1 int a

2020-12-23 16:13:10 90

原创 左神算法-基础班-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 286

原创 左神算法-基础班-class 1

冒泡排序定义冒泡排序(Bubble Sort)是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,从而使关键字小的记录如气泡一般逐渐往上 "漂浮" (左移),或者使关键字大的记录如石块一样逐渐向下“坠落” (右移)实现1...

2020-12-09 20:48:22 387

原创 C++多线程-join()、detach()

一、范例演示线程运行的开始程序运行起来,生成一个进程,该进程所属的主线程开始自动运行;当主线程从main()函数返回,则整个进程执行完毕主线程从main()开始执行,那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,线程也结束运行整个进程是否执行完毕的标志是:主线程是否执行完,如果主线程执行完毕了,就代表整个进程执行完毕了,此时如果其他子线程还没有执行完,也会被强行终止【此条有例外,以后会解释】创建一个线程:包含头文件thread写初始函数在main中创建t

2020-12-03 14:22:31 358

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除