- 博客(14)
- 收藏
- 关注
原创 代码随想录算法训练营第十二天 | LeetCode 454、15、18、哈希表小结
四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况。ii)nums[i] + nums[left] + nums[right] > 0,说明此时的最大数nums[right]太大了,右边界向右移动(right--),三数之和的时间复杂度是O(n^2),四数之和的时间复杂度是O(n^3)。
2024-10-19 15:02:56
1668
原创 代码随想录算法训练营第十一天 | LeetCode 349、350、202、1
哈希表:查询一个元素是否出现过,查询一个元素是否在数组里哈希表:查询一个元素是否出现过,查询一个元素是否在数组里。
2024-10-18 18:07:52
865
原创 代码随想录算法训练营第十天 | 哈希表基础、LeetCode 242、383、49、438
哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素。
2024-10-10 15:27:47
424
原创 代码随想录算法训练营第八天 | LeetCode 206、24、19、02.07、142、小结
(这样快慢指针正好相差n个结点)/*** int val;* val = x;* }* }*/= null) { // 求链表A的长度lenA++;= null) { // 求链表B的长度lenB++;// 让curA为最长链表的头,lenA为其长度// 求长度差// 让curA和curB在同一起点上(末尾位置对齐)gap--;// 遍历curA 和 curB,遇到相同则直接返回= null) {
2024-10-06 09:44:39
1474
1
原创 代码随想录算法训练营第七天 | 链表基础、Leetcode203、707
链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是一个是(存放指向下一个节点的指针),最后一个结点的指针域指向null。
2024-09-28 20:04:27
483
1
原创 代码随想录算法训练营第四天 | 滑动窗口!LeetCode 209 ,904
窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。题目思路:(暴力会超时)只用一个for循环,遍历窗口的终止位置。窗口就是 满足其和 ≥ s 的长度最小的 连续 子数组。题目思路:哈希表 + 滑动窗口。时间复杂度: O(n)
2024-09-19 18:43:36
281
原创 代码随想录算法训练营第二天 | LeetCode 27 移除元素(双指针法)以及26,286
题目思路:双指针的slow指针就是用来存放新数组的下标,fast指针是用来遍历整个数组来找到目标元素的,通过这个基本的思维来发散。题目思路:快指针遍历旧数组寻找新数组元素,慢指针负责指向每次更新数组的元素下标。时间复杂度O(n),空间复杂度O(1)。比暴力的两次循环少一次。
2024-09-13 20:27:14
300
2
原创 代码随想录算法训练营第一天 | LeetCode 704 二分查找 以及LeetCode35,34,69,367
时间复杂度O(logn) ,空间复杂度O(1)时间复杂度O(logn) ,空间复杂度O(1)
2024-09-12 21:39:20
277
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人