自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 933数据结构和计算机网络

1:2022,2023年考研题。2:学校期末计网十套题。3:学校数据结构期末。

2023-12-27 07:39:26 496 1

原创 考研数据结构填空题整合

10. 已知某带权连通无向图采用邻接矩阵存储方式,邻接矩阵以三元组表形式给出,部包括主对角线元素在内的下三角形部分元素对应的各三元组分别为(2,1,7),(3,1,6),(3,2,8),(4,1,9)(4,2,4),(4,3,6),(5,1, ),(5,2,4),(5,3, ),(5,4,2)。6.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序方法,以第一个记录为基准得到的第一次划分结果是________{40,38,46,56,79,84}________

2023-08-15 15:27:04 1018

原创 AcWing 算法基础课 数据结构(三)

AcWing-840题。AcWing-840题。AcWing-841题。

2023-06-04 18:53:24 241

原创 AcWing 算法基础课 图论与搜索(二)

2.for i:1~n t:不在s中的距离最近的点 s<-t:用t更新其他点距离,dis[x]>dis[t]+w(权重)1.初始化距离 dis[1]=0, dis[i]=+∞。适用:稠密图 s:当前已确定最短距离的点。不同源点(起点)到汇点(终点),起点和终点不确定。一个起点到其他所有点最短路。

2023-06-01 16:47:07 712

原创 代码随想录Day60-LeetCode 84

情况一:当前遍历的元素heights[i]大于栈顶元素heights[st.top()]的情况。情况二:当前遍历的元素heights[i]等于栈顶元素heights[st.top()]的情况。情况三:当前遍历的元素heights[i]小于栈顶元素heights[st.top()]的情况。

2023-05-13 10:17:19 82

原创 代码随想录Day59-LeetCode 503 & 42

【代码】代码随想录Day59-LeetCode 503 & 42。

2023-05-12 14:20:48 108

原创 代码随想录Day58-LeetCode 739 & 496

情况一:当前遍历的元素T[i]小于栈顶元素T[st.top()]的情况。情况二:当前遍历的元素T[i]等于栈顶元素T[st.top()]的情况。情况三:当前遍历的元素T[i]大于栈顶元素T[st.top()]的情况。情况一:当前遍历的元素T[i]小于栈顶元素T[st.top()]的情况。情况二:当前遍历的元素T[i]等于栈顶元素T[st.top()]的情况。情况三:当前遍历的元素T[i]大于栈顶元素T[st.top()]的情况。此时满足递增栈(栈头到栈底的顺序),所以直接入栈。

2023-05-11 15:34:40 321

原创 代码随想录Day57-LeetCode 647 & 516

情况三:下标:i 与 j相差大于1的时候,例如cabac,此时s[i]与s[j]已经相同了,我们看i到j区间是不是回文子串就看aba是不是回文就可以了,那么aba的区间就是 i+1 与 j-1区间,这个区间是不是回文就看dp[i + 1][j - 1]是否为true。情况一:下标i 与 j相同,同一个字符例如a,当然是回文子串。情况二:下标i 与 j相差为1,例如aa,也是回文子串。

2023-05-10 10:11:30 40

原创 代码随想录Day56-LeetCode 583 & 72

递推公式:dp[i][j] = min({dp[i - 1][j - 1] + 2, dp[i - 1][j] + 1, dp[i][j - 1] + 1});当word1[i - 1] 与 word2[j - 1]相同的时候,dp[i][j] = dp[i - 1][j - 1];情况三:同时删word1[i - 1]和word2[j - 1],操作的最少次数为dp[i - 1][j - 1] + 2。情况一:删word1[i - 1],最少操作次数为dp[i - 1][j] + 1。

2023-05-09 09:32:47 240

原创 代码随想录Day55-LeetCode 392 & 115

t[j - 1]),此时相当于t要删除元素,t如果把当前元素t[j - 1]删除,那么dp[i][j] 的数值就是 看s[i - 1]与 t[j - 2]的比较结果了,dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。if (s[i - 1] == t[j - 1]),那么dp[i][j] = dp[i - 1][j - 1] + 1;情况一:if (s[i - 1]!即:dp[i][j] = dp[i][j - 1];

2023-05-08 15:38:14 41

原创 代码随想录Day53-LeetCode 1143 & 1035 & 53

如果text1[i - 1] 与 text2[j - 1]相同,那么找到了一个公共元素,所以dp[i][j] = dp[i - 1][j - 1] + 1;dp[i][j]:长度为[0, i - 1]的字符串text1与长度为[0, j - 1]的字符串text2的最长公共子序列为dp[i][j]text1[i - 1] 与 text2[j - 1]相同,text1[i - 1] 与 text2[j - 1]不相同。即:dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);

2023-05-06 14:32:38 383

原创 代码随想录Day52-LeetCode 300 & 674 & 718

即当A[i - 1] 和B[j - 1]相等的时候,dp[i][j] = dp[i - 1][j - 1] + 1;所以:if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1);根据dp[i][j]的定义,dp[i][j]的状态只能由dp[i - 1][j - 1]推导出来。注意这里不是要dp[i] 与 dp[j] + 1进行比较,而是要取dp[j] + 1的最大值。递推公式:dp[i] = max(dp[i], dp[j] + 1);

