找到 34423 篇文章,关于编程

C++ 中乘法表中的第 k 小的数

Arnab Chakraborty
更新于 2020年6月1日 11:58:51

268 次浏览

假设我们知道一个乘法表。但是我们能否快速找到乘法表中的第 k 小的数呢?如果我们有一个 m * n 乘法表的高度 m 和长度 n,以及一个正整数 k,我们需要找到该表中第 k 小的数。如果 m = 3,n = 3,k = 6,则输出为 4。这是因为乘法表如下所示:1 2 3 1 2 3 2 4 6 3 6 9 第 6 小的元素是 4,因为 [1, 2, 2, 3, 3, 4, 6, 6, 9] 要解决这个问题,我们将…… 阅读更多

C++ 中的奇怪打印机

Arnab Chakraborty
更新于 2020年6月1日 11:56:58

231 次浏览

假设有一台奇怪的打印机,它有一些要求:打印机每次只能打印相同字符的序列。在每次打印中,打印机可以从任意位置开始和结束打印新字符,并将覆盖原始存在的字符。因此,如果我们有一个由小写字母组成的字符串,我们的任务是计算打印机所需的最小打印次数。如果输入是“aaabba”,则需要 2 次打印,首先打印 aaaaa,然后通过替换字符打印 b。要解决这个问题,我们将遵循以下步骤…… 阅读更多

C++ 中的解码方式 II

Arnab Chakraborty
更新于 2020年6月1日 11:53:28

209 次浏览

假设有一条消息,包含 A-Z 的字母,使用以下映射方式编码为数字:'A' -> 1, 'B' -> 2, ... , 'Z' -> 26 现在,编码的字符串也可以包含字符 '*',它可以被视为 1 到 9 之间的任何一个数字。因此,如果我们有包含数字和字符 '*' 的编码消息,则必须找到解码它的总方法数。如果答案很长,我们可以使用 mod 109 + 7 来获得最终结果。如果…… 阅读更多

C++ 中覆盖来自 K 个列表的元素的最小范围

Arnab Chakraborty
更新于 2020年6月1日 11:49:49

212 次浏览

假设我们有 k 个排序整数列表。我们必须搜索包含来自 k 个列表中每个列表的至少一个数字的最小范围。这里,当 b-a < d-c 或 b-a == d-c 时 a < c 时,范围 [a, b] 小于范围 [c, d]。如果输入类似于 [[4, 10, 15, 25, 26], [0, 9, 14, 20], [5, 18, 24, 30]],则输出将为 [14, 18] 要解决这个问题,我们将遵循以下步骤:minRange := inf, maxRange := -inf, rangeSize := inf, tempMinRange := inf, tempMaxRange := -inf n := … 阅读更多

C++ 中的 K 个逆序对数组

Arnab Chakraborty
更新于 2020年6月1日 11:47:00

226 次浏览

假设我们有两个整数 n 和 k,我们必须找到有多少个不同的数组由 1 到 n 的数字组成,并且正好有 k 个逆序对。对于数组中的第 i 个和第 j 个元素,如果 i < j 且 a[i] > a[j],则称为逆序对。这里的答案可能非常大,答案应该对 $10^{9}$ + 7 取模。如果输入类似于 n = 3 和 k = 1,则输出为 2,因为数组 [1, 3, 2] 和 [2, 1, 3]…… 阅读更多

C++ 中没有连续 1 的非负整数

Arnab Chakraborty
更新于 2020年6月1日 11:42:46

280 次浏览

假设我们有一个正整数 n。我们必须找到小于或等于 n 的非负整数。约束条件是二进制表示不包含连续的 1。如果输入是 7,则答案将是 5,因为 5 的二进制表示是 101。要解决这个问题,我们将遵循以下步骤:定义一个函数 convert(),它将接收 n,ret := 空字符串 当 n 不为零时,执行:ret := ret + (n mod 2) n := 右移 n,1 次 返回 ret 从主方法中执行以下操作:bits := 调用函数 convert(num) n…… 阅读更多

在 C++ 中查找最接近的回文数

Arnab Chakraborty
更新于 2020年6月1日 11:40:05

178 次浏览

假设我们有一个数字 n,我们必须获得最接近的回文数。因此,回文数可以小于或大于其绝对差较小的数字。如果数字是 145,则结果将是 141。要解决这个问题,我们将遵循以下步骤:sn := n 的大小 如果 sn 等于 1,则:将 n[0] 减 1 并返回大小为 n[0] 的 1 字符串 half_sn := (sn + 1) / 2 half_val := stol(从索引 0 到 half_sn 的 n 的子字符串) 定义一个数组 candidates = {10^(sn) – 1, 10^(sn…… 阅读更多

C++ 中的学生考勤记录 II

Arnab Chakraborty
更新于 2020年6月1日 11:37:19

490 次浏览

假设我们有一个正整数 n,我们必须找到长度为 n 的所有可能的考勤记录的数量,这些记录将被视为值得奖励的。由于答案可能非常大,我们将使用 mod 109 + 7 返回它。在学生考勤记录中,字符串只能包含以下三个字符:'A' 表示缺勤。'L' 表示迟到。'P' 表示出席。如果考勤记录不包含超过一个 'A'(缺勤)或超过两个连续的 'L'(迟到),则该考勤记录将被视为值得奖励的。因此,我们必须找到最高分。如果输入是 2,则输出…… 阅读更多

C++ 中的移除盒子

Arnab Chakraborty
更新于 2020年6月1日 11:35:07

150 次浏览

假设我们有几个不同颜色的盒子,这些颜色由不同的正数表示。我们可以经历几轮来移除盒子,直到没有盒子剩下。在每一轮中,我们可以选择一些颜色相同的连续盒子(由 k 个盒子组成,k >= 1),并将它们移除,得到 k*k 分。如果输入类似于:[1, 3, 2, 2, 2, 4, 4, 3, 1],则输出将为 21。找到您可以获得的最高分。要解决这个问题,我们将遵循以下步骤:定义一个函数 solve(),它将接收…… 阅读更多

C++ 中的超级洗衣机

Arnab Chakraborty
更新于 2020年6月1日 11:31:06

485 次浏览

假设我们在一排上有 n 台超级洗衣机。最初,每台洗衣机都有一些衣服或为空。现在,对于每次移动,我们可以选择任意 m (1 ≤ m ≤ n) 台洗衣机,并同时将每台洗衣机的一件衣服传递给其相邻的洗衣机之一。假设我们有一个整数数组,表示从左到右排列的每台洗衣机中的衣服数量,我们应该找到使所有洗衣机拥有相同数量的衣服的最小移动次数。如果不是…… 阅读更多

广告
© . All rights reserved.