算法
梦飞梦
这个作者很懒,什么都没留下…
展开
-
算法学习14
【代码】算法学习14。原创 2023-04-01 18:13:34 · 95 阅读 · 0 评论 -
算法学习12
【代码】算法学习12。原创 2023-03-27 20:01:30 · 89 阅读 · 0 评论 -
算法学习11
【代码】算法学习11。原创 2023-03-26 22:02:24 · 70 阅读 · 0 评论 -
算法学习10
【代码】算法学习10。原创 2023-03-23 20:20:25 · 48 阅读 · 0 评论 -
算法学习10 动态规划02
状态转移:dp[i]=max(dp[i-1]+nums[i], nums[i]),求dp[i]时,我们可以考虑dp[i-1]的值,再将nums[i]加上去,如果dp[i-1]是负数,加上nums[i]也是小的,则就直接取nums[i],所以我们取其中的最大值。状态转移:max(dp[i][j] = dp[i-1][j], dp[i][j-1]) + grid[i][j]状态定义:dp[i]表示第i位置结尾的连续子数组的最大和。返回值:dp数组最后一个值dp[m-1][n-1]状态定义:dp[i][j]原创 2023-03-23 09:10:31 · 26 阅读 · 0 评论 -
算法学习09 动态规划01
转移方程:di[i]等于前i-1日最大利润dp[i-1]和第i日卖出的最大利润的最大值;状态定义:dp[i]代表以prices[i]结尾的子数组的最大利润;1. 第i天不操作,当天最大利润,就是i-1天的最大利润;的股票,此时利润就是当日股票价-前i天的最低价。dp[i]表示第i天的最大利润;2. 第i天卖出,之前的某一天以。初始状态:dp[0]=0;返回值:dp[n-1]原创 2023-03-21 21:54:36 · 34 阅读 · 0 评论 -
算法学习08
【代码】算法学习08。原创 2023-03-20 19:44:09 · 23 阅读 · 0 评论 -
算法学习07
不断对字符串进行操作,并存入队列中,不断从队列中取出字符串,进行相加和轮转操作,得到新的字符串。首先定义队列q,将初始s入队,定义一个hash表vis,用于记录字符串是否出现过。BFS:暴力穷举所有的解,找到最小值。原创 2023-03-19 14:21:43 · 35 阅读 · 0 评论 -
算法学习06
【代码】算法学习06。原创 2023-03-19 10:41:42 · 52 阅读 · 0 评论 -
算法学习05
使用二分查找找到第一个等于target的数字,然后向后遍历,找到第一个大于target的数字,target的出现次数就在这个区间内。原创 2023-03-19 09:35:09 · 32 阅读 · 0 评论 -
算法学习04
本题主要思想还是前缀和问题,但是需要考虑倍数问题,不是单单求和问题了,要想使得加起来的和是k的倍数,则两个数除以k具有相同的余数。当前前缀和-之前的前缀和 == k,说明,子数组等于k就在这个区间内。主要是关于前缀和的问题。原创 2023-03-17 21:36:21 · 32 阅读 · 0 评论 -
算法学习03
【代码】算法学习03。原创 2023-03-16 21:10:31 · 37 阅读 · 0 评论 -
算法学习02
并不是所有的城市都要连接起来,而且也不是从连接的两个城市扩散,可以是随机两个城市。原创 2023-03-15 20:51:26 · 42 阅读 · 0 评论 -
算法学习01
思想:和上一题一样,需要借助一个辅助栈minstack,这个栈用来存储最小值,在push的时候,将被push的value与minstack中的栈顶的值进行比较,将较小值压入minstack中,这样minstack中的栈顶的值就是最小值。在弹出时,如果栈B不是空,则把B中的值弹出,如果B为空,A不为空,则把A中的值弹出压入栈B中,这样就能实现先入先出的队列了。思想:主要利用两个栈来实现,栈A用来存储push的value,栈B用来pop出值。原创 2023-03-14 19:54:02 · 30 阅读 · 0 评论