自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

roronoa

守己之守;蔑他之蔑(欢迎交流)

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

原创 代码随想录-DAY⑩-二叉树——leetcode 144 | 94 | 145

递归,略迭代,用一个栈存放暂时没有写入到结果集的节点时间复杂度:O(n)空间复杂度:O(n)

2024-07-19 00:21:20 236

原创 代码随想录-DAY⑨-栈与队列——leetcode 20 | 150

遇到左括号压栈,遇到右括号弹栈,并对比是否配对。注意需要弹栈时栈空的话说明也不匹配。时间复杂度:O(n)空间复杂度:O(n)

2024-07-16 00:19:49 193

原创 代码随想录-DAY⑧-栈与队列——leetcode 232 | 225

将一个栈当作输入栈,另一个栈当作输出栈,每次 pop 或 peek 时,若输出栈为空,则将输入栈的全部数据依次弹出并压入输出栈。时间复杂度:O(1)空间复杂度:O(n)

2024-07-13 00:39:37 194

原创 代码随想录-DAY⑦-字符串——leetcode 344 | 541 | 151

没啥好说的,双指针头尾交换,相遇结束。时间复杂度:O(n)空间复杂度:O(1)

2024-07-10 23:54:17 290

原创 代码随想录-DAY⑥-哈希表——leetcode 383 | 454

首先统计 magazine 中每个英文字母 a 的次数 cnt[a],再遍历统计 ransomNote 中每个英文字母的次数,如果发现 ransomNote 中存在某个英文字母 c 的统计次数大于 magazine 中该字母统计次数 cnt[c],则此时我们直接返回 false。时间复杂度:O(n+m)空间复杂度:O(1)

2024-07-10 00:16:40 232

原创 代码随想录-DAY⑤-哈希表——leetcode 242 | 349 | 202

先遍历字符串1,记录每个字符的个数,然后遍历字符串2,挨个减去字符个数,出现小于零的个数说明字符总数不重合。时间复杂度:O(n)空间复杂度:O(1)

2024-07-08 23:26:39 608 1

原创 代码随想录-DAY④-链表——leetcode 24 | 19 | 142

此时,fast 指针已经走完了环的 n 圈,因此它走过的总距离为 a+n(b+c)+b=a+(n+1)b+nc。有了 a=c+(n−1)(b+c) 的等量关系,我们会发现:从相遇点到入环点的距离加上 n−1 圈的环长,恰好等于从链表头部到入环点的距离。因此,我们有 a+(n+1)b+nc=2(a+b)⟹a=c+(n−1)(b+c)根据题意,任意时刻,fast 指针走过的距离都为 slow 指针的 2 倍。否则,通过更新节点的指针关系交换 pre 后面的两个节点,最后,返回新的链表的头节点。

2024-07-08 00:13:34 340

原创 代码随想录-DAY④-相交链表经典三解——leetcode 160

即最终两个指针一定走了一样的步数(n+m),如果发现已存在在哈希集合中的,说明相交,让指向较长链表的指针向后挪动长度差的步数,将链表 A 中的每个节点都存入哈希集合,走到头(一定同时)都不相等说明不相交。遍历链表 B 并判断每一个节点,两个指向链表的指针同时向后移动,遍历并计算两个链表的长度差,如果遍历结束,说明不相交。然后两个指针同时向后移动,时间复杂度:O(m+n)时间复杂度:O(m+n)都继而指向另一个链表头,时间复杂度:O(m+n)空间复杂度:O(m)空间复杂度:O(1)空间复杂度:O(1)

2024-07-06 23:55:30 285

原创 代码随想录-DAY③-链表——leetcode 203 | 707 | 206

设置一个虚拟头结点,这样所有节点就都可以按照统一的方式进行移除。如果下一个节点的值等于 val,让节点 next 指针直接指向下下一个节点。不要忘记清理节点内存。时间复杂度: O(n)空间复杂度: O(1)

2024-07-05 23:57:39 273

原创 代码随想录-DAY②-数组——leetcode 977 | 209

使用两个指针分别指向位置 0 和 n−1,每次比较两个指针对应的数,选择较大的那个逆序放入答案并移动指针。这种方法无需处理某一指针移动至边界的情况。时间复杂度:O(n)空间复杂度:O(1)

2024-07-04 22:46:12 286

原创 代码随想录-DAY①-数组——leetcode 704 | 27

定义查找的范围 [left,right],初始查找范围是整个数组。每次取查找范围的中点 mid,比较 nums[mid] 和 target 的大小,如果相等则 mid 即为要寻找的下标,如果不相等则根据 nums[mid] 和 target 的大小关系将查找范围缩小一半。时间复杂度: O(logn)

2024-07-02 22:10:12 297

原创 Linux修复磁盘坏道,重新挂载硬盘

