训练营

代码随想录算法训练营第5天 | lc242、lc349、lc202、lc1

(本合集全部为Go语言实现) 相关文章链接:242题解 349 202题解 1题解 相关视频链接: Leetcode242 状态:秒了 实现过程中的难点:对于元素固定是小写字母或类似的情况,可以使用数组,因为元素最大数量是固定的 个人写法 func isAnagram(s string, t str ......
随想录 训练营 lc 随想 算法

代码随想录算法训练营第4天 | leetcode24、leetcode19、leetcode面试题02

(本合集全部为Go语言实现) 相关文章链接:24题解 19题解 02.07题解 142题解 相关视频链接: Leetcode24 状态:秒了 实现过程中的难点:对组内两个节点的指针指向流转需要倒腾明白。临时头结点真的很有用 个人写法 func swapPairs(head *ListNode) *L ......
leetcode 随想录 训练营 随想 算法

代码随想录算法训练营第3天 | leetcode203、leetcode707、leetcode206

(本合集全部为Go语言实现) 相关文章链接:203题解 707题解 206题解 相关视频链接: Leetcode203 状态:秒了 实现过程中的难点:链表遍历一定要记得指针后移。另外,在头指针前加入一个新的临时头节点可以统一整个遍历过程,否则需要先确定初始时两指针的状态 个人写法 /** * Def ......
leetcode 随想录 训练营 随想 算法

代码随想录算法训练营第2天 | leetcode977、leetcode209、leetcode59

(本合集全部为Go语言实现) 相关文章链接:977题解 209题解 59题解 相关视频链接:977视频 209视频 59视频 Leetcode977 状态:按自定义排序策略的方式秒了。尝试使用双指针法,但是以为是需要原地进行操作,试了一下失败了 实现过程中的难点:需要明确的是对撞指针两者的平法比较时 ......
leetcode 随想录 训练营 随想 算法

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

LeetCode 24. 两两交换链表中的节点 题目链接: LeetCode 24 思路: 交换结点前将cur后第一个结点和第三个结点进行保存,然后修改cur指向头节点后再修改头节点后的结点 class Solution { public: ListNode* swapPairs(ListNode* ......
节点 随想录 环形 训练营 随想

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

LeetCode 203.移除链表元素 视频链接: LeetCode203 思路: 根据链表的性质,将目标值对应的节点保存在一个临时节点中,再重新设置cur下一个节点,再将临时节点进行删除 class Solution { public: ListNode* removeElements(ListN ......
随想录 训练营 随想 算法 元素

【ErikTse】2023-Codeforces新手训练营 第六期题解

A. Wrath 题目大意 给你一个\(L\)数组和\(n\)个人,第\(i\)个人可以使用威力为\(L_i\)的闪电旋风劈击杀前面\(L_i\)人,问你最后能存活多少人? 思路 差分。开一个数组来标记当前威力的闪电旋风劈能击杀到的最远的人和使用技能的人,最远击杀的人所在的位置+1,自己的位置-1, ......
题解 训练营 Codeforces ErikTse 新手

代码随想训练营第五十二天(Python)| 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

300.最长递增子序列 class Solution: def lengthOfLIS(self, nums: List[int]) -> int: if len(nums) <= 1: return len(nums) # dp 数组代表以 nums[i] 结尾的最长递增子序列长度为 dp[i] ......
序列 训练营 数组 随想 代码

代码随性训练营第五十一天(Python)| 309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 class Solution: def maxProfit(self, prices: List[int]) -> int: # dp[i][0] 持有股票 # dp[i][1] 卖出股票那一天 # dp[i][2] 冷冻期 # dp[i][3] 保持卖出股票的状态 ......
时机 股票 训练营 手续费 手续

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

LeetCode 977.有序数组的平方 视频连接: LeetCode 977 思路: 利用双指针,通过首指针和尾指针的平方值比较,大的那个装入新的vector数组中,然后再更新指针。 class Solution { public: vector<int> sortedSquares(vector ......
数组 随想录 训练营 矩阵 螺旋

代码随性训练营第五十天(Python)|123.买卖股票的最佳时机III 、188.买卖股票的最佳时机IV

123.买卖股票的最佳时机III class Solution: def maxProfit(self, prices: List[int]) -> int: if len(prices) <= 1: return 0 if len(prices) == 2: return max(0, price ......
时机 股票 训练营 代码 Python

代码随性训练营第四十九天(Python)| 121. 买卖股票的最佳时机 、122.买卖股票的最佳时机II

121. 买卖股票的最佳时机 1、动态规划 class Solution: def maxProfit(self, prices: List[int]) -> int: # dp[i][0] 代表第 i 天持有股票获取的最大利益 # dp[i][1] 代表第 i 天不持有股票获取的最大利益 dp = ......
时机 股票 训练营 九天 代码

代码随性训练营第四十八天(Python)| 198.打家劫舍、213.打家劫舍II、337.打家劫舍 III

198.打家劫舍 1、动态规划 class Solution: def rob(self, nums: List[int]) -> int: # dp 数组代表在第 i 个房间可以偷窃到的最高金额为 dp[i] dp = [0] * len(nums) if len(nums) == 1: retu ......
打家劫舍 训练营 代码 Python 198

代码随性训练营第四十六天(Python)| 139.单词拆分 、多重背包

139.单词拆分 class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> bool: dp = [False] * (len(s) + 1) dp[0] = True # 求排列先遍历背包再遍历物品 for i in r ......
训练营 背包 单词 代码 Python

代码随想训练营第四十五天(Python)| 70. 爬楼梯 (进阶)、322. 零钱兑换 、 279.完全平方数

70. 爬楼梯 (进阶) 1、使用 01 背包解法 class Solution: def climbStairs(self, n: int) -> int: # dp 数组代表爬上第 i 阶有 dp[j] 种方法 dp = [0] * (n + 1) dp[0] = 1 m = 2 # 排列先背包 ......
零钱 训练营 随想 楼梯 代码

代码随想训练营第四十四天(Python)| 完全背包、518. 零钱兑换 II 、377. 组合总和 Ⅳ

[完全背包] 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。 1、先遍历物品再遍历背包 def all_bag(weight, value, bag ......
零钱 训练营 总和 随想 背包

代码随想录算法训练营第一天 | ( Part 1 ) 704. 二分查找

代码随想录算法训练营第一天 | ( Part 1 ) 704. 二分查找 704. 二分查找 题目链接:https://leetcode.cn/problems/binary-search/ 文档链接:https://programmercarl.com/0704.%E4%BA%8C%E5%88%8 ......
随想录 训练营 随想 算法 代码

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

LeetCode 704 二分查找 题目链接 : LeetCode704 左闭右闭: 视频讲解: 手把手带你撕出正确的二分法 思路: 在循环条件中注明left<=right,即[left,right] class Solution { public: int search(vector<int>& ......
随想录 训练营 随想 算法 元素

代码随想训练营第四十三天(Python)| 1049.最后一块石头的重量II、 494. 目标和 、 474.一和零

1049.最后一块石头的重量II class Solution: def lastStoneWeightII(self, stones: List[int]) -> int: total = sum(stones) target = total // 2 dp = [0] * (target + 1 ......
训练营 随想 重量 石头 目标

代码随想训练营第四十二天(Python)| 0-1 背包基础、416. 分割等和子集

[背包基础] 题目:有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 1、二维方式解决背包问题 class Solution: def solve_bag(self, wei ......
子集 训练营 随想 背包 代码

代码随想训练营第四十一天(Python)| 不同的二叉树搜索树

96.不同的二叉搜索树 1、关键点找出状态转移方程 class Solution: def numTrees(self, n: int) -> int: # 创建 dp 数组, dp[i] 代表节点数为 i 的二叉搜索树数量 dp = [0]*(n+1) # 初始化数组 dp[0] = 1 # 遍历 ......
训练营 随想 代码 Python

代码随想训练营第三十九天(Python)| 62.不同路径、63. 不同路径 II、343. 整数拆分

62.不同路径 class Solution: def uniquePaths(self, m: int, n: int) -> int: # dp[i][j] 代表到达 dp[i][j] 有多少不同路径 dp = [[0]*n for _ in range(m)] # 初始化 for i in r ......
路径 训练营 整数 九天 随想

代码随想录算法训练营第十一天 | ● 20. 有效的括号 ● 1047. 删除字符串中的所有相邻重复项 ● 150. 逆波兰表达式求值

今日学习的内容 ● 20. 有效的括号 var isValid = function(s) { let stack = [] ; for(let i = 0 ;i < s.length ; i++){ let temp = s[i]; if(temp == '('){ stack.push(')') ......

代码随想录算法训练营第十天 | ● 理论基础 ● 232.用栈实现队列 ● 225. 用队列实现栈

今日学习的文章链接和视频链接 https://programmercarl.com/栈与队列理论基础.html ● 232.用栈实现队列 var MyQueue = function() { this.stackIn = []; this.stackOut = [] }; /** * @param ......
队列 随想录 训练营 随想 算法

代码随想录算法训练营第十天 | ●28. 实现 strStr() ●459.重复的子字符串 ●字符串总结 ●双指针回顾

今日学习的文章链接和视频链接 https://programmercarl.com/字符串总结.html#什么是字符串 https://programmercarl.com/双指针总结.html#数组篇 ●28. 实现 strStr() var strStr = function (haystack ......
字符串 字符 随想录 训练营 指针

代码随想录算法训练营第八天 | ● 344.反转字符串 ● 541. 反转字符串II ● 卡码网:54.替换数字 ● 151.翻转字符串里的单词 ● 卡码网:55.右旋转字符串

今日学习内容 ● 344.反转字符串 var reverseString = function(s) { // return s.reverse(); for(let i = 0 , j = s.length-1;i < Math.floor(s.length/2) ; i++,j--){ [s[i ......
字符串 字符 随想录 训练营 随想

代码随想录算法训练营第七天 | ● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和

今日学习的文章链接和视频链接 https://programmercarl.com/链表理论基础.html ● 454.四数相加II var fourSumCount = function(nums1, nums2, nums3, nums4) { let count = 0 let map = n ......
之和 随想录 训练营 随想 算法

代码随想录算法训练营第六天 |● 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数 ● 1. 两数之和

今日学习的文章链接和视频链接 https://programmercarl.com/哈希表理论基础.html 242.有效的字母异位词 var isAnagram = function(s, t) { if(s.length !== t.length) return false let map = ......
随想录 之和 训练营 数组 交集

代码随想训练营第三十七天(Python)| 738.单调递增的数字、968.监控二叉树

738.单调递增的数字 class Solution: def monotoneIncreasingDigits(self, n: int) -> int: # 主要思路当前数字比前面数字小时。前面数字 -1,当前数字变2为 9 str_n = str(n) for i in range(len(s ......
训练营 随想 代码 数字 Python

代码训练营第三十八天(Python)| 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

509. 斐波那契数 1、动态规划 class Solution: def fib(self, n: int) -> int: if n <= 1: return n # dp[i] 代表第 i 个数的斐波那契值 dp = [0] * (n+1) dp[0] = 0 dp[1] = 1 for i ......
楼梯 训练营 代码 Python 509