自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 力扣刷题笔记-全排列

接着用同样的方式继续回溯和尝试:当以 1 开头的所有情况都尝试完后,就把第一把椅子上的 1 请走,改让 2 坐在第一把椅子上,得到 2 _ _,再安排后两把椅子,生成 [2,1,3] 和 [2,3,1];于是改让 3 坐在第二把椅子上,得到 1 3 _,再来到第三把椅子,此时只能让 2 坐下,形成 1 3 2,这又是一个完整排列,记录下来。总之,算法就是从左到右逐个位置填数字,每一层递归负责“填一个位置”,每一层都尝试所有还没用过的数字,当填满时记录结果,然后逐层撤销选择,继续尝试其他可能。

2025-12-21 21:51:50 415

原创 力扣刷题笔记-组合总和

比如candidates = [2,3,6,7], target = 7的时候,第一次先选一个数2,把2加入到path中,这时还没有达到target的值,可以再选一个数,这时还是可以按顺序选[2,3,6,7]中的所有数,做循环尝试,可以就再选2试试,这时path中已经有[2,2]了,和还是没达到target,还可以继续加数,再加一个2试试,最后发现[2,2,2]后面再加数已经不行了,加任何数都走不通了,那么就会把最后加进去的那个 2 踢掉,回到 [2, 2] ,然后在这一层尝试别的选择。

2025-12-21 15:46:06 399

原创 【力扣刷题笔记-在排序数组中查找元素的第一个和最后一个位置】

当nums[mid] < target 时,left 才会右移到mid + 1,这时mid左边的所有位置,已经全部被确认 < target,那么不管如何移动,left也保证了它左边的所有数肯定都会 < target,这样,在循环结束之后,left 一定会指向第一个 ≥ target 的位置。第 1 次循环:mid = 5,nums[5] = 4 ,nums[mid] <= target,这里还是 4,但不确定是不是最后一个,所以向右继续找,把 left 移到 mid + 1 = 6。

2025-12-17 22:00:35 595

原创 力扣刷题笔记-下一个排列

从后往前找到 j = 4,比 5 大的最小元素是 6,此时,交换 i 与 j 位置的数字nums[i] 和 nums[j],得到 [1, 8, 6, 7, 5, 3]。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。而 arr = [3,2,1] 的下一个排列是 [1,2,3] ,因为 [3,2,1] 不存在一个字典序更大的排列。例如,arr = [1,2,3] 的下一个排列是 [1,3,2]。

2025-12-16 22:35:41 604

原创 力扣刷题笔记-删除链表的倒数第N个结点

这个例子里,p和q都移动了3次,此时p恰好指向要删除的结点4。这一题最重要的是怎么找到倒数第n个结点,因为链表的长度其实我们是不知道的,这里指向链表的指针只能单向移动,按一般的思路的话我们用指针只有遍历完一遍确定链表的长度之后,才能确定倒数第n个结点的位置,然后再从头开始遍历去找这个结点把它删掉。pre ,p , q都向右移动,直到q指向空的时候停下来,这时候p指向了要删除的那个结点,然后pre->next=p->next,完成结点的删除,最后直接返回dummyHead->next就是删除后的链表。

2025-09-13 21:44:23 555

原创 力扣刷题笔记-电话号码的字母组合

就像走迷宫,刚开始先选择a这个口,沿着 ‘a’ → ‘d’、‘e’、‘f’ 一条条走到底生成 “ad”,“ae”,“af”,然后回到之前的分叉口尝试 ‘b’ → ‘d’,‘e’,‘f’,生成 “bd”,“be”,“bf”,再回去尝试 ‘c’ → “cd”,“ce”,“cf”,直到所有路径走完。这里会进行递归处理,index 代表当前正在处理的数字在输入字符串中的索引,每递归一次,index 加 1(index + 1),表示 “处理完当前数字,该处理下一个数字了”。答案可以按 任意顺序 返回。

2025-09-12 14:26:51 1070

原创 力扣刷题笔记-三数之和

假设数组是 nums = [-1, -1, -1, 0, 1, 2](索引 0、1、2 都是 - 1),初始 left=1(指向第二个-1),right=5(指向最右边那个2),此时nums[0] + nums[1] + nums[5] = -1 + (-1) + 2 = 0 → 组合 [-1,-1,2](有效)。[-4, -1, -1, 0, 1, 2]中,可能会用第一个 -1 当固定数找到 [-1,-1,2],再用第二个 -1 当开头,又找到一次 [-1,-1,2],这就重复了。

2025-09-10 23:52:20 931

原创 力扣刷题笔记-盛最多水的容器

这个时候左边的那根柱子更低一点,如果我们固定了左边界不动,只移动右边界,宽度就会减小,那高度是否会增大?既然水域宽度也减小了,高度也不可能增高,所以固定比较矮的左边界去移动右边界的做法是不行的。其实就是下面红线的那个区域,宽度乘以高度,宽度是已知的( right - left ),而高度是取决于最矮的那根柱子的,即min(h[left] , h[right]),现在图中看也就是此时left指向的那根柱子。到了这个时候也是一样的操作,比较两根柱子的高度,如果右边界的柱子比较低,那么就去移动右边界。

2025-09-10 15:05:41 871

原创 力扣刷题笔记-最长回文子串

定义 dp[i][j] 表示子串 s[i…j](从索引 i 到 j)是否为回文串,状态值为true表示是回文串,false表示不是回文串。

2025-09-10 00:33:07 573

原创 力扣刷题笔记-无重复字符的最长子串