/dev/sdb is write-protected, mounting read-onlySuperblock invalid, trying backup blocks...Bad magic number in super-block while trying to open /dev/sdb

2023-12-07 14:29:18 863

原创 配置ssh 免密登录 还是要密码才能登录

centos配置ssh免密码登录后仍要输入密码的解决方法

2023-11-27 11:43:12 211

原创 死锁是什么?在postgresql中是如何预防死锁的?

什么是死锁?进程的加锁请求会被锁冲突阻塞,从而进入睡眠等待状态。而如果出现了多个进程持有、且等待其他进程释放资源的恶性环,即形成死锁。可以简单地将死锁理解为:存在资源争夺的恶性环。举个栗子:假设有n个人,围着圆桌坐了一圈。每个人左手都拿着一个馒头,且都用右手去抢自己右手边人手里的馒头。结果谁都把馒头吃不到嘴里!...

2020-06-24 15:18:34 637

原创 centos7Linux中的lvm、pv、vg、lv,以及Linux扩容,创建新分区

概念本着言简意赅的目的。以下概念会在扩容时用到,需熟知,不然会不理解具体操作在干什么。lvm:逻辑卷管理器(Logical Volume Manager)它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除。LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称代替物理磁盘名(如dev/sda、dev/sdb)来标识存储卷。pv:物理...

2020-04-12 22:10:24 6067

原创 排序算法归纳(c语言) ⑦快速排序

快速排序Quick Sort,被誉为20世纪十大算法之一,真正的排序大佬登场!快速排序可看作冒泡排序的升级,它们同属于交换排序类。只不过快排增大了记录的比较和移动距离,从而减少了比较和交换次数。快速排序的基本思想:通过一趟排序将待排记录分割成独立的两部分,其中一部分的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序的目的。在最优情况下快排的时间复杂度为O...

2019-06-22 16:58:44 481

原创 排序算法归纳(c语言) ⑥归并排序

归并排序归并,顾名思义是归一,合并的意思。具体的做法大体是:将两个有序子段归并为一个长段,重复这一过程,最终就能得到一个有序序列了。所以,纵观整个对并过程,就像是一颗完全二叉树。由二叉树的深度可以得出,整个归并排序的执行次数是以2为底n的对数。自然,这是一个对数级的操作。扫描整个整个序列需要耗时O(n),所以,对并排序是一个时间复杂度为O(nlogn)。归并中因为开取了辅助空间,空间复杂...

2019-05-31 21:21:27 244

原创 排序算法归纳(c语言) ⑤堆排序

堆排序HeapSort,这是相当常用的一种排序算法。原因是它的时间复杂度相当稳定,且相当高效。无论是最好情况还是最坏情况,时间复杂度都能较稳定地保持在O(nlogn)。...

2019-04-26 20:07:11 217

原创 排序算法归纳(c语言) ④希尔排序

希尔排序ShellSort,排序算法史上的里程碑。

2019-04-22 22:14:15 255

原创 排序算法归纳(c语言) ③插入排序

插入排序插入排序的关键在于:将后来的无序元素,插入到前面的有序之中。可是我们拿到手的往往是一组纯无序的元素啊,哪有什么“前面的有序元素”呢?当然有,要知道,任意单一元素是自然有序的。也就是说我们可以把第一个元素看成前端的有序列,将后续元素插入到这个有序列之中。待排序数据依然存放于顺序表中。数据存放没有从0开始,而是选择从1开始。代码参考于《大话数据结构》。...

2019-04-22 10:39:03 216

原创 排序算法归纳(c语言) ②选择排序

选择排序系列之第二篇,选择排序。选择排序相对于冒泡排序是较少做交换的。因为它在进行一次外层循环后,只挑选最优的一个元素进行交换。这也就省去了一些交换的时间复杂度。所以,从这个角度讲,选择排序的效率因该会高于冒泡排序。待排序数据依然存放于顺序表中。数据存放没有从0开始,而是选择从1开始。代码参考于《大话数据结构》。初始设定#include<stdio.h>#define ...

2019-04-17 12:15:23 253

原创 排序算法归纳(c语言)①冒泡排序

冒泡排序这是最早学到的一个排序算法,它的原理比较简单。就像它的名字一样,很形象,让大数(或小数)“冒出头”。本代码中,待排序的数据放在一个顺序表中。数据存放没有从0开始,而是选择从1开始,data[0]则可做他用。这里一共列出三个,由简单到复杂的冒泡排序代码。代码参考于《大话数据结构》。初始设定#include<stdio.h>typedef int ElemType;...

2019-04-16 23:14:47 337

原创 图的相关概念~DS笔记⑦

