leetcode刷题
??????~????
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营第六天|(哈希表)242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
242.有效的字母异位词。原创 2024-06-27 17:22:48 · 574 阅读 · 0 评论 -
代码随想录算法训练营第五天|24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 160.链表相交 142 .环形链表II
法一是两次遍历,第一次测出链表长度,从而第二次知道指针该停在哪。比较简单,算出两个链表长度的差值,然后让较长的那个移动差值个距离,再比较。相当于改变链表next指针指向,其中要用到两个temp结点。双指针,但分析比较难想到。19.删除链表的倒数第N个节点!24. 两两交换链表中的节点。142 .环形链表II!原创 2024-06-25 21:56:44 · 334 阅读 · 0 评论 -
代码随想录算法训练营第四天| 203.移除链表元素,707.设计链表,206.反转链表
首次尝试:代码逻辑基本正确,代码有些错误。1.要在类里定义变量size和dummyhead虚结点来初始化链表。2.不能把size--当作while循环里的条件,不同于index。3.有的记得加上size++或size--。其他注意点:1.可以通过函数调用来简化该代码。区分链表的初始化与结点的定义。链表比较基础的按值查找并删除,分带/不带虚拟头结点。法一:双指针 法二:前向递归 法三:反向递归(正向反向由先递归还是先执行代码来控制)本题递归法特别是法三的代码理解有点难。本题3种方法可直接参考代码随想录。原创 2024-06-24 21:53:25 · 392 阅读 · 0 评论 -
代码随想录算法训练营第二天|(双指针)977.有序数组的平方;(滑动窗口)209.长度最小的子数组;(循环不变量原则)59.螺旋矩阵II
思路:两个for循环,第一个for遍历子数组左边界,第二个for可以break。法一:暴力 O(n^2)或O(nlogn) 取决于排序的方式。法一:暴力O(n^2) (超时了)209.长度最小的子数组!977.有序数组的平方!法二:滑动窗口 O(n)法二:双指针 O(n)原创 2024-06-22 23:32:52 · 447 阅读 · 0 评论 -
代码随想录算法训练营第一天| (二分查找)704. 二分查找、35.搜索插入位置、69.x 的平方根、367.有效的完全平方数;(移除元素)27. 移除元素
思路:如代码注释里最后几行,考虑从循环里跳出前最后一步left=right=i。以及跳出后left=right+1,此时left=i或者right=i。原因:一开始自己想先一个循环记录,再一个循环更新,发现不行。思路:基本的二分查找法,注意左闭右闭和左闭右开代码的区别。思路:同35题也是二分查找,找不到就插入。首次尝试:基本成功,不过犯了越界的错误以及左右边界初始值取错。首次尝试:基本成功,不过犯了越界的错误。易错:越界 (long long)367.有效的完全平方数!思路:二分查找,都不用插入。原创 2024-06-21 21:40:11 · 581 阅读 · 0 评论