更新哈希表:把 ‘b’ 的位置覆盖成 7,现在 hashmap 变成 {‘a’:3, ‘b’:7, ‘c’:5},调整后窗口变成 [7,7],窗口内只有新 ‘b’;调整左边界:left = 0 + 1 = 1(避开重复的旧 ‘a’),调整后窗口变成 [1,3],窗口内有 ‘b’、‘c’ 和新 ‘a’;调整左边界:left = 1 + 1 = 2(避开重复的旧 ‘b’),调整后窗口变成 [2,4],窗口内有 ‘c’、‘a’ 和新 ‘b’;如何判断新加的数和滑动窗口内的数重复?我们把数一个个存到哈希表里面。

2025-09-05 22:35:45 918

原创 力扣刷题笔记-两数相加

指针a刚开始指的是虚拟头节点dummyHead,可以用指针 a 一步步往后 “延长” 结果链表,每一步新增一个节点存当前位的计算结果,carry 进位也从个位到高位依次传递,最后去掉本就不要的dummyHead,返回真正的结果链表。2.有可能在计算的时候,链表最后一个数相加还要进位,比如511+511,百位是5 + 5 =10,得出来的数是1022, 两个三位数相加可能是四位数。构建结果节点:a->next = new ListNode(8)(结果链表现在是 dummyHead → 7 → 0 → 8)

2025-09-04 21:35:28 679

原创 【力扣刷题笔记-两数之和】

分析:这一题可以使用哈希表来解决,可以对每个元素都算一下与目标值的差值,这个差值就是我们要找的配对的那个数,在哈希表中查一下这个数存不存在,如果存在的话就返回这两个数的下标。这个哈希表可以一边构造一边找,也就是说如果查找的时候没找到自己的那个搭子,就可以把自己加到哈希表里面,让后来的数字在表里可以找到自己。• 这样,当后续遍历到某个元素 nums[j] 时,就能通过哈希表快速查到之前是否有元素 nums[i] 满足 nums[i] + nums[j] = target。你可以按任意顺序返回答案。

2025-08-27 00:15:07 281

原创 牛客网shell基础编程

shell统计文件行数

2022-05-15 10:15:27 541

原创 nginx学习笔记

nginx学习笔记

2022-05-12 11:36:03 1288

原创 nginx安装(linux版)

nginx安装

2022-05-07 23:11:57 1467

原创 【Linux磁盘管理基础命令】

磁盘管理基础命令

2022-04-29 23:12:49 721

原创 【Linux网络管理】

Linux网络管理

2022-04-29 23:03:08 1388

原创 【b站黑马程序员学习笔记-shell入门编程】

b站黑马程序员学习笔记-shell入门编程

2022-04-27 22:51:23 3112

原创 vim程序编辑器

vim基础知识

2022-04-09 15:21:21 1261

原创 Linux文件与目录管理

LINUX文件与目录管理常用命令

2022-03-27 22:45:08 888

原创 牛客网基础C++编程-点和圆的位置关系

牛客网基础C++编程-点和圆的位置关系

2022-03-23 15:40:46 1847

原创 C++引用方式实现两数交换

C++引用方式实现两数交换

2022-03-22 23:29:42 2211

原创 C++字符判断函数

C++字符判断函数

2022-03-22 21:28:29 1161

原创 牛客网基础C++编程-创建动态数组

牛客网基础C++编程-创建动态数组

2022-03-22 11:21:57 1990

原创 牛客网基础C++编程-比较字符串大小

牛客网基础C++编程-比较字符串大小

2022-03-22 00:07:16 918

原创 牛客网基础C++编程-数组元素处理

牛客网基础C++编程-数组元素处理

2022-03-21 22:25:48 395

原创 【b站黑马程序员C++视频学习笔记-文件操作】

C++文件操作

2022-03-06 22:24:39 9035

原创 【b站黑马程序员C++视频学习笔记-多态案例三-电脑组装】

多态案例之电脑组装

2022-03-06 17:31:17 7326

原创 【b站黑马程序员C++视频学习笔记-虚析构和纯虚析构】

虚析构和纯虚析构

2022-03-06 12:09:23 5549

原创 【b站黑马程序员C++视频学习笔记-多态案例二-制作饮品】

多态案例-制作饮品

2022-03-06 10:59:07 6895

原创 【b站黑马程序员C++视频学习笔记-纯虚函数和抽象类】

纯虚函数和抽象类

2022-03-05 21:28:53 1022

原创 【b站黑马程序员C++视频学习笔记-多态案例一-计算器类】

多态案例之计算器

2022-03-05 20:37:02 418

原创 【b站黑马程序员C++视频学习笔记-多态的基本概念】

多态的基本概念

2022-03-05 15:51:36 697 1

原创 【b站黑马程序员C++视频学习笔记-菱形继承】

菱形继承(钻石继承)

2022-03-05 14:07:57 760

原创 【b站黑马程序员C++视频学习笔记-多继承语法】

多继承语法

2022-03-03 17:18:25 240

原创 【b站黑马程序员C++视频学习笔记-继承同名静态成员处理方式】

继承同名静态成员

2022-03-03 16:23:02 317

原创 【b站黑马程序员C++视频学习笔记-继承同名成员处理方式】

继承同名成员处理方式

2022-03-03 15:01:56 422

原创 【b站黑马程序员C++视频学习笔记-继承中构造和析构顺序】

继承中构造和析构顺序

2022-03-03 11:11:20 474

原创 【b站黑马程序员C++视频学习笔记-继承中的对象模型】

继承中的对象模型

2022-03-03 10:38:43 523

原创 【b站黑马程序员C++视频学习笔记-继承方式】

继承方式

2022-03-01 20:05:19 433

空空如也

空空如也

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

TA关注的人

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