随想曲

[代码随想录]Day03-链表part01

## 题目:[203. 移除链表元素](https://leetcode.cn/problems/remove-linked-list-elements/) ### 思路: ![20210316095619221](https://s2.loli.net/2023/07/28/s47u8vofDKy ......
随想录 随想 代码 part Day

代码随想录算法训练营第三天| LeetCode 203.移除链表元素(同时也对整个单链表进行增删改查操作) 707.设计链表 206.反转链表

203.移除链表元素 题目链接/文章讲解/视频讲解::https://programmercarl.com/0203.%E7%A7%BB%E9%99%A4%E9%93%BE%E8%A1%A8%E5%85%83%E7%B4%A0.html 卡哥题目建议:本题最关键是要理解虚拟头结点的使用技巧,这个对链 ......
随想录 训练营 随想 算法 LeetCode

代码随想录算法训练营第四十天| 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

300.最长递增子序列 要求: 可以删减任意个节点,最后保存最大的递增长度 难点: 4 10 4 8 9 如何 保证全局的视角,看到很前面的节点是否大于当前的节点,而不是仅仅记录状态 思路: dp[n] , 当子序列的末尾为N时,它的最大子序列长度 也就意味着,N在它的子序列中是最大的,遍历这个N之 ......
序列 随想录 训练营 数组 随想

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

977.有序数组的平方 题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/ 文章讲解:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7% ......
数组 随想录 训练营 矩阵 螺旋

[代码随想录]Day02-数组part02

## 题目:[977. 有序数组的平方](https://leetcode.cn/problems/squares-of-a-sorted-array/) ### 思路: 一开始的思路是从中间向两边扩: 1. 找到第一个大于等于0的位置r;判断nums[r]是否大于等于0,如果不是赋值为`len(n ......
随想录 数组 随想 代码 02

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

数组 1.数组理论基础 数组是存放在连续存储空间中的相同类型数据的集合 二分法(力扣704.) 对于默认升序的数组,进行二分法搜索下标 易错点 while(left<right)还是(left<=right) 更新区间的时候,right=middle还是middle-1 左闭右闭写法 right = ......
随想录 训练营 随想 算法 元素

代码随想录算法训练营第三十九天| 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 要求:卖出之后有个一天的冷冻期,需要过了冷冻期才可以买 状态: 持有,卖 冷冻期,冷冻期后的不买 代码: 1 // 要求:冷冻期一天,取得最大利润 2 // 注意:持有状态中不含冷冻期,卖了之后紧接着会有个冷冻期 3 // 不持有里面包含着一个冷冻期,持有 卖 冷冻 ......
时机 随想录 股票 训练营 手续费

[代码随想录]Day01-数组part01

## 题目:[704. 二分查找](https://leetcode.cn/problems/binary-search/) ### 思路: 二分查找一般是在**有序的**数组中查找指定的值,单纯的查找值,把数组跑一遍的复杂度为O(n)。 二分查找每次把范围缩小一半,我们每次都去中间的值,有以下三种 ......
随想录 数组 随想 代码 01

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

704. 二分查找 题目链接:https://leetcode.cn/problems/binary-search/ 视频链接:https://www.bilibili.com/video/BV1fA4y1o715 文章讲解:https://programmercarl.com/0704.%E4%B ......
LeetCode 随想录 训练营 随想 算法

代码随想录算法训练营第三十八天| 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV

123.买卖股票的最佳时机III 要求:最多买卖两次股票,获得最大利润 思路: 分成四个状态 第一次买 卖, 第二次买 卖 代码 : 1 // 最多只能进行一笔交易 2 // 难点: 3 // 1,只能买卖两次 4 // 2,中间可能有空隙:一直不持有 5 // 6 // 持有:dp[i][0] 不 ......
时机 随想录 股票 训练营 随想

代码随想录算法训练营第三十七天| 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II

