- 博客(182)
- 收藏
- 关注
原创 磨刀不误砍柴工——在Ubuntu环境下MySQL的安装与卸载,一文帮你搞定
3、检查MySQL服务是否启动,没有启动则需要手动启动。4、登录MySQL(默认初始时不需要密码就可以登录)4、删除配置文件与数据库文件。1、更新系统的软件包列表。2、安装MySQL服务器。2、卸载MySQL服务器。1、停止MySQL服务。5、清理残留的配置文件。6、刷新系统包管理器。
2025-01-21 20:11:11
668
17
原创 【动态规划-卡特兰数——96.不同的二叉搜索树】
需要用到前面位置的值,则需要初始化dp[0]为1,方便后续的填表。根据状态表示返回dp[n]
2024-11-21 22:45:00
1028
29
原创 【动态规划-似包非包问题】——377.组合总和IV
因为可能用到前面位置的值,所以要将第一个位置初始化,也就是总和为0的情况数,此时只有空集这一种情况,因此初始化dp[0]=1即可。状态表示确定后,状态转移方程随之就确定了 :dp[i] += dp[i-nums[i]]1.状态表示(重点难点)
2024-11-21 21:22:53
403
19
原创 动态规划-二维费用问题——474.一和零
这里的初始化只需要初始化当i等于0时的情况即可,因为判断了j与k一定大于a和b,也就是一定不会越界,无需判断。当i等于0,意味着没有选择字符串,那么子集的长度一定为0,所以将第一层初始化为0即可。从前向后逐层填表,每一层从上到下,每一行从左到右。返回dp[len][m][n]
2024-11-18 22:51:05
575
9
原创 动态规划-完全背包问题——322.零钱兑换
判断最后一个位置是否可以选取,可以则返回其真实值,不可以则代表不能找出完全等于amount的最小硬币个数,返回-1。这里需要寻找硬币使总面值等于一个值求出所需硬币的最小个数,所以不妨设置一个二维dp表,即。dp[i][j]:在[1,i]个硬币中选择的硬币总面值完全等于j时所需要的最小硬币个数。从上到下,每一行从左到右。
2024-11-16 22:25:01
549
6
原创 动态规划-背包问题——1049.最后一块石头的重量II
首先依旧是背包问题的思路,对最后一个位置进行分类讨论,首先判断当第i个位置不会选取,此时就找到dp[i-1][j],判断此时的方法数;然后判断选取第i个位置的数,此时就需要寻找到dp[i-1][j-nums[i-1]]这个位置的dp表的值,然后加到总方法数中去,当然需要判断j>=nums[i-1]dp[i][j]:在[1,i]区间选择的数字总和不大于(小于或等于) j 的总和大小。子数尽可能接近于原数字的一半。
2024-11-15 23:31:38
419
11
原创 动态规划-背包问题——[模版]完全背包问题
与01背包相同,这里的完全背包也是需要一个二维dp表来表示最大价值,具体如下。返回最后一个位置dp表的值。从上至下,每一行从左到右。
2024-11-15 23:16:52
1352
5
原创 计算机组成原理——进位计数制
1.认识不同进制通常的我们日常生活中用到的都是十进制,比如买东西或者期末成绩等等,当然肯定不止这一种进制方法,相关的还有二进制、八进制、十六进制,还有古罗马数字,通常古罗马数字近似可以看作是五进制的数,V代表他的权重2.不同进制之间的相互转换2.1其他进制转化为十进制2.2十进制转化为其他进制2.2.1整数部分(除留余数法)2.2.2小数部分(乘基取整法)本文图片资源均来源于王道考研
2024-11-13 23:15:12
208
1
原创 动态规划-背包问题——494.目标和
首先我们需要将问题简化,这里需要找到能将数组组合计算成为指定数字target的添加方式,那么我们就可以将数字分为两类,一类是前面添加"+"的,另一类则是添加"-"的,那么对这两类数字进行关系分析最终如下图得到了关于正数总和的表达式,因此就转化为将数组中的数字挑选出和恰好为a的组合方法有几种,也就是背包问题。然后判断选取第i个位置的数,此时就需要寻找到dp[i-1][j-nums[i-1]]这个位置的dp表的值,然后加到总方法数中去,当然需要判断j>=nums[i-1]返回dp表最后一个位置的值即可。
2024-11-13 22:45:18
623
5
原创 计算机组成原理——计算机的基本组成
1.计算机由运算器(ALU)、控制器(CU)、存储器、输入设备、输出设备五个部分组成2.指令和数据以同等地位存于存储器中,可以通过地址访问3.指令和数据以二进制表示4.指令由操作码和地址码组成,操作码指出操作数据的类型,地址码给出操作数的地址5.以运算器为中心6.采用"存储程序"的工作方式主存储器的基本组成运算器的基本组成控制器的基本组成 程序运行时的步骤 各部件的作用思维导图 机器字长的定义 存储容量 衡量性能的时间指标 总结:
2024-11-11 21:28:02
390
1
原创 动态规划-背包问题——[模版]01背包(背包母题)
返回dp[n][V],第一小问代表在[1,n]个物品取出总体积不大于V的物品的最大总价值。第二小问代表在[1,n]个物品中取出物品体积恰好为V的总价值。
2024-11-10 20:03:48
436
2
原创 动态规划-两个数组的dp问题——712.两个字符串的最小ASCII删除和
由于如果直接求本题会发现无从下手,不妨根据正难则反的原理,反向求公共子序列的ASCII码最大值即可,于是就转化为求公共子序列的问题,那么就需要一个二维dp判断s1与s2的两个区间的公共子序列的最大ASCII值和,即。dp[i][j]:s1的[0,i]区间与s2的[0,j]区间的公共子序列的最大ASCII码值之和。
2024-11-07 23:42:00
368
9
原创 动态规划-两个数组的dp问题——97.交错字符串
1.题目解析题目来源97.交错字符串——力扣 测试用例2.算法原理1.状态表示这里需要判断能否可以使用s1与s2来交错组成s3,所以不妨将s1与s2分为两个区间,这样的话s3就是s1与s2区间长度的和,这里将三个字符串开头均加上空格可以使下标映射更加简单,即dp[i][j]:s1的[1,i]区间与s2的[1,j]区间是否可以交错组成s3的[1,i+j]区间2.状态转移方程状态转移方程这里使用s1与s2的末尾与s3的末尾作对比来进行填表,详细解
2024-11-07 16:51:48
215
6
原创 C++11超详细解析——爆肝万字详解
C++98中⼀般数组和结构体可以⽤{}进⾏初始化1.2C++11的{}• C++11以后想统⼀初始化⽅式,试图实现⼀切对象皆可⽤{}初始化,{}初始化也叫做列表初始化• 内置类型⽀持,⾃定义类型也⽀持,⾃定义类型本质是类型转换,中间会产⽣临时对象,最后优化 了以后变成直接构造• {}初始化的过程中,可以省略掉=• C++11列表初始化的本意是想实现⼀个⼤统⼀的初始化⽅式,其次他在有些场景下带来的不少便 利,如容器push/inset多参数构造的对象时,{}初始化会很⽅便• 上⾯的初始化已
2024-11-04 21:32:09
2488
6
原创 动态规划-两个数组的dp问题——1143.最长公共子序列
状态转移方程需要判断最后一个位置的字符是否相等来分类讨论,如下。初始化需要用到空串并且需要注意对于下标映射的处理,如图。根据状态表示直接返回dp[m][n]即可。
2024-11-03 16:05:44
263
8
原创 动态规划-回文串系列——1312.让字符串变成回文串的最小插入次数
这里首先判断两端字符是否相同,如果相同则需要判断[i,j]区间字符个数,然后向中间移动取dp表的值,反之不相同则需要对左插与右插两种情况取min值。一维dp表无法存储任意区间内将字符串变为回文子串的最小插入次数,所以使用二维dp表存储将[i,j]区间的字符串变为回文子串的最小插入次数。dp表只有中间对角线与中间对角线的右上方对角线两条路线可能会用到下三角的值,但是下三角全为0不影响填表,因此不用初始化。将[i,j]区间的字符串变为回文子串的最小插入次数。
2024-11-02 16:27:49
391
2
原创 动态规划-回文串系列——516.最长回文子序列
判断回文子序列需要从两端开始判断,当两端相等就向中间判断,如果不等就需要更换区间并且取出最长回文串子序列的长度。填表时将对角线都初始化为1,下三角默认为0,因为即使用到了下三角的数值,0也不会影响填表,所以就不用进行初始化。
2024-11-02 15:17:47
324
6
原创 动态规划-回文串问题——132.分割回文串II
当[0,i]位置的字符串是回文子串时就不用分割,因此dp[i]=0,反之需要创建新的指针j(1
2024-11-01 21:26:09
789
8
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人