训练营

代码随想录算法训练营第四天| LeetCode24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07. 链表相交、142.环形链表II

LeetCode24. 两两交换链表中的节点 ● 今日学习的文章链接和视频链接 代码随想录 (programmercarl.com) 题目链接 24. 两两交换链表中的节点 - 力扣(LeetCode) ● 自己看到题目的第一想法 主要是把这个过程想清楚,链表交换的题目主要想明白要动几个指针,指针改 ......
节点 随想录 环形 训练营 随想

代码随想录算法训练营第五天 | 复习和总结

一、LeetCode 142.环形链表II 自己再根据思路把代码独立写了一遍,并对照参考代码查漏补缺,进一步优化 二、206.反转链表 掌握2种递归写法,并用代码实现 从后向前遍历的递归,有点绕,多花了点时间理解 三、LeetCode 24. 两两交换链表中的节点 掌握递归写法,并用代码实现 再先理 ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第天|LeetCode203.移除链表元素707.设计链表206.反转链表

LeetCode203.移除链表元素 ● 今日学习的文章链接和视频链接 代码随想录 (programmercarl.com) 题目链接 203. 移除链表元素 - 力扣(LeetCode) ● 自己看到题目的第一想法 之前做这道题时想的不是很清楚,浅看了一下代码随想录的思路,又重新写了一边。删除链表 ......
随想录 训练营 随想 算法 LeetCode

代码随想录算法训练营第四天 | 24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交,142.环形链表II

一、24. 两两交换链表中的节点 题目链接: LeetCode 24. 两两交换链表中的节点 学习前: 思路: 未新增虚拟结点。节点数为0,1,2需要另外讨论。当节点数>=2时,返回的head值为第2个节点,需要3个指针first、second、prev,分别是第一个节点和第二个节点,以及第一个节点 ......
节点 随想录 环形 训练营 随想

代码随想录算法训练营第三天|203.移除链表元素、707.设计链表、206.反转链表

LeetCode 203.移除链表元素 题目链接:203.移除链表元素 原链表删除元素(需要区分头节点和非头结点) 使用虚拟头节点,统一链表操作(注意:新链表头结点是虚拟头节点的下一节点) LetCode 707.设计链表 题目链接:707.设计链表 注意:头节点采用虚拟头节点,使得链表操作具有一致 ......
随想录 训练营 随想 算法 元素

代码随想录算法训练营第三天 | 链表理论基础,203.移除链表元素,707.设计链表,206.反转链表

