76 次浏览
假设我们有三个长度相同的列表:deadlines、credits 和 durations。它们代表课程作业。对于第 i 个作业,deadlines[i] 表示其截止日期,credits[i] 表示其学分, durations[i] 表示完成作业所需的天数。必须完成一个作业才能开始另一个作业。我们必须记住,我们可以在截止日期当天完成作业,我们目前处于第 0 天的开始。因此,如果输入类似于 deadlines = [7, 5, 10],credits = [8, 7, 10], durations = [5, 4, ... 阅读更多
266 次浏览
假设我们有一个名为 nums 的数字列表,我们必须找到通过在给定数字之间添加任何二元运算符(如 +、- 和 *)以及插入任何有效括号可以生成的 最大值。因此,如果输入类似于 nums = [-6, -4, -10],则输出将为 100,因为我们可以创建类似这样的表达式:((-6) + (-4)) * -10。为了解决这个问题,我们将遵循以下步骤 - OPS := 运算符列表 [+, -, *] N := A 的大小 如果 A 中的所有元素都为 0,则返回 0 定义一个函数 dp() ... 阅读更多
124 次浏览
假设我们有一个不同的单词列表,我们必须找到可以将给定单词列表中的两个不同单词连接起来构成回文串的不同方法的数量。因此,如果输入类似于 words = ["time", "emit", "mo", "m"],则输出将为 3,因为我们可以创建 "timeemit"、"emittime" 和 "mom"。为了解决这个问题,我们将遵循以下步骤 - res := 0 ln := 数组中的单词数 对于 k 范围为 0 到 1,do 对于 i 范围为 0 到 ln - 1,do 对于 j 范围为 i + 1 到 ln - ... 阅读更多
134 次浏览
假设我们有一个列表 nums 和另一个值 k,我们必须找到大小为 k 的每个子列表的最大值。因此,如果输入类似于 nums = [12, 7, 3, 9, 10, 9] k = 3,则输出将为 [12, 9, 10, 10]。为了解决这个问题,我们将遵循以下步骤 - 如果 k > nums 的大小,则返回一个空列表 res := 一个新列表 temp := nums[0] temp := n point := 0 对于 i 范围为 0 到 k - 1,do 如果 nums[i] > temp,则 temp := nums[i] point := i 将 temp 插入 res 的末尾 对于 i ... 阅读更多
105 次浏览
假设我们有一个列表,其中只有两个值 1 和 -1。我们必须找到和为 0 的最长子列表的长度。因此,如果输入类似于 nums = [1, 1, -1, 1, 1, -1, 1, -1, 1, -1],则输出将为 8,因为最长子列表是 [-1, 1, 1, -1, 1, -1, 1, -1],其和为 0。为了解决这个问题,我们将遵循以下步骤 - table := 一个新的空映射 cs := 0,max_diff := 0 对于 i 范围为 0 到 nums 的大小 - 1,do cs := cs + nums[i] 如果 cs ... 阅读更多
630 次浏览
假设我们有一个数字 k 和另一个字符串 s,我们必须找到包含最多 k 个不同字符的最长子串的大小。因此,如果输入类似于 k = 3 s = "kolkata",则输出将为 4,因为有两个最长子串包含 3 个不同字符,它们是 "kolk" 和 "kata",长度为 4。为了解决这个问题,我们将遵循以下步骤 - ans := 0,left := 0 table := 一个新的映射 对于 right 范围为 0 到 s 的大小 - 1,do table[s[right]] := 1 + (s[right] 如果存在,否则为 0) 如果 ... 阅读更多
355 次浏览
假设我们有一个字符串 s(小写),我们必须找到每个元音出现偶数次的 最长子串的长度。因此,如果输入类似于 s = "anewcoffeepot",则输出将为 10,因为子串 "wcoffeepot" 有两个元音 "o" 和 "e",它们都出现了两次。为了解决这个问题,我们将遵循以下步骤 - vowels := 一个映射,将元音和数字值分配为 {a:0, e:1, i:2, o:3, u:4} prefix := 一个空映射,并将键值对 (0, -1) 插入其中 mask := 0,n := s 的大小,res := 0 对于 ... 阅读更多
165 次浏览
假设我们有一个字符串 s,我们可以精确旋转一次任意一点。我们必须找到通过执行此操作可以获得的最长回文子串的长度。因此,如果输入类似于 s = "elklev",则输出将为 7,因为我们可以在 "el" 和 "klev" 之间旋转以获得 "levelk"。因此,这里最长回文子串的长度为 5。为了解决这个问题,我们将遵循以下步骤 - s2 := 将 s 连接两次 max_len := 0 对于 x 范围为 0 到 s 的大小 - 1,do 对于 y 范围为 0 到 s 的大小,... 阅读更多
445 次浏览
假设我们有一个字符串 s,我们必须找到 s 的最长前缀,它也是后缀(不包括自身)。如果没有这样的前缀,则只需返回空字符串。因此,如果输入类似于 "madam",则输出将为 "m",它有 4 个(不包括自身)前缀。这些是 "m"、"ma"、"mad"、"mada" 和 4 个后缀,如 "m"、"am"、"dam"、"adam"。作为后缀的最大前缀由 "m" 给出。为了解决这个问题,我们将遵循以下步骤 - 定义一个函数 lps(),这将采用 s,n := s 的大小 定义一个大小为 ... 的数组 ret ... 阅读更多
897 次浏览
假设我们有一个由邻接表表示的有向无环图。我们必须找到图中没有节点重复的最长路径。因此,如果输入类似于,则输出将为 4,因为路径是 0 -> 1 -> 3 -> 4 -> 2,长度为 4。为了解决这个问题,我们将遵循以下步骤 - ans := 0 n := 图的节点数 table := 一个大小为 n 的列表,并填充 -1 定义一个函数 dfs()。这将采用 u 如果 table[u] 不为 -1,则返回 table[u] p_len := 0 对于 graph[u] 中的每个顶点 v,do p_len := 最大 ... 阅读更多