day51专题

算法训练营day51

题目1:121. 买卖股票的最佳时机 - 力扣(LeetCode) 要搞明白dp数组的含义, dp数组包含两种情况,持有股票,这个可以持有之前的也可以持有今天的;不持有股票,可以是之前就不持有,也可以今天卖出 class Solution {public:int maxProfit(vector<int>& prices) {vector<vector<int>> dp(prices.siz

Day51 动态规划part10+Day52 动态规划part11

LC121买卖股票的最佳时机(未掌握) 暴力:双层循环寻找最优间距,每一次都确定一个起点,遍历剩余节点当作终点 贪心:取最左最小值,不断遍历那么得到的差值最最大值就是最大利润。 动态规划 dp数组的含义: dp[i][0] 表示第i天持有股票所得最多现金dp[i][1] 表示第i天不持有股票所得最多现金 递归式的推导 dp[i][0]=>第i-1天持有和第i天买入的最多现金=>Math.max(

学习Java的日子 Day51 数据库,DDL,DML

Day51 MySQL 1.数据库 数据库(database)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效地组织和管理存储在数据库中的数据 MySQL就是数据库管理系统,操纵和管理数据库的大型软件 1.1 学习数据库的五个基本概念 1.数据库服务器 是指用来运行数据库服务的一台电脑。小型项目通常为一台,中

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

代码随想录算法训练营Day51 | 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组 LeetCode 300.最长递增子序列 题目链接:LeetCode 300.最长递增子序列 思路: 选取最长子序列,并收集 class Solution {public:int lengthOfLIS(vector<int>& nums) {int n = nums.siz

代码随想录三刷day51

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣200. 岛屿数量二、力扣695. 岛屿的最大面积三、力扣1020. 飞地的数量四、力扣130. 被围绕的区域 前言 依然是从地图周边出发,将周边空格相邻的'O'都做上标记,然后在遍历一遍地图,遇到 'O' 且没做过标记的,那么都是地图中间的'O',全部改成'X'就行。 一、

代码随想录算法训练营DAY51|C++动态规划Part12|1143.最长公共子序列、1035.不相交的线、53.最大子序列和

文章目录 1143.最长公共子序列思路CPP代码 1035.不相交的线53.最大子序列和思路CPP代码 1143.最长公共子序列 力扣题目链接 文章讲解:1143.最长公共子序列 视频讲解:动态规划子序列问题经典题目 | LeetCode:1143.最长公共子序列 本题其实就跟718.最长重复子数组类似,不要求连续了,但是还是要求相对顺序的。 思路 确定dp数组下标

Day51:动态规划 LeedCode 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

300. 最长递增子序列 中等 相关标签 相关企业 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的 子序列 。  示例 1: 输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长

Day51|动态规划part12:309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期(无数次买卖但有限制) 具体可以区分出如下四个状态: 状态一:持有股票状态(今天买入股票,或者是之前就买入了股票然后没有操作,一直持有)不持有股票状态,这里就有两种卖出股票状态 状态二:保持卖出股票的状态(两天前就卖出了股票,度过一天冷冻期。或者是前一天就是卖出股票状态,一直没操作)状态三:今天卖出股票 状态四:今天为冷冻期状态,但冷冻期状态不可持续,只有一天!

稀碎从零算法笔记Day51-LeetCode:最小路径和

题型:DP、数组、矩阵 链接:64. 最小路径和 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 题目样例 示例 1: 输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输出:7解释:

代码随想录算法训练营Day51|LC309 买卖股票的最佳时机含冷冻期LC 714 买卖股票的最佳时机含手续费

一句话总结:还是股票II的变形。 原题链接:309 买卖股票的最佳时机含冷冻期 这里比股票II多了个冷冻期的限制,于是多设置一个状态freeze,那么它就将初始化为freeze = 0(尽管第一天不可能是冷冻期);同时计算第i天的状态递推公式也将有些变化:  newBuy = Math.max(buy, freeze - prices[i]); newSeal = buy + pri

[力扣 Hot100]Day51 岛屿数量

题目描述 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 出处 思路 经典扫描就行。 代码 class Solution {public:void del(int i, int j, int m, int n, vec

day51 动态规划part12 ● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结

一遍过 class Solution {public:int maxProfit(vector<int>& prices) {int len=prices.size();vector<vector<int>> dp(len+1,vector<int>(3,0));dp[0][2]=0;dp[0][0]=-prices[0];dp[0][1]=0;for(int i=1;i<len;i++

【Day51】代码随想录之动态规划完全背包_139.单词拆分_背包总结

文章目录 动态规划理论基础动规五部曲:出现结果不正确: 139.单词拆分背包问题0-1背包完全背包 动态规划理论基础 动规五部曲: 确定dp数组 下标及dp[i] 的含义。递推公式:比如斐波那契数列 dp[i] = dp[i-1] + dp[i-2]。初始化dp数组。确定遍历顺序:从前到后or其他。打印。 出现结果不正确: 打印dp日志和自己想的一样:递推公式、初始化

@ 代码随想录算法训练营第8周(C语言)|Day51(动态规划)

@ 代码随想录算法训练营第8周(C语言)|Day51(动态规划) Day51、动态规划(包含题目 139.单词拆分 ) 139.单词拆分 题目描述 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 题目解答 char* substring(int j,int i,char*s){int len=i-j;ch

代码随想录算法训练营29期|day51 任务以及具体安排

第九章 动态规划part08  139.单词拆分 class Solution {public boolean wordBreak(String s, List<String> wordDict) {HashSet<String> set = new HashSet<>(wordDict);boolean[] valid = new boolean[s.length() + 1];valid

代码随想录算法训练营29期Day51|LeetCode 139

文档讲解:单词拆分 139.单词拆分 题目链接:https://leetcode.cn/problems/word-break/description/ 思路:        单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包装满。        拆分时可以重复使用字典中的单词,说明就是一个完全背包!        设dp[i] : 字符串长度为i的

代码随想录算法训练营Day51|309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费、股票问题总结

目录 309.最佳买卖股票时机含冷冻期 前言 思路 算法实现  714.买卖股票的最佳时机含手续费 前言 思路  算法实现 股票问题总结 309.最佳买卖股票时机含冷冻期 题目链接 文章链接 前言         本题在买卖股票II的基础上增加了一个冷冻期,因此就不能简单分为持有股票和卖出股票两个状态了。 思路         利用动规五部曲进行分析:

算法训练营Day51(动态规划12)

309.最佳买卖股票时机含冷冻期 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 提醒 本题加了一个冷冻期,状态就多了,有点难度,要把各个状态分清,思路才能清晰  注意初始化dp[0][0]、dp[0][1]、dp[0][2],dp[0][3,]如果这状态是非法状态,那就主要看递推公式需要把它初始化为多少 class Solution:def maxProfit(self, p

算法训练营Day51(买卖股票总结)

309.最佳买卖股票时机含冷冻期   309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode) dp数组:         模拟状态:买买买 卖  冻卖卖卖  买  卖         dp[i][0] :持有股票         dp[i][1]: 不持有股票,但是之前卖出去的         dp[i][2]: 不持有股票,是刚卖出去的         dp[i][3]:冷冻

实习日记——Day51

今天是没啥工作任务,自己找事干的一天~ 今天也是盼望着放假回家的一天~ *工作任务轻的时候,其他同事都在干啥呢? 临近年关,感觉大家都有一种要从公司撤退开溜的架势。 电梯间里同事讨论的话题都是放假去哪儿玩;见到好几个同事把放假的孩子也带来公司;开会的议题新增了关于组里同事怎么安排休假;微信上问我啥时候回家的亲朋好友也越来越多…… 忍不住想——究竟是“期待回家”这件事带给我不可名状的充

力扣labuladong一刷day51天单调栈应用

力扣labuladong一刷day51天单调栈应用 一、239. 滑动窗口最大值 题目链接:https://leetcode.cn/problems/sliding-window-maximum/ 思路:滑动窗口最大值,既要维护加入的时间顺序,又要 class Solution {public int[] maxSlidingWindow(int[] nums, int k) {int[]

Day51| Leetcode 309. 买卖股票的最佳时机含冷冻期 Leetcode 714. 买卖股票的最佳时机含手续费

Leetcode 309. 买卖股票的最佳时机含冷冻期 题目链接 309 买卖股票的最佳时机含冷冻期 本题目需要考虑的状态挺多的,所以整体显得比较麻烦,搞清楚状态,剩下的内容和前面的普通版买股票差不多。 下面是状态状态分析: 状态一:持有股票状态(今天买入股票,或者是之前就买入了股票然后没有操作,一直持有)不持有股票状态,这里就有两种卖出股票状态 状态二:保持卖出股票的状态(两天前就卖出了

C语言—每日选择题—Day51

第一题 1. 对于函数void f(int x);,下面调用正确的是() A:int y = f(9); B:f(9); C:f( f(9) ); D:x=f(); 答案及解析 B 函数调用要看返回值和传参是否正确; A:错误,该函数没有返回值; B:正确; C:错误,f(9) 没有返回值,所以不能作为f函数的参数; D:错误,f函数既不能赋值给变量,并且需要传参; 第二题

CCF CSP认证 历年题目自练Day51

此题又丑又长可以直接从题目分析(个人理解)部分看 题目 试题编号: 201812-3 试题名称: CIDR合并 时间限制: 1.0s 内存限制: 512.0MB 样例输入 2 1 2 样例输出 1.0.0.0/8 2.0.0.0/8 样例输入 2 10/9 10.128/9 样例输出 10.0.0.0/8 样例输入 2 0/1 128/1 样例输出 0.0.0.0/0 题目分析(个

代码随想录Day51 完结篇 LeetCode T84 柱状图的最大矩形

前言 今天代码随想录一刷也告一段落了,没想到我居然坚持下来了,一节都没有落下,学习到了很多种不同的解题思路,也和大家一块交流了很多,哈哈也许不久以后我还得再次二刷代码随想录,希望这一系列的题解能给大家带来帮助,如想要系统学习,请参照代码随想录网站的题解以及b站的配套视频 这里给大家放上直达链接 1.随想录网站 代码随想录 (programmercarl.com) 2.b站讲解视频 代码随想录-

力扣刷题 day51:10-21

1.分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 方法一:排序