2023-05-05 11:11:37 400

原创 代码随想录Day51-LeetCode 309 & 714

状态二:j=1:两天前就卖出了股票,度过了冷冻期,一直没操作,今天保持卖出股票状态。状态一:j=0:买入股票状态(今天买入股票,或者是之前就买入了股票然后没有操作)状态四:j=3:今天为冷冻期状态,但冷冻期状态不可持续,只有一天!卖出股票状态,这里就有两种卖出股票状态。状态三:j=2:今天卖出了股票。

2023-05-04 18:27:12 594

原创 代码随想录Day50-LeetCode 123 & 188

【代码】代码随想录Day50-LeetCode 123 & 188。

2023-05-03 15:39:51 145

原创 代码随想录Day49-LeetCode 121 & 122

同样dp[i][1]取最大的,dp[i][1] = max(dp[i - 1][1], prices[i] + dp[i - 1][0]);那么dp[i][0]应该选所得现金最大的,所以dp[i][0] = max(dp[i - 1][0], -prices[i]);和 dp[i][1] = max(dp[i - 1][1], prices[i] + dp[i - 1][0])递推公式:dp[i][0] = max(dp[i - 1][0], -prices[i]);

2023-05-03 14:08:02 615

原创 代码随想录Day48-LeetCode 198 & 213 & 337

dp[i]取最大值,即dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);请款三:无尾元素 0 ~ nums.size()-2。情况二:无首元素 1 ~ num.size()-1。情况一:无首元素&尾元素(情况二和三包含情况一)

2023-05-02 10:07:20 143

原创 代码随想录Day46-LeetCode 139

apple”, “pen” 是物品,那么我们要求 物品的组合一定是 “apple” + “pen” + “apple” 才能组成 “applepenapple”。“apple” + “apple” + “pen” 或者 “pen” + “apple” + “apple” 是不可以的,那么我们就是强调物品之间顺序。求的是排列数,拿 s = “applepenapple”, wordDict = [“apple”, “pen”] 举例。所以说,本题一定是 先遍历 背包,再遍历物品。

2023-04-29 08:45:37 155

原创 代码随想录Day45-LeetCode 70 & 322 & 279

凑足总额为j - coins[i]的最少个数为dp[j - coins[i]],那么只需要加上一个钱币coins[i]即dp[j - coins[i]] + 1就是dp[j](考虑coins[i])此时我们要选择最小的dp[j],所以递推公式:dp[j] = min(dp[j - i * i] + 1, dp[j]);dp[j] 可以由dp[j - i * i]推出, dp[j - i * i] + 1 便可以凑成dp[j]。所以dp[j] 要取所有 dp[j - coins[i]] + 1 中最小的。

2023-04-28 16:02:56 139

原创 代码随想录Day44-LeetCode 518 & 377

target(背包)放在外循环,将nums(物品)放在内循环,内循环从前到后遍历。如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。

2023-04-27 10:50:15 140

原创 代码随想录Day43-LeetCode 1049 & 494 & 474

中等思考石头的重量是 stones[i],石头的价值也是 stones[i] ,可以 “最多可以装的价值为 dp[j]” == “最多可以背的重量为dp[j]”因为提示中给出1 <= stones.length <= 30,1 <= stones[i] <= 1000,所以最大重量就是30 * 1000。在计算target的时候,target = sum / 2 因为是向下取整,所以sum - dp[target] 一定是大于等于dp[target]的。

2023-04-26 18:04:21 49

原创 代码随想录Day42-LeetCode 416

【代码】代码随想录Day42-LeetCode 416。

2023-04-25 10:16:27 89

原创 代码随想录Day41-LeetCode 343 & 96

那么从1遍历j,比较(i - j) * j和dp[i - j] * j 取最大的。递推公式:dp[i] = max(dp[i], max((i - j) * j, dp[i - j] * j));也可以这么理解,j * (i - j) 是单纯的把整数拆分为两个数相乘,j是从1开始遍历,拆分j的情况,在遍历j的过程中其实都计算过了。而j * dp[i - j]是拆分成两个以及两个以上的个数相乘。

2023-04-24 17:55:00 81

原创 代码随想录Day39-LeetCode 62 & 63

思考:和上题类似,增加了障碍。

2023-04-22 07:31:31 43

原创 代码随想录Day38-LeetCode 509 & 70 & 746

思考:类似斐波那契,就是初始值不同。

2023-04-21 10:40:23 140

原创 代码随想录Day37-LeetCode 738 & 968

left == 1 && right == 0 左节点有摄像头,右节点无覆盖。left == 0 && right == 1 左节点有无覆盖,右节点摄像头。left == 1 && right == 2 左节点有摄像头,右节点有覆盖。left == 2 && right == 1 左节点有覆盖,右节点有摄像头。left == 0 && right == 2 左节点无覆盖,右节点覆盖。left == 2 && right == 0 左节点覆盖,右节点无覆盖。其他情况前段代码均已覆盖。

