算法题
kafkadu
希望让IT变得更加简单
展开
-
【Leetcode 10题 正则表达式匹配】动态规划 java 100%
时,可以分为0,1和多三种情况。0的话就直接用dp[i-2][j]判断p的i-2的字符串能够匹配s的j就行,1和多的时候就对应了dp[i-1][j-1]和dp[i][j-1]两种,并且还需要判断当前的字符串能否匹配。这是一个典型的动态规划题,通过字符串p去匹配字符串s,dp[i][j]表示p的前i个字符串能否匹配s的前j个字符串。首先初始化申请[n+1][m+1]的二维数组,从而简化了前0个字符串能否匹配的问题,简化了边界条件。时,只要前面的字符串dp[i-1][j-1]能够匹配并且当前字符也能匹配即可。原创 2023-05-26 13:19:02 · 134 阅读 · 1 评论 -
【Leetcode 647题 回文子串】Manacher 算法
Manacher 算法原创 2023-05-23 13:14:31 · 92 阅读 · 1 评论 -
LeetCode LCP 28. 采购方案 O(N)桶排序方法
LCP 28. 采购方案原创 2022-06-21 22:29:15 · 102 阅读 · 1 评论 -
【李永乐老师的双蛋问题求解】
李永乐老师的双蛋问题求解 youtube上面看到李永乐老师讲解双蛋问题的视频,觉得很有意思,就想写代码复现一下:) 视频链接:https://www.youtube.com/watch?v=mLV_vOet0ss 问题的数学推导公式如下: M(T,N)=min{max{M(K,N−1),M(T−K,N)}+1∣k=1,2,3,⋯ ,T−1}M(T,N) = \min \{\max\{M(K,N-1), M(T-K,N)\}+1 | k = 1,2,3,\cdots,T-1\} M(T,N)=min{ma原创 2022-05-16 21:56:15 · 450 阅读 · 0 评论