- 博客(8)
- 收藏
- 关注
原创 代码随想录07-哈希表
详细解释:1,getOrDefault()方法:获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值。上面的方法中map.getOrDefault((nums1[i] + nums2[j]),0)即是,从map中获取Key((nums1[i] + nums2[j]))对应的value,如果没有返回默认值0;这句代码具体是怎么实现统计出现的次数的呢m++){n++){}这段代码的执行逻辑是什么呢?为什么能够统计最终的次数呢?
2025-09-10 20:09:33
488
原创 Day04 -代码随想录刷题 -链表
如果 a不等于b,则指针 pA 会遍历完链表 headA,指针 pB 会遍历完链表 headB,两个指针不会同时到达链表的尾节点,然后指针 pA 移到链表 headB 的头节点,指针 pB 移到链表 headA 的头节点,然后两个指针继续移动,在指针 pA 移动了 a+c+b 次、指针 pB 移动了 b+c+a 次之后,两个指针会同时到达两个链表相交的节点,该节点也是两个指针第一次同时指向的节点,此时返回相交的节点。重点数学思想,如果有相交节点,两个指针分别移动a+c+b和b+c+a步后同时走到相交节点。
2025-08-26 20:11:31
678
原创 Day03-代码随想录刷题-链表
思路一:直接操作原链表直接操作原链表需要注意对头节点的判断,如果头节点为空直接返回,如果头节点的next为空且头节点的val = target ,则说明这个链表只有一个节点,删除后返回空。如果头节点的next!= null 且头节点的值不为target,就要往后判断,注意整个判断过程中头节点的值是不能变的,所以要用定义一个ListNode = head。操作这个指针去做遍历判断,如果cur.next.val!= target则cur = cur.next。但是这个函数最终返回的值应该是原来的头节点。
2025-07-28 22:35:43
885
原创 Day03--01链表理论基础
链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域,一个是指针域存放指向下一个节点的指针,最后一个节点的指针域为null,链表的入口节点称为链表的头节点head。//结点的值int val;//下一个结点//节点的构造函数(无参)//节点的构造函数(有一个参数)//节点的构造函数(有两个参数)
2025-07-25 21:47:41
147
原创 Day02-代码随想录第二天刷题
首先考虑的解法是暴力求解,定义一个min = Integer.MAX_VALUE后期与每层暴力求出的数组长度对比,使用两层循环,外层循环控制整体数组的遍历,定义一个sum记录累加的值,比如nums[2,3,1,2,4,3],target = 7,首先令sum = nums[i],如果第一个元素就是7或者比7大的数,就直接return最小子数组长度为1。
2025-07-25 21:23:31
382
原创 Day01 - 代码随想录算法刷题
二分查找考察的是对数组的简单运用,关键点在于对临界条件的判断,首先要确定查找的区间是左闭右闭区间还是左闭右开区间,同时循环区间内不能包含已经筛除的值。左闭右闭区间循环判断条件是(left <= right)这个区间内至少有一个元素,例如[1,1],在更新区间端点的值时,左端点的值 mid + 1,右端点的值 mid - 1。左闭右开区间循环判断条件是(left < right)这个区间可能没有元素,例如[0,1),在更新区间左右端点的值时,左端点为mid + 1,右端点为mid。
2025-07-24 18:22:52
851
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2