找到 34423 篇文章,关于编程

C++ 中的回文分区 II

Arnab Chakraborty
更新于 2020年5月26日 13:14:32

122 次浏览

假设我们有一个字符串 s,我们需要找到将此字符串分割成不同子字符串所需的最少切割次数,并且每个部分都是回文。因此,如果字符串是“ababba”,则需要 2 次切割。[aba|bb|a]要解决此问题,我们将遵循以下步骤:n := 字符串 s 中的字符数创建一个名为 res 的大小为 n + 1 的数组res[n] := -1for i in range n – 1 down to 0res[i] := n – i – 1for j in range i to nif a 的子字符串,从索引 i 到 j – i ... 阅读更多

Python 中的最长连续序列

Arnab Chakraborty
更新于 2020年5月26日 13:10:25

5K+ 次浏览

假设我们有一个整数数组。我们需要找到最长连续元素序列的长度。因此,如果输入类似于 [100, 4, 250, 1, 3, 2],答案将是 4,因为最长的连续序列是 [1, 2, 3, 4]。要解决此问题,我们将遵循以下步骤:将数组转换为集合,longest := 0for i in range array −if i – 1 不在 a 中 −current := i, streak := 0while i in a −将 i 加 1,将 streak 加 1longest := longest 和 streak 中的最大值return longest示例让我们看看下面的实现 ... 阅读更多

Python 中的二叉树最大路径和

Arnab Chakraborty
更新于 2020年5月26日 13:07:57

797 次浏览

假设我们有一棵非空二叉树。我们需要找到路径和。因此,这里,路径是从某个起始节点到其中存在父子连接的任何节点的任何节点序列。路径必须包含至少一个节点,并且不需要穿过根节点。因此,如果输入树是 - 这里的输出将是 32。要解决此问题,我们将遵循以下步骤:定义一个名为 solve() 的方法,这将采用 nodeif node 为空或 node 的值为 0,则返回 0left := ... 的最大值 阅读更多

C++ 中的不同的子序列

Arnab Chakraborty
更新于 2020年5月26日 12:59:27

139 次浏览

假设我们有字符串 S 和 T。我们需要计算等于 T 的 S 的不同序列的数量。我们知道字符串的子序列是一个新字符串,它是从原始字符串中删除一些(可以是零个)字符而不会干扰剩余字符的相对位置而形成的。(例如,“ACE”是“ABCDE”的子序列,而“AEC”不是)。如果输入字符串是“baalllloonnn”和“balloon”,则将有 36 种不同的选择方法。要解决此问题,我们将遵循以下步骤:n := s 的大小,m := ... 的大小 阅读更多

C++ 中的恢复二叉搜索树

Arnab Chakraborty
更新于 2020年5月26日 12:56:38

263 次浏览

假设我们有一棵二叉搜索树,现在考虑这棵 BST 的两个元素被交换了,所以我们需要恢复这棵二叉搜索树。因此,如果给定的树如下所示(第一个),则恢复的树将是(第二个):要解决此问题,我们将遵循以下步骤:定义一些 prev、first、second 节点引用定义一个名为 findProblem() 的方法,这将采用 nodeif node 为空,则返回调用 findProblem(node 的左边)if prev 不为空且 prev 的值 > node 的值,则if first 为空,则 first = prevsecond := nodeprev := node调用 findProblem(node 的右边)从 ... 阅读更多

C++ 中的交错字符串

Arnab Chakraborty
更新于 2020年5月26日 12:50:30

375 次浏览

假设我们有三个字符串 s1、s2 和 s3。然后检查 s3 是否由 s1 和 s2 交错形成。因此,如果字符串是“aabcc”,s2 =“dbbca”,s3 是“aadbbcbcac”,则结果将为真。要解决此问题,我们将遵循以下步骤:定义一个名为 solve() 的方法,这将采用 s1、s2、s3 和一个 3d 数组 dp,然后是 i、j、kif i = 0 且 j = 0 且 k = 0,则返回 trueif dp[i, j, k] 不为 -1,则返回 dp[i, j, k]ans := falseif j > 0 且 k ... 阅读更多

C++ 中的最大矩形

Arnab Chakraborty
更新于 2020年5月26日 12:46:33

325 次浏览

假设我们有一个二维二进制矩阵,其中存在 0 和 1 值。我们需要找到仅包含 1 的最大矩形并返回其面积。要解决此问题,我们将遵循以下步骤:定义一个名为 getAns 的函数,这将采用数组 ac创建堆栈 st,i := 0,ans := 0while i < a 的大小,则if 堆栈为空或 a[i] >= 堆栈的顶部,则将 i 插入 st,将 i 加 1否则 -height := 堆栈顶部的 a,从堆栈中删除width := 堆栈为空时的 i,否则 i – 堆栈顶部 – 1area := height ... 阅读更多

C++ 中的最小窗口子串

Arnab Chakraborty
更新于 2020年5月26日 12:27:46

555 次浏览

假设我们有字符串 S 和 T。我们需要找到 S 中包含 T 中所有字符的最小窗口。因此,如果输入类似于“ABHDAXCVBAGTXATYCB”并且 T =“ABC”,则结果将是:“CVBA”。要解决此问题,我们将遵循以下步骤:创建一个映射 m存储 x 的频率到 mlength := s 的大小,left := 0,right := 0,ansLeft := 0 和 ansRight := 0counter := x 的大小,flag := false,ans := 空字符串while height < s 的大小 -c := s[right]if c 存在于 m 中,... 阅读更多

C++ 中的编辑距离

Arnab Chakraborty
更新于 2020年5月26日 12:24:03

390 次浏览

假设我们有两个单词 word1 和 word2,我们需要找到将 word1 转换为 word2 所需的最少操作次数。操作可以有三种类型,分别是插入字符、删除字符和替换字符。因此,如果输入字符串是“evaluate”和“fluctuate”,则结果将是 5。要解决此问题,我们将遵循以下步骤:n := w1 的大小,m := w2 的大小,创建一个大小为 n + 1 的数组 dpfor i in range 0 to ndp[i] := 一个大小为 m + 1 的新数组for j in ... 阅读更多

C++ 中的文本对齐

Arnab Chakraborty
更新于 2020年5月26日 12:18:51

1K+ 次浏览

假设我们有一个单词数组和一个宽度 maxWidth,我们需要格式化文本,以便每一行都恰好有 maxWidth 个字符,并且完全对齐。我们应该采用贪婪方法来打包我们的单词;也就是说,在每一行中打包尽可能多的单词。必要时,我们将填充额外的空格“”,以便每一行都恰好有 maxWidth 个字符。这里单词之间的额外空格应尽可能均匀地分布。如果一行上的空格数不能平均分配给单词,则左侧的空槽 ... 阅读更多

广告
© . All rights reserved.