121. 买卖股票的最佳时机 要求: [7,1,5,3,6,4]在里面找出合适的买入和卖出的时机 思路: 找到最小值和最大值,直接做差,但是需要保证顺序 贪心算法: 巧妙之处: 每一个节点都要比对是否是最小节点,然后跟最小节点进行相减,看是否是最大值 代码: int maxProfit(vector ......
时机 随想录 股票 训练营 随想

代码随想录算法训练营第三十六天| 198.打家劫舍 213.打家劫舍II 337.打家劫舍III

198.打家劫舍 要求: 给定一个nums,要求取得最大值,但是不可以选择两个相邻的数 dp定义: dp[n],取到第N个数字的时候,最大值 递推公式: 取:nums[i] + dp[j-2] 不取: nums[i-1]; 代码: 1 // 在两个数字不相邻的情况下,得到的最大金额 2 // 思路: ......

代码随想录-链表-C++总结

代码随想录 (programmercarl.com) 这次复习的主要目的还是熟练c++的基本语法知识,顺带过一下链表的典型题目 印象深刻直接没做出来的有 7.链表相交,没有想到先过一遍求出两条链表的长度,然后通过长度差的信息来get交点 做的时候写出bug的有 3. 设计链表,涉及的基础思想还是比较 ......
随想录 随想 代码

代码随想录算法训练营第三十五天| 139.单词拆分 关于多重背包,你该了解这些! 背包问题总结篇!

139.单词拆分 要求: 有N个字母,一个字符串,看这个字符串是否由这个这些字母组成,注意,这些字母可以用无限次 思路: 无法得知背包的容量怎么设置,刚开始的思路是,让这些字母随意组成任意个字符串,然后查看是否满足 新思路: 从开始节点,到任意节点,查看是否满足N个字母,同时它的开始的地方要满足要求 ......
背包 随想录 训练营 随想 算法

代码随想录贪心专题-day1

# 35. 分发糖果 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。 ## 思路: 本 ......
随想录 随想 代码 专题 day1

「回忆录」随想

炎炎七月,又来到了三区大机房。 去年这个时候,机房里有很多的同学,有学长,那时机房也坐得满满的,如今显得有些落寞和凄凉了。 现在的我,可以说已经成功从去年失败的阴影中走出来了,心态变好了,似乎事情也变顺了,在经历了大半个学期的赶课,文化课已经废到一定地步了,但是,不管怎么着,**今年一定要把一等拿出 ......
回忆录 随想

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

70. 爬楼梯 (进阶) 要求:可以一下爬1-2个台阶,问爬到N阶的时候有多少种方法 公式1: nums[n] = nums[n-1]+nums[n-2]; 公式2: dp[n] +=dp[n-nums[i]]; 代码: 1 // 爬楼梯的问题:依次只能爬1 2,满足N时,它的排列有多少种 2 // ......
随想录 零钱 训练营 随想 算法

代码随想录 go语言

**Go的内存对齐:** 64位系统一般指的是寻址的大小,用2^64个地址,每个地址上面都有一个字大小的内存,一个字可以是1字节,2字节,4字节等等。CPU 始终以字长访问内存,如果一个变量存储在两个字中,那么CPU就需要寻址两次。所以内存对齐就是让变量尽量不要跨字存储。 ......
随想录 随想 语言 代码

代码随想录训练营 Day01- 数组(上)

概述 第一天主要学习的是数组相关的内容,相关学习的内容包括数组的基本特性的学习,二分搜索方法的学习。 数组特点 数组的基本特点包括: 下标从 0 开始 内存连续性(Java 中定义数组需要直接声明其空间大小) 数组元素不可以删,只能覆盖 ArrayList 底层是数组实现,其实际上应该叫一种容器 二 ......
随想录 训练营 数组 随想 代码

代码随想录算法训练营第三十四天| 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ

完全背包 区别: 每种物品都是可以无线多个 代码: 1 // 多背包问题 2 // 有N个物品,他们的体积和重量如下,但是这些物品有无限个 3 // 需要发挥背包的最大容量,来让价值最大 4 // 5 // dp[n]: 当容量为N的时候,背包的价值最大是多少 6 // dp[n]: 7 // dp ......
随想录 零钱 训练营 总和 随想

代码随想录算法训练营第三十三天| 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

1049. 最后一块石头的重量 II 思路: 因为含有两个石头的相撞,所以需要把dp的目标值改成sum/2, 然后取得这个目标值的最大值,然后对sum-2*target 代码: 1 // 要求:有多个石头,两两撞击,取得剩下的石头的最小值 2 // ——》一定要碰到最后一个 3 // 注意: 4 / ......
随想录 训练营 随想 算法 重量

编程随想曲周刊(第37期)

这里记录每周的所见所闻,周日发布。点击阅读原文可以直接访问文章链接。 # 编程 1. [小马部落阁](https://maqib.cn/) # 文章 1. [坪輋村灭门案:四口之家被砌进水泥,又一个恩将仇报的故事](https://mp.weixin.qq.com/s/7emcdzfDefpNKRZ ......
随想曲 随想 周刊

代码随想录算法训练营第60天 | ● 84.柱状图中最大的矩形 - 第10章 动态规划part03

第十章 单调栈part03 有了之前单调栈的铺垫,这道题目就不难了。 ● 84.柱状图中最大的矩形 今天是训练营最后一天,恭喜坚持两个月的录友们,接下来可以写一篇自己 代码随想录一刷的总结。好好回顾一下,这两个月自己的博客内容,以及自己的收获。 ......
随想录 矩形 训练营 随想 算法

代码随想录算法训练营第58天 | ● 739. 每日温度 ● 496.下一个更大元素 I - 第10章 动态规划part01

第十章 单调栈part01 ● 739. 每日温度 ● 496.下一个更大元素 I 详细布置 739. 每日温度 今天正式开始单调栈,这是单调栈一篇扫盲题目,也是经典题。 大家可以读题,思考暴力的解法,然后在看单调栈的解法。 就能感受出单调栈的巧妙 https://programmercarl.co ......
随想录 训练营 随想 算法 元素

代码随想录算法训练营第59天 | ● 503.下一个更大元素II ● 42. 接雨水 - 第10章 动态规划part02

第十章 单调栈part02 ● 503.下一个更大元素II ● 42. 接雨水 详细布置 503.下一个更大元素II 这道题和 739. 每日温度 几乎如出一辙,可以自己尝试做一做 https://programmercarl.com/0503.%E4%B8%8B%E4%B8%80%E4%B8%AA ......
随想录 训练营 随想 算法 雨水

代码随想录算法训练营第57天 | ● 647. 回文子串 ● 516.最长回文子序列 ● 动态规划总结篇 - 第9章 动态规划part17

第九章 动态规划part17 ● 647. 回文子串 ● 516.最长回文子序列 ● 动态规划总结篇 今天 我们就要结束动态规划章节了,大家激不激动!!! 详细布置 647. 回文子串 动态规划解决的经典题目,如果没接触过的话,别硬想 直接看题解。 https://programmercarl.co ......
回文 随想录 动态 训练营 序列

代码随想录算法训练营第三十三天| 01背包问题 二维 01背包问题 一维 416. 分割等和子集

01背包问题 二维 要求: 有一个背包,他只能装4KG,分别有三个物品: 1 15;3 20; 4 30 ——》需要物品价值最大 dp[i][j] 含义: 在放物品I 的时候在J背包容量下的物品最大值 递推公式: 1,不放当前物品:dp[i-1][j]2,放当前物品:(dp[i-1][j]) ->不 ......
背包 随想录 子集 问题 训练营

代码随想录算法训练营第三十二天| 343. 整数拆分 96.不同的二叉搜索树

343. 整数拆分 要求: 将一个正数拆分成N个正整数,使得这N个正整数的乘机是最大的 思路: DP数组:dp[n] N 的时候,它的乘机最大值 注意: 不是i*dp[n-i]就是最大值,因为如果用dp就证明要开始拆分了,如果我不拆分,就是用的这两个数的话,那么就是单纯的 i* (n-i) 代码: ......
随想录 训练营 整数 随想 算法

代码随想录算法训练营第三十一天| 62.不同路径 63. 不同路径 II

62.不同路径 思路: 因为只能向左,和向下,因此只能是前面的加上左边的,递推公式较为简单 代码: 1 int uniquePaths(int m, int n) { 2 if (m == 1 || n == 1) return 1; 3 4 vector<vector<int>> nums(m, ......
路径 随想录 训练营 随想 算法

代码随想录算法训练营第三十一天| 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

509. 斐波那契数 思路: 运用动态规划的思想 1,先定义一个数组 2,初始化 3,递推公式 4,遍历 代码: 1 int fib(int n) 2 { 3 if (n == 0) return 0; 4 if (n == 1) return 1; 5 6 vector<int> selected ......
楼梯 随想录 训练营 随想 算法