找到 34423 篇文章,关于编程

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

Arnab Chakraborty
更新于 2020-06-01 11:58:51

268 次浏览

假设我们知道一个乘法表。但是我们能否快速地从乘法表中找出第 k 小的数?所以如果我们必须得到一个 m * n 乘法表的行数 m 和列数 n,以及一个正整数 k,我们需要找到该表中第 k 小的数。所以如果 m = 3,n = 3,k 是 6,那么输出将是 4。这是因为乘法表如下:1 2 31 1 23 2 46 3 69第 6 小的元素是 4,因为 [1, 2, 2, 3, 3, 4, 6, 6, 9]为了解决这个问题,我们将... 阅读更多

C++ 中的奇异打印机

Arnab Chakraborty
更新于 2020-06-01 11:56:58

231 次浏览

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

C++ 中的解码方式 II

Arnab Chakraborty
更新于 2020-06-01 11:53:28

209 次浏览

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

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

Arnab Chakraborty
更新于 2020-06-01 11:49:49

212 次浏览

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

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

Arnab Chakraborty
更新于 2020-06-01 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-06-01 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-06-01 11:40:05

178 次浏览

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

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

Arnab Chakraborty
更新于 2020-06-01 11:37:19

490 次浏览

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

C++ 中移除盒子

Arnab Chakraborty
更新于 2020-06-01 11:35:07

150 次浏览

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

C++ 中的超级洗衣机

Arnab Chakraborty
更新于 2020-06-01 11:31:06

485 次浏览

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

广告

© . All rights reserved.