自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 动态规划区间dp之516最长回文子序列

(2)如果s[i]与s[j]不相同,说明s[i]和s[j]的同时加入 并不能增加[i,j]区间回文子序列的长度,那么分别加入s[i]、s[j]看看哪一个可以组成最长的回文子序列。其他情况dp[i][j]初始为0就行,这样递推公式:dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);那么dp[i][j]一定是取最大的,即:dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);加入s[j]的回文子序列长度为dp[i + 1][j]。

2023-09-06 14:12:09 123

原创 动态规划区间dp之647回文子串

如果这矩阵是从上到下,从左到右遍历,那么会用到没有计算过的dp[i + 1][j - 1],也就是根据不确定是不是回文的区间[i+1,j-1],来判断了[i,j]是不是回文,那结果一定是不对的。布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如果是dp[i][j]为true,否则为false。首先从递推公式中可以看出,情况三是根据dp[i + 1][j - 1]是否为true,在对dp[i][j]进行赋值true的。所以dp[i][j]初始化为false。

2023-09-06 11:06:39 135

原创 如何指定输入输出

用法:接收一个字符串,可以接收空格并输出,遇到换行则停止。getline只要一遇到换行符就结束读取操作并返回结果,哪怕输入的一开始就是换行符也是如此。cin 输入接触到第一个非空格字符时开始阅读,当遇到下一个空格字符(空格、制表符、换行符)时就会停止读取。cin的输入有一个特点,在遇到‘ ’(空格)时,会结束输入,而cin.get()则将‘ ’也作为了一个字符放到输入里。2.当不知道输入有多少个数时,默认遇到空格时停止输入。当遇到换行符时,while语句不符合条件停止输入。2.3 string类型。

2023-09-04 15:06:19 123

原创 动态规划完全背包之518零钱兑换 II

这个递推公式和494目标和是一样的,即求装满背包有几种方法,公式都是:dp[j] += dp[j - nums[i]];给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。请你计算并返回可以凑成总金额的硬币组合数。(1)先遍历物品,再遍历背包容量:是求组合数,也就是物品的前后顺序不重要。我们知道01背包内嵌的循环是从大到小遍历,为了保证每个物品仅被添加一次。(2)先遍历背包容量,再遍历物品:是求排列数,也就是物品的前后顺序重要。假设每一种面额的硬币有无限个。

2023-07-16 20:48:18 263

原创 动态规划之119杨辉三角 II

它是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。即第 n 行的第 i 个数等于第 n−1 行的第 i−1 个数和第 i 个数之和。(3)第 n 行的第 m 个数(从 0 开始编号)表示组合数 C(n,m),记作。(2)第 n 行(从 0 开始编号)的数字有 n+1 项,前 n 行共有。的展开式(二项式展开)中的各项系数依次对应杨辉三角的第 n 行中的每一项。在「杨辉三角」中,每个数是它左上方和右上方的数的和。

2023-07-15 21:42:17 272

原创 动态规划之118杨辉三角

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

2023-07-15 19:21:10 138

原创 动态规划01背包之494目标和

例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1"。当背包里已经有一个1(nums[i]) 的话,有 dp[3]种方法 凑成 容量为4的背包。当背包里已经有一个2(nums[i]) 的话,有 dp[2]种方法 凑成 容量为4的背包。当背包里已经有一个3(nums[i]) 的话,有 dp[1]种方法 凑成 容量为4的背包。当背包里已经有一个4(nums[i]) 的话,有 dp[0]种方法 凑成 容量为4的背包。

2023-07-14 22:37:07 128

原创 动态规划01背包之1049 最后一块石头的重量 II

本题中,石头的重量是 stones[i],石头的价值也是 stones[i] ,可以 “ 最多可以装的价值为 dp[j] ” == “ 最多可以背的重量为dp[j] ”01背包的递推公式为:dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);01背包中,dp[j]:容量为j的背包,最多可以装的价值为 dp[j]。本题物品的重量为stones[i],物品的价值也为stones[i]。,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为。

2023-07-14 20:45:11 216

原创 动态规划01背包之416分割等和子集

由dp[i - 1][j - weight[i]]推出,dp[i - 1][j - weight[i]] 为背包容量为j - weight[i]的时候不放物品i的最大价值,那么dp[i - 1][j - weight[i]] + value[i] (物品i的价值),就是背包放物品i得到的最大价值。:由dp[i - 1][j]推出,即背包容量为j,里面不放物品i的最大价值,此时dp[i][j]就是dp[i - 1][j]。(2)背包要放入的商品(集合里的元素)体积为 元素的数值,价值也为元素的数值。

