- 博客(8)
- 收藏
- 关注
原创 代码随想录算法训练营day 9 | LeetCode151.反转字符串中的单词,KamaCoder55.右旋字符串
举个例子,源字符串为:"the sky is blue "文章讲解:。视频讲解:。文章讲解:。题目链接:。
2024-07-08 16:42:01
138
原创 代码随想录算法训练营day 8 | LeetCode344.反转字符串,LeetCode541.反转字符串 II,KamaCoder54.替换数字
例如 字符串 "a5b" 的长度为3,那么 将 数字字符变成字符串 "number" 之后的字符串为 "anumberb" 长度为 8。然后从后向前替换数字字符,也就是双指针法,过程如下:i指向新长度的末尾,j指向旧长度的末尾。首先扩充数组到每个数字字符替换成 "number" 之后的大小。文章讲解:。文章讲解:。视频讲解:。题目链接:。文章讲解:。视频讲解:。题目链接:。
2024-07-07 22:05:11
353
原创 代码随想录算法训练营day 7 | LeetCode454.四数相加II,LeetCode383.赎金信,LeetCode15.三数之和,LeetCode18.四数之和
相当于求 字符串a 和 字符串b 是否可以相互组成 ,而这道题目是求 字符串a能否组成字符串b,而不用管字符串b 能不能组成字符串a。视频讲解:。视频讲解:。文章讲解:。视频讲解:。题目链接:。文章讲解:。题目链接:。文章讲解:。题目链接:。
2024-07-07 17:31:04
249
原创 代码随想录算法训练营day 6 | LeetCode242.有效的字母异位词,LeetCode349.两个数组的交集,LeetCode202.快乐数,LeetCode1.两数之和
std::set和std::multiset底层实现都是红黑树,std::unordered_set的底层实现是哈希表, 使用unordered_set 读写效率是最高的,并不需要对数据进行排序,而且还不要让数据重复,所以选择unordered_set。本题需要一个集合来存放我们遍历过的元素,然后在遍历数组的时候去询问这个集合,某元素是否遍历过,也就是 是否出现在这个集合。使用哈希法,来判断这个sum是否重复出现,如果重复了就是return false, 否则一直找到sum为1为止。
2024-07-03 23:10:45
586
原创 代码随想录算法训练营第四天| LeetCode24.两两交换链表中的节点,LeetCode19.删除链表的倒数第N个节点,LeetCode142.环形链表 II,面试题02.07.链表相交
视频讲解:使用虚拟头节点,双指针法,tmp1和tmp2,将移动后会丢失的关键节点先保存下来;cur指向待交换两节点的前一个结点,注意while循环的边界条件:如果为偶数,cur->next就为NULL,直接终止;如果为奇数,cur->next->next就为NULL,终止。故cur->next!= nullptr题目链接:文章讲解:视频讲解:。
2024-06-11 13:03:53
293
2
原创 代码随想录算法训练营第三天| LeetCode203.移除链表元素,LeetCode707.设计链表,LeetCode206.反转链表
文章讲解:。视频讲解:。关键点:插入时先考虑后面的节点,在考虑前面的节点;待删除结点,先用tmp指针另存,然后手动释放。视频讲解:。题目链接:。文章讲解:。
2024-06-10 21:58:21
201
原创 代码随想录算法训练营第二天| LeetCode977.有序数组的平方,LeetCode209.长度最小子数组,LeetCode59.螺旋矩阵II
循环的边界条件一定要构思好,给定 n ,若 n 为奇数,如左图所示,循环 n / 2 次即可,中心位置特殊处理;然后就是每条边的 for 循环的边界条件,以上行边为例,从x = start_x 开始,到 x = n - 1 - offset 为止;j 完成一个循环,在循环内比较 子序列的和 和 target 的大小,满足条件后,调节子序列长度。只用一个for循环,那么这个循环的索引,一定是表示 滑动窗口(子序列)的终止位置j。在一个循环中,如此多的边界条件,一定要设置好固定的规则来遍历,坚持。
2024-06-07 18:02:40
253
原创 代码随想录算法训练营第一天| LeetCode704.二分查找,LeetCode27.移除元素
区间,即[left, right),应是while(left < right) {},最简单理解,在左右开区间中,left不可以等于right,若等于会导致区间定义矛盾,故取 “<”;,左闭右闭区间下,right=middle-1,因为右闭,nums[middle] > target的话,索引只能取左移的一个;区间,即[left, right],应是while(left <= right) {},最简单理解,在左右闭区间中,left是可以等于right的,故可取 “<=”;
2024-06-05 22:54:14
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人