![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码随想录
文章平均质量分 56
黯淡的晨
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营第七天 | 454.两数相加,383.赎金信,15.三数之和,18.四数之和
接下来如何移动left 和right呢, 如果nums[i] + nums[left] + nums[right] > 0 就说明 此时三数之和大了,因为数组是排序后了,所以right下标就应该向左移动,这样才能让三数之和小一些。如果 nums[i] + nums[left] + nums[right] < 0 说明 此时 三数之和小了,left 就向右移动,才能让三数之和大一些,直到left与right相遇为止。主要理解剪枝和去重操作,在三数之和的基础上再嵌套一层。注意点:最后判断条件应该是。原创 2023-06-13 16:46:16 · 87 阅读 · 1 评论 -
代码随想录算法训练营第六天 | 242.有效的字母异位词,349.两个数组的交集,202.快乐数,1.两数之和
用数组模拟哈希,数组的0到25位存储字母,第一个字符串让数组对应的位置++,第二个字符串让对应的位置--,最后判断数组是否都为0,如果是,说明是字母异位词,否则说明不是。这里使用map的哈希表结构,需要使用 key value结构来存放,key来存元素,value来存下标,那么使用map正合适。两个知识点,一是无限循环需要将判断这个数是否出现过,二是计算一个数各个位置平方和的下一个数。判断元素在一个集合中是否出现过,使用哈希表的数据结构。解题思路:set作为哈希结构存储元素。原创 2023-06-12 17:14:07 · 68 阅读 · 0 评论 -
代码随想录算法训练营第四天 | 24.两两交换链表中的节点 ,19.删除链表中的倒数第N个节点,160.相交链表,142.环形链表Ⅱ
解法二:先计算两个链表的长度,将长链表先移动到和短链表相同的位置,然后判断两个节点是否相等。相等直接返回,不相等继续移动。解题思路:画图,弄清楚节点之间的指向改变,弄清楚循环的终止条件和需要临时保存的节点。最后确定循环中cur指针的移动。解题思路:画图,利用快慢指针,先找到要删除节点的前驱节点。当p在A链表走到null时,从B链表开始走;当q在B链表走到null时,从A链表开始走。解法一:走的长度相等时,最后相遇点即是交点。原创 2023-06-10 15:36:11 · 92 阅读 · 0 评论 -
代码随想录算法训练营第一天 | 704二分查找、27移除元素
解题思路:弄清楚二分法的核心思想,明确区间的定义(左闭右闭or左闭右开),视为不变量,进而确定while()循环条件是否需要带等号和if()条件判断后区间边界的赋值。区别:数组中元素会有重复,需要找到起始和终止target的位置,可以先找到>=target的第一个位置,再找target和target+1起始位置。区别:target不一定在原数组中,最后不满足while(left <= right)时,即left>right时,返回的是应该是left或者是right+1。慢指针:指向更新 新数组下标的位置。原创 2023-06-07 22:35:44 · 223 阅读 · 0 评论