训练营

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

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

AI训练营—Python的一些基础知识

[toc] #列表 切片:左开右闭 ![](https://img2023.cnblogs.com/blog/2238249/202307/2238249-20230725154936276-403651531.png) 倒取值 ![](https://img2023.cnblogs.com/blo ......
训练营 基础知识 基础 知识 Python

2023牛客暑期多校训练营2 DEFGHIK

[比赛链接](https://ac.nowcoder.com/acm/contest/57356) # D ## 题解 **知识点:贪心。** 首先,因为第一个人喜欢吃的可能会被后面的人选中,因此直接选最喜欢吃的可能会浪费机会。所以,我们考虑先看后面的人怎么选,就是倒着贪心,我们考虑证明。 假设当前 ......
训练营 DEFGHIK 2023

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

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

CSP-J 济南刷题训练营

# Day 1:基础算法 ## 枚举 从可能得集合中一一尝试统计贡献。 ## 模拟 模拟题目中要求的操作 ### NOIP2014 生活大爆炸版石头剪刀布 洛谷链接:[**P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布**](https://www.luogu.com.cn/pro ......
训练营 CSP-J CSP

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

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

2023牛客暑期多校训练营2 补题

## D.The Game of Eating 题意:有n个人和m道菜,每个人对每个菜的都有一个喜好度a[i]\[j],所有人都知道其他人的喜好度,现在需要上k道菜,从1,2...,n,1,2.....的顺序来选,如果每个人都只考虑自己的喜好,问最后哪些菜会被端上来 ### Solution 我们考 ......
训练营 2023

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

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

代码随想录算法训练营第三十四天| 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 // ......
随想录 零钱 训练营 随想 算法

范式杯2023牛客暑期多校训练营1

[比赛链接](https://ac.nowcoder.com/acm/contest/57355) # A ## 题解 **知识点:构造。** 设任意字符串为 $t$ ,为了使得 $t = s$ 时结果不有序,考虑将其中 $s$ 一组 $01$ 固定反序,同时 $t \neq s$ 时一定不会反序。 ......
范式 训练营 2023

“范式杯”2023牛客暑期多校训练营1

D:Chocolate 大意:给定一个n*m的方格,上面摆放着巧克力,k和w在玩一个游戏,规定k先行,在每个回合内玩家可以吃掉坐标(x,y)内所有的巧克力(i<=x&&j<=y),在他们回合内至少吃掉一块巧克力,谁最后吃巧克力谁就输了,问赢家是谁 做法:一个很经典的博弈论,chomp游戏,这个游戏经 ......
范式 训练营 2023

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

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

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

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

“范式杯”2023牛客暑期多校训练营1

# D.Chocolate ### 题意: 有一个n×m的矩形巧克力,Kelin先手Walk Alone后手选一个点(i, j)并吃掉所有 x using namespace std; int main() { int n, m; cin >> n >> m; if (n == 1 && m == ......
范式 训练营 2023

“范式杯”2023牛客暑期多校训练营1

# [A-Almost Correct](https://ac.nowcoder.com/acm/contest/57355/A) ## 题意:01序列,每次可以选择$x_i$,$y_i$使得这两个位置有序,求一种方法使得除了该序列之外的其他序列均可排有序的方法 ## 思路:首先,需要完全排好任意随 ......
范式 训练营 2023

“范式杯”2023牛客暑期多校训练营1 蒻蒟题解

## A.Almost Correct 题意:给定一个01串,要求构造一系列排序操作(xi,yi),使得经过这些排序操作后可以使与给定01串等长的所有其他01串完全排好序,而给定的01串无法完全排好序 ### Solution 构造题 我们考虑到对0和1的位置进行统计,统计得出最左边的1的位置为l, ......
范式 题解 训练营 2023

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

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

代码随想录算法训练营第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) 代码: ......
随想录 训练营 整数 随想 算法

THU训练营预选赛2023

[比赛地址](https://tsinghua.contest.codeforces.com/group/sTsHnFxwiH/contest/453495/) ## A **Tag: 排列 置换** - 遍历排列中每个置换环, 找到每个元素需要跳几次才能回到与之相同的元素(最多为环的长度个数) - ......
预选赛 训练营 2023 THU

代码随想录算法训练营第三十一天| 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 ......
楼梯 随想录 训练营 随想 算法

代码随想录算法训练营第三十天| 738.单调递增的数字 968.监控二叉树 (可以跳过)

738.单调递增的数字 要求: 保证最大的一个数,它满足 每个位数都是递增的 思路1: 为了减少时间复杂度,当时打算,先判断最大的位数,从大-》小,看以后的位数是否满足当前数比前一个数大 思路2: 其实前面再往后想想:就是如果当前的数不满足,直接降级,然后后面都是9 就可以了 ——》一定要好好看例子 ......
随想录 训练营 随想 算法 代码

代码随想录算法训练营第三十天| 435. 无重叠区间 763.划分字母区间 56. 合并区间

435. 无重叠区间 要求: 给了多个区间,然后找出来删掉最少的区间数,从而可以让上下的区间不重叠 换个想法: 当前节点和上一个节点如果重叠,那么我就+1,然后缩小上一个节点,如果还是跟上一个节点重叠,那么就证明这个节点也要删除 小技巧: lamda函数不好用,每次比较的时候都会在定义一个cmp函数 ......
区间 随想录 训练营 随想 算法

代码随想录算法训练营第二十九天| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

860.柠檬水找零 思路: 遇到20,先给10和5,再给三个5 代码: 1 bool lemonadeChange(vector<int>& bills) { 2 if (bills.size() == 0) return true; 3 4 map<int, int> currentMoney; ......
随想录 训练营 数组 九天 随想

代码随想录算法训练营第二十八天| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

1005.K次取反后最大化的数组和 思路: 仅排序一次,当前数<下一个数,就反转当前数,如果大于,那么就反转下一个 ——》也就是保证每次反转都是最小的数 注意:如果移动到最后一个节点了,K还没用完,那么就证明只能反转K 代码: 1 int largestSumAfterKNegations(vect ......
随想录 训练营 数组 随想 算法