- 博客(20)
- 收藏
- 关注
原创 linux基础
5 touch file: 若file不存在,则创建一个空文件, 否则, 则更新文件的最后修改时间.grep -r -i -n “HELLO world” ./ -------忽略大小小查找。grep -r -n “hello world” ./ ------显示行号。注意点: 创建软连接源文件一定要使用绝对路径, 否则, 当软连接文件。/dev: 字符设备和块设备. 在linux下, 一切皆是文件.创建一个硬链接文件, 硬链接计数+1, 删除一个则-1;
2023-06-25 16:14:10
239
原创 C++应用之QT
右键项目- 添加新文件Qt - Qt设计师界面类在ui文件中设计自定义控件在主窗口中 拖拽 Widget做提升的操作在自定义控件中 封装对外接口SpinBox和 slider控件交互getData获取显示数字setData设置数字。
2023-06-16 20:53:56
313
原创 C++进阶编程
C++进阶编程范型编程,模板函数模板普通函数和函数模板的区别普通函数和函数模板的调用规则模板的局限性类模板类模板和函数模板的区别类模板中成员函数创建时机类模板对象做函数参数类模板与继承类模板成员函数类外实现类模板分文件编写类模板与友元STL(标准模板库)常用容器vector存放标准数据类型vector存放自定义数据类型vector容器嵌套容器vector构造函数vector赋值操作vector容量和大小vector插入和删除vector数据存取vector互换容器vector预留空间string 构造函数s
2023-06-09 15:51:27
515
原创 C++基础知识重点
A类是父类,私有的属性c在子类中无法访问,保护继承下父类共有属性和保护属性在子类中都是保护属性,私有继承下父类共有属性和保护属性在子类中都是私有属性。错误}{int &b=a;同一份代码会被多个同类型的对象调用,利用this指针区分不同对象,this指针指向被调用的成员函数所属的对象。父类中的虚函数的实现是毫无意义的,主要是调用子类重写的内容,因此可以将虚函数改为纯虚函数。父类构造---->子类构造---->子类析构---->父类析构。问题:容易引发二义性,子类继承两份相同的数据,使用虚继承解决。
2023-05-31 19:58:55
1044
原创 Leetcode专题之二维前缀和
引入 前缀和是一种重要的预处理,能大大降低查询的时间复杂度。我们可以简单理解为“数列的前 n 项的和”。这个概念其实很容易理解,即一个数组中,第 n 位存储的是数组前 n 个数字的和。 通过一个例子来进行说明会更清晰。题目描述:有一个长度为 N 的整数数组 A,要求返回一个新的数组 B,其中 B 的第 i 个数 B[i]是原数组 A 前 i 项和。 这道题实际就是让你求数组 A 的前缀和。对 [1,2,3,4,5,6] 来说,其前缀和可以是 pre=[1,3,6,10,15,21]。我们可以使用公式 pre
2021-09-16 16:33:56
1401
原创 Leetcode专题之一维前缀和
一维前缀和 基本概念和简单实用 滑动窗口和前缀和在连续问题中,对于优化时间复杂度有着很重要的意义。 因此如果一道题你可以用暴力解决出来,而且题目恰好有连续的限制, 那么滑动窗口和前缀和等技巧就应该被想到。 有 N 个的正整数放到数组 A 里,现在要求一个新的数组 B,新数组的第 i 个数 B[i]是原数组 A 第 0 到第 i 个数的和。 这道题可以使用前缀和来解决。 前缀和是一种重要的预处理,能大大降低查询的时间复杂度。我们可以简单理解前缀和为“数列的前 n 项的和”。 这个概念其实很容易理解,即一个数组
2021-09-12 22:22:10
460
原创 Leetcode练习之队列
和栈相反,队列是只允许在⼀端进⾏插⼊,在另⼀端进⾏删除的线性表。因此队列(Queue)是⼀种先进先出(FIFO - First In First Out)的数据结构,通常情况下,我们称队列中插⼊元素的⼀端为尾部,删除元素的⼀端为头部。 队列也是⼀种逻辑结构,底层同样可以⽤数组实现,也可以⽤链表实现,不同实现有不同的取舍。如果⽤数组实现,那么⼊队或者出队的时间复杂度⼀定有且仅有⼀个是O(N)O(N)O(N)的,其中 NNN 为队列的⻓度。⽽使⽤链表实现则可以在 O(1)O(1)O(1)的时间完成任何合法的队列
2021-09-11 16:10:33
424
原创 LeetCode练习之栈
栈是⼀种受限的数据结构, 体现在只允许新的内容从⼀个⽅向插⼊或删除,这个⽅向我们叫栈顶,另⼀端⼀般称为栈底。除了栈顶的其他位置获取或操作内容都是不被允许的。栈最显著的特征就是 LIFO(Last In, First Out - 后进先出) 栈的常⽤操作与时间复杂度进栈 push - 将元素放置到栈顶出栈 pop - 将栈顶元素弹出取栈顶 top - 得到栈顶元素的值判断是否为空栈 isEmpty - 判断栈内是否有元素 复杂度分析:进栈 - O(1)出栈 - O(1)取栈顶 - O(1)判断是否为空栈
2021-09-09 14:42:38
205
原创 LeetCode练习之数组
414 第三大的数 Given an integer array nums, return the third distinct maximum number in this array. If the third maximum does not exist, return the maximum number. class Solution(object): def thirdMax(self, nums): """ :type nums: List[int]
2021-09-08 18:30:30
293
原创 滑动窗口专题
介绍 滑动窗口是一种解决问题的思路和方法,通常用来解决一些连续问题。 比如 LeetCode 的 209. 长度最小的子数组。更多滑动窗口题目见下方题目列表。 常见套路 滑动窗口主要用来处理连续问题。比如题目求解“连续子串 xxxx”,“连续子数组 xxxx”,就应该可以想到滑动窗口。能不能解决另说,但是这种敏感性还是要有的。 从类型上说主要有: 固定窗口大小 窗口大小不固定,求解最大的满足条件的窗口 窗口大小不固定,求解最小的满足条件的窗口(上面的 209 题就属于这种) 后面两种我们统称为可变窗口。
2021-08-30 00:35:48
425
原创 二分查找算法
二分查找又称折半搜索算法。 狭义地来讲,二分查找是一种在有序数组查找某一特定元素的搜索算法。bisect模块学习 基本概念 解空间 解空间指的是题目所有可能的解构成的集合。比如一个题目所有解的可能是 1,2,3,4,5,但具体在某一种情况只能是其中某一个数(即可能是 1,2,3,4,5 中的一个数)。那么这里的解空间就是 1,2,3,4,5 构成的集合,在某一个具体的情况下可能是其中任意一个值,我们的目标就是在某个具体的情况判断其具体是哪个。如果线性枚举所有的可能,就枚举这部分来说时间复杂度就是 O(n)
2021-08-26 23:49:34
2082
原创 道路连通性增强算法
本文旨在优化道路连通性算法,gt为影像通过语义分割或者其他算法得到的道路直接测试结果,但这类结果往往效果较差,道路断断续续,所以有必要对道路进行连通性增强,算法如下: from sknw import build_sknw from skimage.morphology import skeletonize import cv2 def patch_regular(gt,tau,thickness): #gt=tifffile.imread(img_path) ske = skeletoni
2021-08-23 23:54:36
1324
4
原创 模拟,枚举与递推
模拟 模拟指的是将题目描述转化为可执行的代码,其中我们会用到编程语言的基础内容,最常见的就是循环。 简单的题目,通常直接模拟就够了,比如 874. 模拟行走机器人 。 而如果是中等和困难的题目,除了使用模拟,我们还需要使用一些别的技巧。比如有的题目就是模拟 + 堆,这是因为模拟的过程我们需要动态获取极值。再比如 799. 香槟塔,其实就是模拟 + 动态规划。可以看出,中等的题目通常模拟只是辅助,还需要结合其他知识。 那么是否所有的题目都是模拟?当然不是。比如动态规划的题目,这就不能说是模拟。因为题目并没有告
2021-08-23 23:10:55
790
原创 数据结构中的图
基本概念 无向图 & 有向图〔Undirected Graph & Deriected Graph〕 有权图 & 无权图〔Weighted Graph & Unweighted Graph〕 入度 & 出度〔Indegree & Outdegree〕 路径 & 环〔路径:Path〕 有环图〔Cyclic Graph〕 无环图〔Acyclic Graph〕 连通图 & 强连通图 在无向图中,若任意两个顶点 i 与 j 都有路径相通,则称该无向图为
2021-08-19 00:05:39
425
原创 python-collections模块学习
tuple keywords:不可变,可迭代,拆包 tuple=(a,b,c) tuple[0]=d#错误 tuple=(a,[b,c]) tuple[1].append(d)#不可变不是绝对的 a,b,c=tuple#拆包 a,*others=tuple#只对a感兴趣 tuple vs. list 性能优化:元素全为tuple时显著加速 线程安全:不可变 可以作为dict的key:不变,可hash dict[(a,b,c)]=d#正确 dict[[a,b,c]]=d#错误 拆包特性 与C语言相比,
2021-08-14 16:40:24
123
原创 双指针问题
常见题型有哪些? 这里我将其分为三种类类型,分别是: 快慢指针(两个指针步长不同,一个步长大,一个步长小。典型的是一个步长为 1,另外一个步长为 2) 左右端点指针(两个指针分别指向头尾,并往中间移动,步长关系不确定) 固定间距指针(两个指针间距相同,步长相同) 快慢指针 判断链表是否有环 1)例题:力扣 287 题,一个是 142 题。 2)读写指针。典型的是删除重复元素 例题:80.删除排序数组中的重复项 II 3)一次遍历(One Pass)求链表的中点 具体算法是使用两个指针。快
2021-08-06 11:35:11
264
原创 leetcode-数组去重
题目:Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place such that each unique element appears only once. The relative order of the elements should be kept the same. 解法:单指针法,遍历数组,遇到和下一个元素不同的把这个元素按顺序保存到数组的前面,用指针记录保存的个数,注
2021-08-05 14:38:30
319
原创 C++刷题笔记
leetcode总结1,数组去重新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 1,数组去重 //STL i...
2019-07-20 06:08:45
195
原创 二叉树和图
Leetcode113深度搜索-路径之和 /** Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; / class Sol...
2019-06-11 22:25:35
805
原创 链表LeetCode2
复杂的链表的深度拷贝LeetCode138 深度拷贝后的链表和原链表完全独立 map的应用 #include <studio.h> #include < map> struct RandomListNode{ int label; RandomListNode * next,* random; RandomListNode(int x):label(x),next(NULL...
2019-05-27 21:12:43
143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