- 博客(5)
- 收藏
- 关注
原创 代码随想录算法训练营第六天|242.有效的字母异位词、349.两个数组的交集|202.快乐数 |1.两数之和
判断一个元素是否出现集合里的时候,就要考虑哈希法。哈希数值比较小、范围也小,用数组;数值大用set;K对应value用map。
2024-07-22 23:49:13
367
原创 代码随想录算法训练营第三天|203.移除链表元素、707.设计链表、206.反转链表
思路:为了方便统一操作,设置一个虚拟头节点dummy node,指针指向链表的头节点,设置pre对应虚拟头节点,cur对应头节点。当cur不为空时,如果当前cur.val等于给定val,则让pre的指针域指向cur的下一个节点,即可删除cur节点,此时cur移动到cur.next。如果cur.val不等于val,则让pre向后移动到cur,cur也向后移动到cur.next。这行代码创建了一个新的ListNode对象,并将其初始值(val)设置为0,同时下一个节点(next)默认被初始化为null。
2024-07-22 01:59:06
117
原创 代码随想录算法训练营第二天| 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵Ⅱ
思路:双指针从左右两侧向中间迭代,定义一个新数组result(与nums数组长度相同),定义新数组的指针在最右侧(因为平方之后大的数字要放在最右边),比较平方后的元素值大小,如果右侧的元素平方后更大,就将此值放到新数组index的位置,然后index左移一位,同时right也左移一位;思路:设置两个指针起始点均为左侧,right先开始移动,此时sum开始累加每个right值,直到sum大于等于target值。此时需要向右移动left指针,sum值发生改变,即sum = sum - nums[left];
2024-07-19 00:25:06
221
原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
定义快慢指针,从前往后遍历,快指针负责判断该元素是不是所需元素,慢指针负责确定元素放的位置,当快指针处的元素不是value时,才把快指针元素赋给慢指针的位置,以此类推。也就是说,当快指针元素是value时,慢指针不移动,快指针往后移动。>> : 右移运算符,num >> 1,相当于num除以2。>>> : 无符号右移,忽略符号位,空位都以0补齐。4.注意做左闭右闭,左闭右开的不同。2.java中有三种移位运算符。3. &&且 ||或。好的开始,继续努力!
2024-07-18 00:22:58
196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人