2023-04-20 09:08:18 29

原创 代码随想录Day36-LeetCode 435 & 763 & 56

即:intervals[i]的左边界在intervals[i - 1]左边界和右边界的范围内,那么一定有重复!按照左边界从小到大排序之后,如果 intervals[i][0] < intervals[i - 1][1]从头遍历字符,并更新字符的最远出现下标,如果找到字符最远出现位置下标和当前下标相等了,则找到了分割点。即intervals[i]左边界 < intervals[i - 1]右边界,则一定有重复,因为intervals[i]的左边界一定是大于等于intervals[i - 1]的左边界。

2023-04-19 11:07:13 40

原创 代码随想录Day35-LeetCode 860 & 406 & 452

排序完的people: [[7,0], [7,1], [6,1], [5,0], [5,2],[4,4]]插入[4,4]:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]插入[5,2]:[[5,0],[7,0],[5,2],[6,1],[7,1]]插入[5,0]:[[5,0],[7,0],[6,1],[7,1]]插入[6,1]:[[7,0],[6,1],[7,1]]插入过程: 插入[7,0]:[[7,0]]插入[7,1]:[[7,0],[7,1]]思考:引爆右边界最小值。

2023-04-18 09:22:28 33

原创 代码随想录Day34-LeetCode 1005 & 134 & 135

如果ratings[i] > ratings[i - 1] 那么[i]的糖 一定要比[i - 1]的糖多一个,所以贪心:candyVec[i] = candyVec[i - 1] + 1。3.i从0开始累加rest[i],和记为curSum,一旦curSum小于零,说明[0, i]区间都不能作为起始位置,起始位置从i+1算起,再从0计算curSum。只要右边评分比左边大,右边的孩子就多一个糖果,全局最优:相邻的孩子中,评分高的右孩子获得比左边孩子更多的糖果。思考:全局最优解是根据局部最优推导出来的。

2023-04-17 14:15:42 36

原创 代码随想录Day32-LeetCode 122 & 54 & 45

思考:利用数字的覆盖范围,求是否可以达到数据的全部长度。思考:第二天-第一天>0,收集正利润,计算正利润总和。

2023-04-15 15:36:24 168

原创 代码随想录Day31-LeetCode 455 & 376 & 53

遍历nums,从头开始用count累积,如果count一旦加上nums[i]变为负数,那么就应该从nums[i+1]开始从0累积count了,因为已经变为负数的count,只会拖累总和。局部最优的情况下,并记录最大的“连续和”,可以推出全局最优。思考:大饼干先喂大胃口孩子。情况三:单调坡度有平坡。情况一:相同数字连续。情况二:数组首尾两端。

2023-04-15 14:44:46 33

原创 代码随想录Day30-LeetCode 51 & 37

题目链接:[LeetCode-37](https://leetcode.cn/problems/sudoku-solver/

2023-04-13 18:21:44 75

原创 代码随想录Day29-LeetCode 491 & 46 & 47

定义一个map,记录树层数字出现的次数,为了去重。数组nums、搜索下标startIndex。当path元素个数大于1就收集结果。1、递归函数的参数与返回值。

2023-04-13 17:45:46 34

原创 代码随想录Day28-LeetCode 93 & 78 & 90

【代码】代码随想录Day28-LeetCode 93 & 78 & 90。

2023-04-11 17:23:35 51

原创 代码随想录Day27-LeetCode 39 & 40 & 131

思考:无重复元素,但能有重复元素的组合总和。思考:有重复元素,但还不能有重复的组合。

2023-04-10 14:11:05 35

原创 代码随想录Day25-LeetCode 216 & 17

思考:回溯法进行递归操作。

2023-04-08 11:55:52 34

原创 代码随想录Day24-LeetCode 77

【代码】代码随想录Day24-LeetCode 77。

2023-04-07 08:53:57 54

原创 代码随想录Day23-LeetCode 669 & 108 & 538

思考:要考虑删除的结点的左孩子的右节点是否满足或者删除节点的右孩子的左节点是否满足。

2023-04-06 11:16:09 30

原创 代码随想录Day22-LeetCode 235 & 701 &450

2-4.左右孩子都有,删除节点的左子树头结点(左孩子)放到删除节点的右子树的最左面节点的左孩子上,返回删除节点右孩子为新的根节点。2-2.有左孩子无右孩子,删除节点,左孩子补位。2-3.有右孩子无左孩子,删除节点,右孩子补位。思考:直接在叶子节点进行插入。1.找不到删除节点直接返回。2-1.是叶子节点直接删除。

2023-04-05 14:07:24 71

原创 代码随想录Day21-LeetCode 530 & 501 & 236

思考:利用中序遍历存储数组,进行比较差值。

2023-04-04 10:53:26 30

原创 代码随想录Day20-LeetCode 654 & 617 & 700 & 98

思考:数组中的值最小为1,寻找最大值,递归左子树和右子树。思考:利用前序遍历,对2个二叉树进行结合。思考:二叉搜索树左小右大。

2023-04-03 10:38:58 32

空空如也

空空如也

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

TA关注的人

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