2023-07-14 20:00:54 228

原创 动态规划之96不同的二叉搜索树

dp[3],就是 元素1为头结点搜索树的数量 + 元素2为头结点搜索树的数量 + 元素3为头结点搜索树的数量。当1为头结点的时候,其右子树有两个节点,看这两个节点的布局,和 n 为2的时候两棵树的布局是一样的。元素1为头结点搜索树的数量 = 右子树有2个元素的搜索树数量 * 左子树有0个元素的搜索树数量。元素2为头结点搜索树的数量 = 右子树有1个元素的搜索树数量 * 左子树有1个元素的搜索树数量。元素3为头结点搜索树的数量 = 右子树有0个元素的搜索树数量 * 左子树有2个元素的搜索树数量。

2023-07-08 20:29:10 288

原创 动态规划之343整数拆分

其实可以从1开始遍历 j ,然后有两种渠道得到dp[i].是单纯的把整数拆分为两个数相乘,而。是拆分成两个以及两个以上的个数相乘。,相当于是拆分 (i - j)。),并使这些整数的乘积最大化。直接相乘,相当于拆分 i。你可以获得的最大乘积。

2023-07-08 19:04:30 339

原创 动态规划之63不同路径 II

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。

2023-07-07 21:29:29 292

原创 动态规划之62不同路径

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。问总共有多少条不同的路径?

2023-07-07 20:58:32 243

原创 动态规划之746使用最小花费爬楼梯

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。

2023-07-07 20:26:19 179

原创 动态规划之70爬楼梯

你有多少种不同的方法可以爬到楼顶呢?空间复杂度:O(n);时间复杂度:O(n)

2023-07-07 19:47:41 273

原创 动态规划之509斐波那契数