图前面学到的数据结构都是一对一,一对多的。一对一比如单链表,一对多比如树。这次考虑一种更复杂,多对多的,却也跟我们息息相关的数据结构,图。图(Graph):是由顶点的有穷非空集合和顶点之间的边的集合组成。通常表示为:G(V,E),其中,G表示一个图,V是顶点集合,E是边集合。无向边:若顶点v1到顶点v2之间没有方向,则称这条边为无向边。用无序偶对(v1,v2)来表示。无向图:若图中任意...

2019-04-11 20:58:14 195

原创 二叉树相关概念及c语言实现~DS笔记⑥

二叉树(Binary Tree):是n(n&amp;gt;=0)个结点的有限集合,该集合或者为空集,或者是由一个根节点和两颗互不相交的、分别为根节点的子二叉树组成。二叉树的特点:每个结点最多有两个子树,且左右有序,不可颠倒。斜树:所有节点都只有左子树,或只有右子树的二叉树,分别称为左斜树和右斜树,统称为斜树。满二叉树:在一棵二叉树中,所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上。完全...

2019-03-26 21:49:36 309

原创 树的相关概念~DS笔记⑥

树树(Tree):n(n&amp;amp;gt;=0)个结点的有限集。n为0时称为空树。在任意一棵非空树中:①:有且仅有一个特定的称为根(Root)的结点;②:当n&amp;amp;gt;1时,其余结点可分为m(m&amp;amp;gt;0)个互不相交的有限集T1、T2、…、Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。这里用到了递归的方法,也就是用树的概念去定义树。这对于树是很适用的。在后面对于树的相关功能实现时...

2019-03-09 21:15:38 219

原创 串的一些基础操作(c语言)~DS笔记⑤

回文,主串,子串,空格串,空串,串的基本操作。

2019-02-28 16:58:25 597

原创 为什么要用循环队列,及基础操作代码(c语言)~DS笔记④

一般队列的弊端在于,如果不进行前移操作,那么队列队头指针终会到头。那如果我们的队列没有队尾呢?没错,循环队列就是一个‘‘环’’。。。

2019-01-29 16:01:58 4252 3

原创 几种栈(c语言)的一些基础操作~DS笔记④

栈,“共享栈”,链栈。

2019-01-24 17:48:20 494

原创 loading~加载动画(C++)基于EasyX_2018

不定期更新→_→(页面右侧有目录~)

2019-01-24 09:26:50 3159

原创 动态顺序表~DS笔记③

先附上结构体:typedef int ElemType; /*ElemType类型根据情况而定,这里为int*/typedef struct{ ElemType* data; /*线性表数据起始地址*/ int length; /*线性表当前长度*/ int capacity; /*线性表容量*/}SqList;函数声明:void ListAddCapaci...

2019-01-22 16:19:28 243

原创 算法的优劣~DS笔记②

算法:解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。算法的五个基本特性:输入、输出、有穷性、确定性、可行性。

2019-01-22 14:27:07 408

原创 数据结构基本概念~DS笔记①

尼采:人们无法理解他没有经历过的事。既然要认真学了,就还是在手里过一遍吧,这样印象比较深刻,也算是一种记录(笔记内容摘自《大话数据结构》)。

2019-01-16 16:36:36 1802

原创 c语言实现的单链表及一些基本操作

又是一篇学习记录。单链表算是很经典的一种数据结构了,记得数据结构课本开篇就讲的它。可能是因为比较简单吧。结构体代码如下:typedef struct _NODE{ int value; struct _NODE* next;}NODE, *PNODE;

2018-12-11 20:16:56 466

原创 c 语言数组基本操作(查找,修改,删除,插入)

写在前面:自己写了一边,不够精简,又借鉴了别人的例子,最后得出这个版本。恐怕既不是最简单的,也不是最精妙的,但是我目前能实现的比较清晰简洁的一版。还是先把‘‘见怪不怪’’给大牛写在前面。。。好了开始吧~第一个查找:这个没什么好说的就按值查找并返回下标就看吧~int ArrayFindByValue(int* p, int len, int value, int begin){...

2018-11-30 18:18:10 6550 1

原创 puzzle:c语言拼图小游戏

#include&amp;amp;amp;amp;amp;amp;amp;lt;graphics.h&amp;amp;amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;amp;amp;lt;conio.h&amp;amp;amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp

2018-11-23 13:07:53 1015

原创 C语言EasyX_2018中的putimage(x, y, w, h, img, x1, y1)函数

putimage(x, y, w, h, img, x1, y1);函数一共有六个参数。以下解释来自EasyX_2018的帮助文件:这个函数的几个重载用于在当前设备上绘制指定图像。// 绘制图像void putimage( int dstX, // 绘制位置的 x 坐标 int dstY, // 绘制位置的 y 坐标 ...

2018-11-23 13:03:53 8801 1

空空如也

空空如也

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

TA关注的人

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