- 博客(15)
- 收藏
- 关注
原创 《代码随想录》学习笔记---LeetCode454:四数之和
给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:示例 1:输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输出:2解释:两个元组如下:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/4sum-ii。
2023-02-17 21:25:24
171
原创 《代码随想录》学习笔记---LeetCode.1两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。来源:力扣(LeetCode)
2023-01-31 17:28:02
160
原创 《代码随想录》学习笔记---LeetCode.349 两个数组的交集
给定两个数组 nums1 和 nums2 ,返回 它们的交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的提示:来源:力扣(LeetCode)
2023-01-31 16:47:44
130
原创 《代码随想录》学习笔记---LeetCode.242:有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false提示:s 和 t 仅包含小写字母来源:力扣(LeetCode)
2023-01-31 16:28:21
118
原创 《代码随想录》学习笔记---hash table理论基础
哈希表是根据关键码的值直接访问数据的数据结构,常用的数组就是一张哈希表,关键码就是数组的索引下标,通过下标直接访问数组中的元素哈希表一般用来快速判断一个元素是否出现在集合中
2023-01-31 16:06:55
45
原创 《代码随想录》学习笔记---环形链表Ⅱ
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改链表。示例 1:输入:head = [3,2,0,-4], pos = 1。
2023-01-30 18:42:47
100
原创 《代码随想录》学习笔记---删除链表倒数第n个节点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]来源:力扣(LeetCode)
2023-01-30 16:17:41
102
原创 《代码随想录》学习笔记---反转链表(LeetCode.206)
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]来源:力扣(LeetCode)链接:https://leetcode.cn/problems/reverse-linked-list。
2023-01-30 15:37:38
173
原创 《代码随想录》学习笔记---链表常见六个操作
设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。
2023-01-30 12:52:37
140
原创 《代码随想录》学习笔记---采用虚拟头节点删除指定节点
要求删除链表中数据值等于val的所有节点显然,需要从头节点开始遍历整个链表进行删除基本的删除操作没有问题,只需要把【被删除节点】的前一节点next指针指向【被删除节点】的后一节点即可,删除依赖于前一节点头节点没有前置节点,应该如何删除?有两种思路:特殊处理头节点和使用虚拟头节点
2023-01-30 11:23:34
44
原创 《代码随想录》学习笔记---链表基础
链表由节点和节点之间的指针相连构成,一个最基本的链表结构如下所示该结构的data域只含有一个int型变量val,next指针指向下一个结点增加或删除节点,只需要修改指针之间的关系即可,时间复杂度均为O(1)但是因为存储并不连续,所以链表不支持简单的下标访问,故而访问节点的时间复杂度为O(n)
2023-01-30 10:57:48
91
原创 《代码随想录》学习笔记---螺旋矩阵Ⅱ
给你一个正整数n,生成一个包含1到所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵matrix。【示例】输入n=3时,得到如下矩阵。
2023-01-29 17:19:37
160
原创 《代码随想录》学习笔记---数组【长度最小子数组】
再一个正整数数组nums中找到总和大于target的长度最小的连续子数组【示例】输入:target=12, nums={,4,6,2,4,9,8,7}输出:2。
2023-01-29 09:51:00
36
原创 《代码随想录学习笔记》---数组【移除元素】
因为数组顺序存储的特性,要求删除数组中【指定数值】并不像链表一样简便,需要将其后续存储内容顺次前移覆盖。抱着玩玩leetcode打发时间的心态,我尝试了一共四种写法。
2023-01-28 12:13:59
48
原创 《代码随想录学习笔记》---数组【有序无重复序列二分查找】
有序无重复序列的二分查找原理很简单,在这里记录一些容易导致困惑的点1)对于中间值【middle】的选取,最好用下图所示的方式,有效防止溢出2)涉及具体的循环遍历,有如下两种模式模式一:闭区间二分查找(1)搜索的区间是[left, right],所以在while循环进行判断的时候(left==right)的case是可以存在的(2)同理,如果nums[middle]>target,说明要向左半个区间搜索,nums[middle]!=target,所以取【right=middle-1】完整代码如下。
2023-01-23 11:20:38
50
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人