自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 环形链表力扣--142

定义一个快指针一个慢指针,让快指针一次走两个结点,慢指针一次走一个结点,如果有环的话快指针会先进入,然后满指针也进入,快指针走的快,一直在环里,所以一定会和慢指针相遇,所以这个可以用来判断是否有环。所以我们在相遇的点处设置一个l1,在头的部分设置l2 ,让他们移动相同距离,最终他们相遇的位置就是环的入口。,n为fast指针在环内走了n圈才遇到slow指针, (y+z)为 一圈内节点的个数A。因为要找环形的入口,那么要求的是x,因为x表示 头结点到 环形入口节点的的距离。,返回链表开始入环的第一个节点。

2024-04-09 09:46:11 536

原创 python基础笔记

def 函数名(传入参数):函数体return 返回值调用:函数名(参数)如果参数和返回值不需要的话可以省略函数必须先定义后使用def 函数名(传入参数):函数体return 返回值变量=函数(参数)lambda 传入参数:函数体(一行代码)lambda 是关键字,表示定义匿名函数传入参数表示匿名函数的形式参数,如:x, y 表示接收2个形式参数只能写一行,无法写多行代码test(lambda x,y:x+y) #结果为3#定义字典字面量#定义字典变量#定义空字典。

2024-04-09 08:53:59 894

原创 链表相交面试题

从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。若两链表 有 公共尾部 (即 c>0 ) :指针 A , B 同时指向「第一个公共节点」node。他是链表尾部相交,所以我们需要先得到两个链表的长度。后面为了方便分析判断,链表长的我们让他都为A。若两链表 无 公共尾部 (即 c=0) :指针 A , B 同时指向 null。在 B 中,相交节点前有 3 个节点。相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。如链表A+链表B=链表C1。

2024-04-09 08:47:23 805

原创 删除链表的倒数第n个结点力扣--19

应该使用双指针,首先创建一个虚拟头节点,然后再设置两个指针都指向这个虚拟头节点。移动fastnode,直到它找到第n个元素的后一个结点,此时同时移动fastnode和slownode,当dastnode指向末尾。假如让快指针移动n步的话,到最后slow指向的是要删除元素的前一个,所以为了方便,我们让fastnode移动n+1。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。

2024-04-09 08:08:34 175

原创 两两交换链表中的节点力扣--24

在while循环中,如上图,这个是一个偶数的链表,然后进行完这一轮以后就temp就指向了4,然后由于是两个交换,这样就正好完成,我们发现这种情况的特征是它后面的指针是null,然而如果是奇数的话,相当于4后面还有一个5,但是5是单独的,没有人和他交换了,所以是第二种情况。经过步骤一以后,cur和1之间的箭头断了,无法表示1,所以我们想到用临时变量来存储它的值,即firstnode,同理,当2指向1以后,和3之间的箭头就断了,所以还需要另外一个变量temp去存储。while的两个条件能否交换?

2024-04-08 21:28:59 405

原创 反转链表力扣--206

一直移动一直移动直到最后curr指向null了,pre指向尾指针,此时就不用继续了,因为我们不需要让这个null空指针再指向头指针了。首先需要定义一个curr,用来指向头指针,反转之后头指针就变成尾指针了,尾指针会指向null,所以在头指针的前面我定义了一个pre,让他初始化等于null。如果3,4互换位置的话,相当于curr先等于了它原来next的值,此时curr已经改变了,他改变以后才动pre,这是错误的。此时curr的next就是指向了pre的位置,所以这是第二步。改变指针next的指向就可以了。

2024-04-08 20:38:09 235 1

原创 设计链表力扣--707

首先对于插入,要先创建一个新的节点,然后再把这个节点添加到链表当中,在添加的过程中,要先进行这个连接操作,就是先进行右边连接的箭头,再让左边的指向箭头指向这个新建的链表。然后进行操作的关键是找清楚到底是要curr还是curr.next这个问题。以指示链表中的上一个节点。假设链表中的所有节点下标从。你可以选择使用单链表或者双链表,设计并实现自己的链表。这道题都是链表的基础操作,需要多加练习。是指向下一个节点的指针/引用。如果是双向链表,则还需要属性。

2024-04-08 19:45:00 117

原创 链表--移除链表元素--力扣203

假如这个链表是1 1 1 1 1 1,然后恰好要删除元素的值也为1,如果是if的话就进行一次,而我们需要的是一直删除,所以while更合适。示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]情况二较为简单,直接遍历找到要删除的元素,使要删除元素的前一个值的下一个元素直接等于要删除的后一个元素。示例 3: 输入:head = [7,7,7,7], val = 7 输出:[]分为两种情况:1.被移除的是头元素 2.被移除的不是头元素。