表示)形成的序列称为 斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。斐波那契数 (通常用。

2023-07-06 18:38:07 114

原创 常用的 Linux 基础命令

更改目录,顾名思义,它会将您切换到您试图访问的目录。cdcd … 返回上一级目录cd …/… 返回上两级目录cd -

2023-07-03 21:12:08 170

原创 计算机网络面经之TCP三次握手和四次挥手的详解

(1)序号(sequence number):seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(2)确认号(acknowledgement number):ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,ack=seq+1。(3)标志位(Flags):共6个,即URG、ACK、PSH、RST、SYN、FIN等。标志位含义URG紧急指针(urgent pointer)有效。ACK确认序号有效。

2023-07-01 20:58:28 668

原创 面经之C++指针和引用的定义、区别、相同点

(1)指针:指针是一种数据类型,用于保存地址类型的数据。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。int a = 10;//定义整型变量a //指针定义语法: 数据类型 * 变量名;int * p;//指针变量赋值 p = & a;//指针指向变量a的地址 cout

2023-05-21 15:58:17 558

原创 MySQL学习笔记第八章(聚合函数)

什么是聚合函数聚合函数作用于一组数据,并对一组数据返回一个值。聚合函数类型AVG()SUM()MAX()MIN()COUNT()聚合函数语法聚合函数不能嵌套调用。比如不能出现类似“AVG(SUM(字段名称))”形式的调用。

2023-05-07 17:01:40 899

原创 MySQL学习笔记第七章(单行函数)

函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在SQL 中我们也可以使用函数对检索出来的数据进行函数操作。使用这些函数,可以极大地提高用户对数据库的管理效率。从函数定义的角度出发,我们可以将函数分成内置函数和自定义函数。在 SQL 语言中,同样也包括了内置函数和自定义函数。内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编写的,本章及下一章讲解的是 SQL 的内置函数。

2023-05-02 17:07:09 800

原创 MySQL学习笔记第六章(多表查询)

假设有两个集合 X 和 Y,那么 X 和 Y 的笛卡尔积就是 X 和 Y 的所有可能组合,也就是第一个对象来自于 X,第二个对象来自于 Y 的所有可能。SQL99 采用的这种嵌套结构非常清爽、层次性更强、可读性更强,即使再多的表进行连接也都清晰可见。**总结:**连接 n个表,至少需要n-1个连接条件。比如,连接三个表,至少需要两个连接条件。除了查询满足条件的记录以外,外连接还可以查询某一方不满足条件的记录。角度1 :针对连接条件:等值连接 vs 非等值连接。角度2:自连接 vs 非自连接。

2023-05-01 17:21:42 1073 1

原创 算法基础(三)(共有20道例题)

七、数学知识(一)质数质数(素数) 的定义:互质的定义:除了1以外,两个没有其他共同质因子的正整数称为互质,比如3和7互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。约数(因数) 的定义:约数又称为因数。整数a除以整数b (b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。 a称为b的倍数,b称为a的约数。合数的定义:合数是指在>=2的整数中除了能被1和本身整除外,还能被其他正整数(0除外)整除的数。 与之相对的是质数,而1既不属于质数也不属于合数

2023-04-26 17:11:43 683

原创 算法基础(二)(共有30道例题)

题目难度:中等public ://向左逼近,找左边界 x...mid... else left = mid + 1;else {//向右逼近,找右边界 else right = mid - 1;} };题目难度:简单先判断字符串大小是否是2的倍数,不是2的倍数一定匹配不上!遍历字符串:第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字符。

2023-04-26 17:10:26 1022

原创 MySQL学习笔记第五章(排序与分页)

逻辑运算符主要用来判断表达式的真假,在MySQL中,逻辑运算符的返回结果为1、0或者NULL。

2023-04-26 17:08:19 361

原创 MySQL学习笔记第四章(运算符)

算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算。

2023-04-22 21:05:22 573

原创 MySQL学习笔记第三章(基本的SELECT语句)

这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。主要的语句关键字包括。

2023-04-19 20:05:07 577

原创 MySQL学习笔记第一天

在卸载之前,先停止MySQL8.0的服务。按键盘上的“Ctrl + Alt + Delete”组合键,打开“任务管理器”对话框,可以在“服务”列表找到“MySQL8.0”的服务,如果现在“正在运行”状态,可以右键单击服务,选择“停止”选项停止MySQL8.0的服务。

2023-04-18 16:55:21 347

原创 蓝桥杯高频考点(下)

1.符号定义:共有N个点,找N点到1号点的最短距离;g[N][N]存储每条边的权重;dist[N]存储1号点到每个点的最短距离;st[N]存储每个点的最短路是否已经确定。(3)更新j点到1号点的距离:dist[j] = min(dist[j], dist[t] + g[t][j]);所谓广度优先,就是每次都尝试访问同一层的节点。如果同一层都访问完了,再访问下一层。(2)每次从未标记的节点选择距离出发点最近的节点t并标记st[t]=true;(1)先将所有的点到1号点的距离初始化为正无穷;

2023-04-07 19:33:00 459

原创 蓝桥杯高频知识点(上)

a,出现在a,ab,abc + ba,bab,babc + aba,abab,ababc,有重复子串 aba,abab,ababc(这几个其实第一个a已经包含过它们了,所以只需要从a算到b a,前面的可以删去不用,因为之前的情况前面的a已经贡献过了),最后算得贡献值为6,b,出现在了b,bc + ab,abc +bab,babc + abab,ababc,含有相同字符的前串bab ,babc,abab,ababc可以去掉,最后算得贡献值为4,ba,bab,babc,a,ab,abc。

2023-04-06 15:34:40 1038 1

原创 算法基础(一)(共有25道例题,大多数为简单题)

此为基础篇的(一)

2023-02-25 17:03:13 2246

原创 leetcode刷题之背包问题(01背包)

最简单的背包

2023-02-09 22:54:35 3948

原创 leetcode刷题之回溯算法(组合问题)

组合问题

2023-02-07 23:40:27 121

原创 基本题型之栈和递归(一)

学不完了,我太懒了

2023-02-06 00:40:30 589

原创 基本题型之动态规划

动态规划

2023-02-05 00:07:10 61

原创 C++ STL源码剖析——P1、P2、P3、P4、P5、P6、P7

不想写摘要

2023-02-01 23:28:51 360

原创 leetcode刷题之二叉树的修改构造(翻转、构造(最大二叉树、合并二叉树))

翻转、构造二叉树

2023-01-28 21:47:08 51

原创 leetcode刷题之二叉树(对称、深度(最大深度,最小深度)、完全二叉树)

对称、深度(最大深度,最小深度)、完全二叉树

2023-01-27 22:08:38 54

原创 leetcode刷题之二叉树遍历(递归、迭代和层序)

树的遍历

2023-01-26 00:03:16 155 1

原创 leetcode刷题之字符串(反转,KMP,KMPwocaonima)

KMP很难

2023-01-24 20:45:09 65

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除