随想

代码随想录算法训练营day13| ● 239. 滑动窗口最大值 ● 347.前 K 个高频元素 ● 总结

239.滑动窗口最大值 mydemo--(自己思路)--failed 超出时间限制 class Solution { public: vector<int> maxSlidingWindow(vector<int>& nums, int k) { vector<int> result; stack< ......
随想录 最大值 训练营 随想 算法

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

20.有效的括号 卡哥demo class Solution { public: bool isValid(string s) { if(s.size() %2 != 0) return false; stack<char> st; for(int i = 0; i < s.size(); i++) ......

[代码随想录]Day47-动态规划part15

题目:392. 判断子序列 思路: 最长子序列的长度是不是len(s) 代码: func isSubsequence(s string, t string) bool { dp := make([][]int,len(s)+1) for i:=0;i<len(dp);i++{ dp[i] = mak ......
随想录 随想 代码 动态 part

代码随想录算法训练营-回溯算法-3|134. 加油站、135. 分发糖果

134. 加油站 局部最优:当前累加rest[i]的和curSum一旦小于0,起始位置至少要是i+1,因为从i之前开始一定不行。全局最优:找到可以跑一圈的起始位置。 时间复杂度:O(n) 空间复杂度:O(1) 1 class Solution: 2 def canCompleteCircuit(se ......
算法 随想录 训练营 随想 糖果

[8]-代码随想录算法训练营-day9-字符串-part2

代码随想录算法训练营第九天|字符串-part2 1.Leecode 28. 找出字符串中第一个匹配项的下标 题目 https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/ 思路 暴力for循环 刷 ......
随想录 训练营 字符串 随想 算法

[8]-代码随想录算法训练营-day8-KMP算法

代码随想录训练营-KMP算法学习 1.基础概念 前缀 包含首字母,不包含尾字母的所有子串 后缀 包含尾字母,不包含首字母的所有子串 最长相等前后缀 罗列模式串中所有字符串的前后缀 确定最长相等的前后缀 如何找前后缀: 模式串为aabaaf 则其前缀有:a、aa、aab 、aaba、 aabaa 则其 ......
算法 随想录 训练营 随想 day8-KMP

[7]-代码随想录算法训练营-day8-字符串-part1

代码随想录算法训练营第八天|数组字符串-part1 1.Leecode 344. 反转字符串 题目 https://leetcode.cn/problems/reverse-string/ 思路 刷随想录后想法 双指针,用swap 实现困难 无 实现代码 class Solution { publi ......
随想录 训练营 字符串 随想 算法

代码随想录算法训练营-回溯算法-2|55. 跳跃游戏、45. 跳跃游戏 II、1005. K 次取反后最大化的数组和

55. 跳跃游戏 1. 跳跃的覆盖范围。这个问题就转化为跳跃覆盖范围究竟可不可以覆盖到终点! 2. 贪心算法局部最优解:每次取最大跳跃步数(取最大覆盖范围),整体最优解:最后得到整体最大覆盖范围,看是否能到终点。 时间复杂度: O(n) 空间复杂度: O(1) 1 class Solution: 2 ......
算法 随想录 训练营 数组 随想

代码随想录算法训练营第十天

代码随想录算法训练营第十天 | LeetCode 20(有效的括号) LeetCode 1047(删除字符串中的所有相邻重复项) LeetCode 150(逆波兰表达式求值) 20:有效的括号 LeetCode 20(有效的括号) 方法一 import java.util.Stack; class ......
随想录 训练营 随想 算法 代码

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

Day1-数组2023.5.20 2023.9.14二刷 Leetcode704 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 初解 已经不记得二分查找了,遍历找\ ......
随想录 训练营 随想 算法 元素

代码随想录算法训练营-回溯算法|455. 分发饼干、376. 摆动序列

1.贪心算法一般分为如下四步: 将问题分解为若干个子问题 找出适合的贪心策略 求解每一个子问题的最优解 将局部最优解堆叠成全局最优解 455. 分发饼干 1. 局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩。 时间复杂度:O(nlogn) 空间复杂度:O(1 ......
算法 随想录 训练营 序列 饼干

[代码随想录]Day46-动态规划part14

题目:1143. 最长公共子序列 思路: 主要就是两大情况: text1[i - 1] 与 text2[j - 1]相同,text1[i - 1] 与 text2[j - 1]不相同 如果text1[i - 1] 与 text2[j - 1]相同,那么找到了一个公共元素,所以dp[i][j] = d ......
随想录 随想 代码 动态 part

代码随想录算法训练营第九天

代码随想录算法训练营第九天 | LeetCode 232(用栈实现队列) LeetCode 225(用队列实现栈) 栈和队列理论基础 定义 栈(stack ),一种遵循先进后出(FILO—First-In/Last-Out)原则的线性存储结构。 队列(queue),一种遵循先进先出(FIFO—fir ......
随想录 训练营 九天 随想 算法

代码随想录算法训练营第10天| 232.用栈实现队列 ● 225. 用队列实现栈

栈和队列 232.用栈实现队列 stack: queue: 卡哥代码 一个入栈,一个出栈,即可模拟队列的pop操作 pop之前要检查出栈是否为空 若为空,则排出入栈里所有的元素至出栈中 class MyQueue { public: stack<int> stackIn; stack<int> st ......
队列 随想录 训练营 随想 算法

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

Day2-数组2023.9.15 Leetcode977 有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 初解 我还是不能想到暴力解法之外的,对某个问题的最优复杂度也没有概念。就算提示我是用指针,我也想不到思路。 现 ......
数组 随想录 训练营 矩阵 螺旋

[代码随想录]Day45-动态规划part13

题目:300. 最长递增子序列 思路: dp[i]状态 取决于 dp[0] - dp[i-1]中小于dp[i]的元素中最大的值+1,即: for j:=0; j <i; j++ { if nums[i] > nums[j]{ dp[i] = max(dp[i], dp[j] + 1) } } 代码: ......
随想录 随想 代码 动态 part

代码随想录算法训练营第八天

代码随想录算法训练营第八天 | LeetCode 28(实现strStr()) LeetCode 459(重复的子字符串) 28:实现strStr() LeetCode 28(实现strStr()) class Solution { public int strStr(String haystack ......
随想录 训练营 随想 算法 代码

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

28.找出字符串中第一个匹配项的下标 mydemo--(my thought)--(falied) class Solution { public: int strStr(string haystack, string needle) { for(int i=0; i<haystack.size() ......
字符串 字符 随想录 训练营 指针

代码随想录算法训练营第8天| ● 344.反转字符串 ● 541. 反转字符串II ● 剑指Offer 05.替换空格 ● 151.翻转字符串里的单词 ● 剑指Offer58-II.左旋转字符串

344.反转字符串 mydemo--(一次就过)--(成功) class Solution { public: void reverseString(vector<char>& s) { int len = s.size(); char tmp; int i=0; int j = len-1; wh ......
字符串 字符 随想录 左旋 Offer

[代码随想录]Day44-动态规划part12

题目:309. 买卖股票的最佳时机含冷冻期 思路: 具体可以区分出如下四个状态: 状态一:持有股票状态(今天买入股票,或者是之前就买入了股票然后没有操作,一直持有) 不持有股票状态,这里就有两种卖出股票状态 状态二:保持卖出股票的状态(两天前就卖出了股票,度过一天冷冻期。或者是前一天就是卖出股票状态 ......
随想录 随想 代码 动态 part

代码随想录算法训练营第七天

代码随想录算法训练营第七天 | LeetCode 344(反转字符串) LeetCode 541(反转字符串II) LeetCode 剑指05(替换空格) LeetCode 151(反转字符串中的单词) LeetCode 剑指58(II.左旋转字符串) 344:反转字符串 LeetCode 344( ......
随想录 训练营 随想 算法 代码

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

454.两数相加 Ⅱ mydemo--(超时失败) class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) { ......
之和 随想录 训练营 随想 算法

[代码随想录]Day43-动态规划part11

题目:123. 买卖股票的最佳时机 III 思路: 达到dp[i][1]状态,有两个具体操作: 操作一:第i天买入股票了,那么dp[i][1] = dp[i-1][0] - prices[i] 操作二:第i天没有操作,而是沿用前一天买入的状态,即:dp[i][1] = dp[i - 1][1] 那么 ......
随想录 随想 代码 动态 part

代码随想录算法训练营第六天

代码随想录算法训练营第六天 | LeetCode 454(四数相加II) LeetCode 383(赎金信) LeetCode 15(三数之和) LeetCode 18(四数之和) 454:四数相加II LeetCode 454(四数相加II) 思路: 首先定义 一个map,key放a和b两数之和, ......
随想录 训练营 随想 算法 代码

[代码随想录]Day42-动态规划part10

题目:121. 买卖股票的最佳时机 思路: 贪心做起来更简单;dp多此一举……状态0是有买入,状态1是 代码: func maxProfit(prices []int) int { lens := len(prices) if lens == 0 { return 0 } dp := make([] ......
随想录 随想 代码 动态 part

代码随想录算法训练营第五天

代码随想录算法训练营第五天 | LeetCode 242(有效的字母异位词) LeetCode 349(两个数组的交集) LeetCode 202(快乐数) LeetCode 1(两数之和) 242:有效的字母异位词 LeetCode 242(有效的字母异位词) class Solution { p ......
随想录 训练营 随想 算法 代码

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

242. 有效的字母异位词 mydemo--(成功)--(学了卡哥的思路) class Solution { public: bool isAnagram(string s, string t) { int alphabet = 26; int hash[alphabet]; for(int i=0 ......
随想录 之和 训练营 数组 交集

[代码随想录]Day41-动态规划part09

题目:198. 打家劫舍 思路: 决定dp[i]的因素就是第i房间偷还是不偷。 如果偷第i房间,那么dp[i] = dp[i - 2] + nums[i] ,即:第i-1房一定是不考虑的,找出 下标i-2(包括i-2)以内的房屋,最多可以偷窃的金额为dp[i-2] 加上第i房间偷到的钱。 如果不偷第 ......
随想录 随想 代码 动态 part

代码随想录算法训练营第四天

代码随想录算法训练营第四天 | LeetCode 24(两两交换链表中的节点) LeetCode 19(删除链表的倒数第N个节点) LeetCode 160(链表相交) LeetCode 142(环形链表II) 24:两两交换链表中的节点 LeetCode 24(两两交换链表中的节点) 思路: 这道 ......
随想录 训练营 随想 算法 代码