2024-04-08 18:25:43 308 2

原创 螺旋数组--力扣146(同54)

提取元素,然后再进入内部一层重复相同的步骤,直到提取完所有元素。:从左上角开始,按照。

2024-04-03 14:48:51 144 1

原创 螺旋矩阵--力扣54

这个四个角的元素其实加进去两次,但是数组中不能有重复元素(?i++ : 先用a的原值,然后i加1;++i :先给a加1,然后用i的新值。,返回矩阵中的所有元素。和之前一样也是转圈圈得到。

2024-04-03 14:33:07 297 1

原创 螺旋矩阵--力扣59--螺旋矩阵||

想法遵循二分法的循环不变量原则。我们选择第一行从左到右,接着从上到下,再从右到左,最后从下到上;一层循环结束后进行第二层......这里采用左闭右开,就是有四个角,每一行都是包含开头那个角,另外一个角等处理旁边那条边的时候再进行,这样有一个规则就不会弄混了。相当于是一个绕正方形,首先弄明白环绕方式,然后它的关键在于正方形四个角的处理。所有元素,且元素按顺时针顺序螺旋排列的。同一个颜色代表同一次处理。

2024-04-02 21:28:14 247 1

原创 滑动窗口--力扣209--长度最小的子数组

假如给出:1 1 1 1 100,这一串数字,然后目标值是100,终止位置直接移动到了最后一位,此时num=104,就要开始移动初始位置了。先移动一位变成103,还是比100大,需要再次移动,变成102,101...所以滑动窗口的精髓在于一直移动,一直往后移,如果写成if的话,他就会第一次104符合条件然后直接结束,找到的不是符合要求的最小长度。在暴力解法中,是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。个正整数的数组和一个正整数。

2024-04-02 19:53:54 916 1

原创 力扣977--有序数组的平方

数组平方后进行排序,非负的部分的顺序不会改变,会改变的其实就是负数部分,所以在数组开头和结尾各一个指针,让他们相互逼近,然后定义一个新的数组的索引,把排好的放进去。平方后,数组变为 [16,1,0,9,100] 排序后,数组变为 [0,1,9,16,100]组成的新数组,要求也按。

2024-04-02 18:52:18 186 1

原创 力扣844--比较含退格的字符串

给定s和t两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回true。代表退格字符。如果对空文本输入退格字符,文本继续为空。

2024-04-02 18:20:58 90 1

原创 力扣283--移动0

移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。和之前不同的地方在于它把0加到了后面。本题的关键在于数组长度不会改变。,编写一个函数将所有。

2024-04-02 11:47:53 103 1

原创 二分法--力扣34--在排列数组中查找元素的第一个和最后一个位置

请你找出给定目标值在数组中的开始位置和结束位置。给你一个按照非递减顺序排列的整数数组。你必须设计并实现时间复杂度为。如果数组中不存在目标值。

2024-04-02 11:42:50 152 1

原创 删除元素--力扣26--删除有序数组中的重复项

返回删除后数组的新长度。非严格递增:即有可能相等,双指针方便。删除重复出现的元素,使每个元素。

2024-04-02 09:39:31 145 1

原创 数组--移除元素--力扣27

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。不要使用额外的数组空间,你必须仅使用。的元素,并返回移除后数组的新长度。

2024-04-02 09:25:58 241 1

原创 力扣367.--有效的完全平方数

是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。不能使用任何内置的库函数,如。是一个完全平方数,则返回。

2024-04-02 08:57:03 150 2

原创 力扣69--x 的平方根

遗留问题:为什么if那里的数据类型要强转一下,转成long呢?请你找出给定目标值在数组中的开始位置和结束位置。给你一个按照非递减顺序排列的整数数组。你必须设计并实现时间复杂度为。如果数组中不存在目标值。

2024-04-02 08:43:23 203 2

原创 二分法--力扣35--搜索插入位置

【代码】二分法--力扣35--搜索插入位置。

2024-03-28 16:52:48 98 1

原创 二分法--力扣704

题目前提:有序无重复1.left<right还是小于等于?2.缩小范围是缩小到middle还是middle-1?

2024-03-28 16:36:15 123

python基础知识思维导图

python基础知识思维导图

2024-05-08

python基础知识思维导图

python基础知识思维导图

2024-05-08

python基础笔记大学

python基础笔记

2024-04-09

空空如也

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

TA关注的人

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