找到 34423 篇文章 关于编程

C++ 中的随机选择索引

Arnab Chakraborty
更新于 2020年5月2日 08:36:35

641 次浏览

假设我们有一个包含可能重复整数的数组,我们需要随机选择给定目标数字的索引。我们可以假设给定的目标数字必须存在于数组中。因此,如果数组类似于 [1, 2, 3, 3, 3],则 pick(3) 可能会随机返回 2、3 或 4。为了解决这个问题,我们将遵循以下步骤 -ret := - 1, cnt := 1对于 i 范围从 0 到 size of vif v[i] = target,则如果随机数模 cnt = 0,则 ret = icnt := cnt + 1返回 ret示例 (C++)让我们看看以下... 阅读更多

C++ 中的整数替换

Arnab Chakraborty
更新于 2020年5月2日 08:31:38

582 次浏览

假设我们有一个正整数 n,我们可以执行以下操作 -如果 n 为偶数,则将 n 替换为 n/2。如果 n 为奇数,则可以将 n 替换为 n + 1 或 n - 1。我们需要找到将 n 变成 1 所需的最少替换次数?因此,如果数字是 7,则答案将是 4,因为 7 → 8 → 4 → 2 → 1 或 7 → 6 → 3 → 2 → 1为了解决这个问题,我们将遵循以下步骤 -ret := 0, n := x当 n > 1 时如果... 阅读更多

C++ 中的旋转函数

Arnab Chakraborty
更新于 2020年5月2日 08:29:25

266 次浏览

假设我们给定一个整数数组 A,令 n 为数组 A 的长度。现在假设 Bk 是通过将数组 A 顺时针旋转 k 个位置获得的数组。这里的旋转可以定义为 -F(k) = 0 * Bk[0] + 1 * Bk[1] + ... + (n-1) * Bk[n-1]。现在找到 F(0)、F(1)、...、F(n-1) 的最大值。因此,如果输入类似于 A = [4, 3, 2, 6],则 -F(0) = (0 * 4) + (1 * 3) + (2 * 2) + (3 * 6) = 0 + 3 + 4 ... 阅读更多

C++ 中的 UTF-8 验证

Arnab Chakraborty
更新于 2020年5月2日 08:26:28

2K+ 次浏览

假设我们有一系列表示数据的整数。我们需要检查它是否为有效的 UTF-8 编码。一个 UTF-8 字符可以是 1 到 4 个字节长。有一些属性 -对于 1 字节字符,第一个比特位为 0,后面是其 unicode 代码。对于 n 字节字符,前 n 个比特位全部为 1,第 n+1 个比特位为 0,后面跟着 n-1 个字节,其中最重要的 2 个比特位为 10。因此,编码技术如下 -字符数字范围UTF-8 八位字节序列0000 0000 0000 007F0xxxxxxx0000 0080 0000 07FF110xxxxx 10xxxxxx0000 0800 0000 FFFF1110xxxx 10xxxxxx 10xxxxxx0001 0000 0010 FFFF11110xxx 10xxxxxx 10xxxxxx ... 阅读更多

C++ 中的淘汰赛游戏

Arnab Chakraborty
更新于 2020年5月2日 08:19:56

758 次浏览

假设我们有一个从 1 到 n 的排序整数列表。也就是说,从左到右开始,我们需要删除第一个数字和之后的每个其他数字,直到到达列表的末尾。我们将再次重复上一步,但这次从右到左,删除最右边的数字和剩余数字中的每个其他数字。我们将再次重复这些步骤,交替从左到右和从右到左,直到只剩下一个数字。我们需要找到从列表开始时保留的最后一个数字... 阅读更多

C++ 中的链表随机节点

Arnab Chakraborty
更新于 2020年5月2日 08:17:15

320 次浏览

假设我们有一个单链表,我们需要从链表中找到一个随机节点的值。这里每个节点被选中的概率必须相同。例如,如果列表是 [1, 2, 3],则它可以返回 1、2 和 3 范围内的随机节点。为了解决这个问题,我们将遵循以下步骤 -在 getRandom() 方法中,执行以下操作 -ret := -1, len := 1, v := x当 v 不为空时如果 rand() 可以被 len 整除,则 ret := v 的值len 增加 1v := v 的下一个节点返回 ret示例 (C++)让我们看看... 阅读更多

C++ 中的摆动子序列

Arnab Chakraborty
更新于 2020年5月2日 08:14:05

248 次浏览

假设我们有一系列数字,如果连续数字之间的差异严格地在正数和负数之间交替,则称为摆动序列。第一个差异可以是正数或负数。少于两个元素的序列微不足道地是一个摆动序列。例如,[1, 7, 4, 9, 2, 5] 是一个摆动序列,因为如果看到,差异 (6, -3, 5, -7, 3) 交替为正数和负数。但是,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个是因为它的前两个差异是... 阅读更多

C++ 中的超级幂

Arnab Chakraborty
更新于 2020年5月2日 08:11:59

414 次浏览

假设我们需要计算 a^b mod 1337,其中 a 是一个正整数,b 是一个以数组形式给出的极大的正整数。因此,如果 a = 2 且 b = [1, 0],则输出将为 1024为了解决这个问题,我们将遵循以下步骤 -定义 powerMod() 方法,它接受底数和幂m := 1337, ret := 1当 power 不为 0 时如果 power 为奇数,则 ret := ret * base mod mbase := base^2 mod mpower := power / 2返回 ret定义 superPower(),它接受 a 和 bif b 的大小 = 0,... 阅读更多

C++ 中的最大可整除子集

Arnab Chakraborty
更新于 2020年5月2日 08:08:35

77 次浏览

假设我们有一组不同的正整数,我们需要找到最大的子集,使得该子集中每一对 (Si, Sj) 元素都满足:Si mod Sj = 0 或 Sj mod Si = 0。因此,如果输入类似于 [1, 2, 3],则可能的结果可能是 [1, 2] 或 [1, 3]为了解决这个问题,我们将遵循以下步骤 -创建一个数组 ret,设置 endpoint := 0, retLen := 1, n := num 的大小如果 n 为 0,则返回空集对 nums 数组进行排序创建两个大小为 n 的数组 len 和 par,初始化... 阅读更多

C++ 中的水壶问题

Arnab Chakraborty
更新于 2020年5月2日 08:04:37

2K+ 次浏览

假设我们有两个容量分别为 x 和 y 升的水壶。我们可以使用无限量的水。现在我们需要确定是否可以使用这两个水壶精确测量 z 升水。如果 z 升水是可以测量的,那么到最后我们必须在一个或两个水桶中包含 z 升水。我们可以执行以下几个操作 -用水壶装满水。清空任何一个水壶。将水从一个水壶倒入另一个水壶,直到另一个水壶完全装满或第一个水壶本身为空。所以... 阅读更多

广告

© . All rights reserved.