代码随想录—刷题笔记
文章平均质量分 93
博主的刷题笔记
龙的爹2333
这个作者很懒,什么都没留下…
展开
-
代码随想录——力扣刷题笔记之双指针法
对于字符串,我们就定义两个指针(或者说是索引下标),一个从字符串前面往后扫描,一个从字符串后面往前扫描,两个指针同时向中间移动,在移动的过程中实现元素交换。双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。为什么要保存一下这个节点呢,因为接下来要改变 cur->next 的指向了,将cur->next 指向pre ,此时已经反转了第一个节点了。最后,cur 指针已经指向了null,循环结束,链表也反转完毕了。原创 2024-04-08 10:53:41 · 1027 阅读 · 1 评论 -
代码随想录—力扣刷题笔记之字符串篇
给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。对于字符串,我们就定义两个指针(或者说是索引下标),一个从字符串前面往后扫描,一个从字符串后面往前扫描,两个指针同时向中间移动,在移动的过程中实现元素交换。想一下,我们将整个字符串都反转过来,那么单词的顺序指定是倒序了,只不过单词本身也倒序了,那么再把单词反转一下,单词不就正过来了。其实,思路就是 通过 整体倒叙,把两段子串顺序颠倒,两个段子串里的的字符在倒叙一把,原创 2024-04-02 10:46:37 · 1656 阅读 · 2 评论 -
代码随想录—哈希表力扣刷题笔记
在遍历字符串s的的时候将数组中字符对应的下标加一,然后遍历字符串t的时候再将数组中字符对应的下标减一,最后我们只要检查记录的这个数组,如果有不为0的元素,那就说明这两个字符串不是字母异位词。拿这个nums数组来举例,首先将数组排序,然后有一层for循环,i从下标0的地方开始,同时定一个下标left 定义在i+1的位置上,定义下标right 在数组结尾的位置上。本题呢,我就需要一个集合来存放我们遍历过的元素,然后在遍历数组的时候去询问这个集合,某元素是否遍历过,也就是 是否出现在这个集合。原创 2024-04-01 17:18:57 · 992 阅读 · 0 评论 -
代码随想录——力扣刷题笔记之哈希表理论
什么情况下会想到使用哈希法呢?就是当我们要快速判断某个元素是否出现在集合里的时候。虽然哈希法查询操作时间复杂度为O(1),但是这是牺牲了空间换来的。从上文的描述可知,我们都是用额外的数组或者集合或者字典来存放数据,才实现了快速查找。原创 2024-03-25 16:39:29 · 1783 阅读 · 0 评论 -
代码随想录-力扣刷题笔记
数组是存放在连续内存空间上的相同数据类型的集合。要查找数组里的数据一般通过查找数据的下标索引的方式来查找。由于数组的这个特性,所以数组删除或添加元素的时候,不能直接进行删除操作。在增加或删除元素的时候,需要通过移动其他元素的地址来达到目的。给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。输入:nums = [-1,0,3,5,9,12]输出:4解释:9 出现在nums中并且下标为4。原创 2024-03-12 17:29:31 · 2048 阅读 · 2 评论 -
代码随想录——力扣刷题笔记之链表
在这里我使用Python来定义链表节点方式,采用函数的方式(参考力扣上给出的方式)原创 2024-03-18 15:49:02 · 1021 阅读 · 1 评论 -
代码随想录——力扣刷题笔记之链表面试题
题目描述:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回。示例1:示例2:遍历整个链表,找到数据域等于题目给出数据的节点,直接删除。由于我使用的是Python所以不用额外free节点,如果使用别的语言要注意一下free操作。本题的大体思路较为简单。但还是有个难点,如果要删除的节点是头结点要怎么办?这里我们可以采用设置一个虚拟头节点的方式。也就是说,我们可以先设置一个虚拟头节点,再进行删除操作。原创 2024-03-18 16:55:17 · 955 阅读 · 1 评论