找到 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] := -1对于 i 在范围 n – 1 到 0res[i] := n – i – 1对于 j 在范围 i 到 n如果从索引 i 到 j – i 的 a 的子字符串 ... 阅读更多

Python 中的最长连续序列

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

5K+ 次浏览

假设我们有一个整数数组。我们需要找到最长连续元素序列的长度。因此,如果输入类似于 [100, 4, 250, 1, 3, 2],则答案将是 4,因为最长的连续序列是 [1, 2, 3, 4]。为了解决这个问题,我们将遵循以下步骤 -将数组设为集合,longest := 0对于 i 在范围数组中 -如果 i – 1 不在 a 中 -current := i,streak := 0当 i 在 a 中 -将 i 增加 1,将 streak 增加 1longest := longest 和 streak 的最大值返回 longest示例让我们看看以下实现 ... 阅读更多

Python 中的二叉树最大路径和

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

797 次浏览

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

C++ 中的不同子序列

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

139 次浏览

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

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

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

263 次浏览

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

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、k如果 i = 0 且 j = 0 且 k = 0,则返回 true如果 dp[i, j, k] 不为 -1,则返回 dp[i, j, k]ans := false如果 j > 0 且 k ... 阅读更多

C++ 中的最大矩形

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

325 次浏览

假设我们有一个 2D 二进制矩阵,其中存在 0 和 1 值。我们需要找到仅包含 1 的最大矩形并返回其面积。为了解决这个问题,我们将遵循以下步骤 -定义一个名为 getAns 的函数,它将获取数组 a创建堆栈 st,i := 0,ans := 0当 i < a 的大小时,如果堆栈为空或 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 的频率存储到 m 中length := s 的大小,left := 0,right := 0,ansLeft := 0 且 ansRight := 0counter := x 的大小,flag := false,ans := 空字符串当 height < s 的大小时 -c := s[right]如果 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 的数组 dp对于 i 在范围 0 到 ndp[i] := 一个大小为 m + 1 的新数组对于 j 在 ... 阅读更多

C++ 中的文本对齐

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

1K+ 次浏览

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

广告

© . All rights reserved.