一、链表理论基础 学习: 1. 链表定义 线性表的一种存储方式,在逻辑上连续的数据在物理存储中可以不连续。 class ListNode { int val; ListNode next; ListNode() { } ListNode(int val) { this.val = val; this ......
随想录 训练营 随想 算法 元素

代码随想录算法训练营Day3 | 203.移除链表元素、707.设计链表、206.翻转链表

这三道题都不涉及什么难以理解的算法,是对链表基础知识的一个复习巩固 对于有数据结构基础的同学来说这个没有什么难度 但是,写代码的过程中,我明显感觉到,我需要更加完善和统一的代码风格,作为一个前OIer,我的c和cpp混用的情况在基础数据结构的封装层面造成了不小的混乱! 我需要去补充cpp的内容的,或 ......
随想录 训练营 随想 算法 元素

代码随想录算法训练营Day2 |977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵 II

明天四级考试了,时间非常紧张,好在这些数组相关的算法题很久之前就做过,思路上是不存在不理解的地方的。 有序数组的平方是一道非常直观的双指针方法的应用,实现过程之中没有什么坑。 长度最小的子数组就是我们的滑动窗口方法了,题目不难,但是这种处理方式有着很深刻的背景,之后还会遇到此问题的变种。 螺旋矩阵问 ......
数组 随想录 训练营 矩阵 螺旋

代码随想录算法训练营第二天| LeetCode977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II

LeetCode977.有序数组的平方 ● 今日学习的文章链接和视频链接 代码随想录 (programmercarl.com) 题目链接 977. 有序数组的平方 - 力扣(LeetCode) ● 自己看到题目的第一想法 昨天正好做了这道题目,总体来说就是用双指针法,要么从绝对值最小的数开始排序,要 ......
数组 随想录 训练营 矩阵 螺旋

代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

一、977.有序数组的平方 题目链接: LeetCode 977. 有序数组的平方 学习前: 思路: 双向指针。left是从左往右遍历数组,right是从优往左遍历数组,将left和right中绝对值较大数的平方从右往左放入新数组中;新思路:if(left+right>=0)right,else l ......
数组 随想录 训练营 矩阵 螺旋

代码随想录算法训练营第二天|977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵

LeetCode 977 有序数组的平方 题目链接:977.有序数组的平方 思路:双指针,由两侧向中间逼近 LeetCode 209.长度最小的子数组 题目链接:209.长度最小的子数组 思路:滑动窗口,关键点滑动窗口起始点和终止点位置关系的确定 LeetCode 59.螺旋矩阵 题目链接:59.螺 ......
数组 随想录 训练营 矩阵 螺旋

代码随想录算法训练营第一天|704.二分查找、27.移除元素

LeetCode 704 二分查找 题目链接 704.二分查找 二分法 确定区间 (循环不变量):对于有序数组,定义循环区间二分查找元素 LeetCode 27.移除元素 题目链接:27.移除元素 快慢指针,快指针查,慢指针存 ......
随想录 训练营 随想 算法 元素

代码随想录算法训练营第一天 | 数组理论基础,704. 二分查找,27. 移除元素

一、数组理论基础 学习前: 1. 数组定义 一些在内存上连续存储的相同数据类型的数据的集合 2. 数组特征 便于查询数组元素,不便于增删数据元素 学习后: 对于Java,二维数组不一定在内存上连续。如int[i][j],唯一确定的是int[i][]在内存上连续 二、704. 二分查找 LeetCod ......
随想录 训练营 数组 随想 算法

代码随想录算法训练营第一天| LeetCode704 二分查找、27移除元素

Leetcode704:二分查找 今日学习的文章链接: 代码随想录 (programmercarl.com) 题目链接: 704. 二分查找 - 力扣(LeetCode) ● 自己看到题目的第一想法 这题我会,但是还没明白卡尔说的循环不变量是什么意思。 我的固定思路就是,target比中间值大,左指 ......
随想录 训练营 随想 算法 LeetCode

代码随想录算法训练营Day1 | 704.二分查找、27.移除元素

LeetCode704.二分查找 二分查找是一种基础的算法,其核心思想在高中数学中就已经被大家所熟知了,然而对于代码的实现,其细节问题常常令人头疼,比如while循环的条件是什么?middle是该+1还是-1?这些问题需要有一个清晰的认知。 题目链接如下:704.二分查找 Carl的讲解链接:二分查 ......
随想录 训练营 随想 算法 元素

代码随想训练营第六十天(Python)| 84. 柱状图中最大的矩形

84. 柱状图中最大的矩形 1、双指针 class Solution: def largestRectangleArea(self, heights: List[int]) -> int: n = len(heights) # 左右第一个小于 i 的下标 min_l, min_r = [0] * n ......
矩形 训练营 随想 代码 Python

代码随想录算法训练营第10天 | lc20、lc1047、lc150

(本合集全部为Go语言实现) 相关文章链接:20题解 1047题解 150题解 相关视频链接: Leetcode20 状态:秒了 实现过程中的难点:经典的栈应用 从题解中学到的一个写法 func isValid(s string) bool { if (len(s) & 1) == 1 { retu ......
随想录 训练营 随想 算法 lc

代码随想录算法训练营第9天 | lc232、lc225

(本合集全部为Go语言实现) 相关文章链接:232题解 225题解 相关视频链接: Leetcode232 状态:在go语音对于队列和栈的实现上稍微卡了一下 实现过程中的难点:对于进队和出队两块的思路想出来就好写了 个人写法 type MyQueue struct { inStack, outSta ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第8天 | lc28、lc459

(本合集全部为Go语言实现) 相关文章链接:28题解 459题解 相关视频链接: Leetcode28 状态:每次看都有新体验,稍微耗了些时间复习了一下 实现过程中的难点:主要还是KMP算法,对于这种经典的算法,能理解代码含义当然是一方面,自我感觉还是得稍微一点时间在看懂一套实现之后稍微背一下代码, ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第7天 | lc344、lc541、卡码54、lc151、卡码55

(本合集全部为Go语言实现) 相关文章链接:344题解 541题解 卡码54题解 151题解 卡码55题解 相关视频链接: Leetcode344 状态:秒了 实现过程中的难点:对撞双指针 个人写法 func reverseString(s []byte) { for i, j := 0, len( ......
随想录 训练营 随想 算法 lc

代码随想录算法训练营第6天 | lc454、lc383、lc15、lc18

(本合集全部为Go语言实现) 相关文章链接:454题解 383题解 15题解 18题解 相关视频链接: Leetcode454 状态:秒了 实现过程中的难点:思想就是利用哈希表将部分和记录下来,最终实现将n ^ 4转换为2 * n ^ 2 个人写法 func fourSumCount(nums1 [ ......
随想录 训练营 lc 随想 算法

代码随想训练营第五十九天(Python)| 503.下一个更大元素II、42. 接雨水

[503.下一个更大元素II] 循环问题用 2*n , i % n 的方式 n = len(nums) ans = [-1] * n stack = [] for i in range(2 * n): while len(stack) > 0 and nums[i % n] > nums[stack ......
训练营 九天 随想 雨水 元素

代码随想训练营第58天(Python)| 739. 每日温度、496.下一个更大元素 I

739. 每日温度 class Solution: def dailyTemperatures(self, temperatures: List[int]) -> List[int]: n = len(temperatures) ans = [0] * n # 单调增的栈 stack = [] fo ......
训练营 随想 元素 温度 代码

代码随想录算法训练营第七天| 344.反转字符串 541. 反转字符串II

LeetCode 344.反转字符串 题目链接: LeetCode344 思路: 定义left、right指针,将两指针对应的值反转即可 class Solution { public: void reverseString(vector<char>& s) { int n = s.size(); ......
字符串 字符 随想录 训练营 随想

代码随想训练营第五十七天(Python)| 647. 回文子串、516.最长回文子序列

647. 回文子串 1、中心扩散法+双指针 class Solution: def countSubstrings(self, s: str) -> int: res = 0 for i in range(len(s)): # 以 i 为中心 res += self.countPalind(i, i ......
回文 训练营 序列 随想 代码

代码随想录算法训练营第六天| 454.四数相加 15.三数之和 18.四数之和

LeetCode 454.四数相加 题目链接: LeetCode454 思路: 将两个数组中的数存放到一个map中,用另外两个数组的值在map中去减 class Solution { public: int fourSumCount(vector<int>& A, vector<int>& B, v ......
之和 随想录 训练营 随想 算法

代码随想训练营第五十六天(Python)| 583. 两个字符串的删除操作、72. 编辑距离

583. 两个字符串的删除操作 class Solution: def minDistance(self, word1: str, word2: str) -> int: n, m = len(word1), len(word2) # dp 数组代表使得 word1 以 i-1 结尾和 word2 ......
训练营 字符串 随想 字符 两个

代码随想训练营第五十五天(Python)| 392.判断子序列、115.不同的子序列

392.判断子序列 1、双指针 class Solution: def isSubsequence(self, s: str, t: str) -> bool: m, n = len(s), len(t) i, j = 0, 0 while m > i and n > j: if s[i] == t ......
序列 训练营 随想 代码 Python

代码随想训练营第五十三天(Python)| 1143.最长公共子序列 、1035.不相交的线 、53. 最大子序和

1143.最长公共子序列 class Solution: def longestCommonSubsequence(self, text1: str, text2: str) -> int: m, n = len(text1), len(text2) # dp 数组代表 text1 以 i-1 结尾 ......
训练营 序列 随想 代码 Python

代码随想录算法训练营第五天| 242.有效的字母异位词 349. 两个数组的交集 1. 两数之和

LeetCode 242.有效的字母异位词 题目链接: LeetCode242 思路: 使用C++自带的库函数,经过排序后进行比较(使用库函数) class Solution { public: bool isAnagram(string s, string t) { if(s.length() ! ......
随想录 之和 训练营 数组 交集