- 博客(7)
- 收藏
- 关注
原创 代码随想录算法训练营第五天| LeetCode242 有效的字母异位词、LeetCode349 两个数组的交集、LeetCode202 快乐数、LeetCode1 两数之和
如果 可以变为 1,那么这个数就是快乐数。但始终不到1,在求每一位平方和的过程中,可能出现重复元素,这就意味着会无限循环下去,因此需要用一个set来保存每一次平方和的结果。示例2:输入:nums1 = [4, 9, 5], nums2 = [9, 4, 9, 8, 4] 输出:[9, 4]将nums1中所有元素存入一个set中,遍历nums2,若nums2[i]在set中,说明nums2[i]为交集元素。示例1:输入:nums1 = [1, 2, 2, 1], nums2 = [2, 2] 输出:[2]
2025-01-17 12:08:10
604
原创 代码随想录算法训练营第四天| LeetCode24 两两交换链表中的节点、LeetCode19 删除链表的倒数第N个结点、面试题 02.07.链表相交、LeetCode142 环形链表II
1、引入虚拟头节点dummyHead方便删除,定义一个快指针fast,一个慢指针slow,初始都指向dummyHead节点,为找到倒数第n个节点的前一个节点(为删除倒数第n个节点),指针fast先向前移动n+1步,之后指针slow与指针fast同时向前移动,直到fast为空,此时删除slow指向的下一个节点即可。由于快指针fast比慢指针slow走的要快,因此若链表内有环,fast一定先进入环内,若fast与slow相遇,则一定是fast追slow,那fast至少在环内转了一圈。
2025-01-13 14:04:40
480
原创 代码随想录算法训练营第三天| LeetCode203 移除链表元素、LeetCode707 设计链表、LeetCode206 反转链表
最开始我个人思路是临时指针temp保存当前节点,然后cur指向下一个节点,等改变了temp节点的方向后,pre指针指向temp节点,这样导致无法改写成递归。3.2 当cur不是最后一个节点时,需要改变每个节点的指向,临时变量temp记录当前节点cur,cur指向下一个节点,更改temp节点next指向,如下。定义一个指针pre=NULL,一个指针cur=head,cur指针向后遍历,分别把途中的节点的next指向前一个节点,直到最后一个节点。节点开始遍历,则到达下标为index节点的前一个节点,
2025-01-11 17:30:05
1588
原创 代码随想录算法训练营第二天| LeetCode209 长度最小的子数组、LeetCode59 螺旋矩阵Ⅱ、卡码58 区间和、卡码44 开发商购买土地
两层for循环,第一层for循环控制开始位置,第二层for循环控制结束位置,不断遍历子区间,返回最小区间长度1、简化暴力方法中两个for循环为一个for循环2、for循环中变量j记录终止位置,寻找从i到j所有元素累加后的sum大于等于targettarget = 7,并记录当前区间长度为subl。
2025-01-10 20:43:56
589
原创 代码随想录算法训练营第一天| LeetCode34、LeetCode27 移除元素、LeetCode977 有序数组的平方
分析:由于数组中有正数有负数,且从小到大排列,那么在每个元素平方后的数组,最大值一定在两边,利用双指针,一头一尾,分别向中间靠拢,利用头插法依次将最大的元素插入到vector中。vector中erase()函数用于从指定位置或范围中删除容器中的元素,erase的实现机制和数组删除元素一样,删除元素后需要先前移动后面的元素,时间复杂度为O(n)。数组是一片连续的空间,删除一个元素并不会删除该元素所占空间,而数组是一片连续的空间,故删除一个元素后需要向前移动剩余元素以用新元素覆盖掉被删除元素所占的那块空间。
2025-01-08 23:12:14
382
原创 微信小程序毕设遇到的坑2:canvas绘制图片,以及在绘制的图片上添加矩形遮挡物
在利用微信小程序canvas时,遇到了诸多问题,特在此记录了其中一个。
2022-05-02 14:17:01
1127
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人