首页 > 试题广场 >

牛牛摇骰子

[编程题]牛牛摇骰子
  • 热度指数:172 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一维数轴,初始位置在原点,每次可以选择向左或者向右移动0或3或7或11个单位
N次询问,每次给出一个坐标arr[i],求从0点走到arr[i]需要的最少次数
示例1

输入

[1,4,14]

输出

[3,2,2]

说明

从0到1最少需要3次(0->7->4->1)(走法不唯一,比如0->11->4->1也只需要3次)
从0到4最少需要2次(0->7->4)
从0到14最少需要2次(0->7->14)
示例2

输入

[6,25]

输出

[2,3]

说明

从0到6最少需要2次(0->3->6)
从0到25最少需要3次(0->7->18->25)

备注:

对于20%的数据

对于50%的数据

对于100%的数据

头像 QSheng
发表于 2021-07-22 14:50:22
class Solution: def MinimumTimes(self , arr ): """ 找规律 0, 3, 4, 1, 2, 3, 2, 1, 2, 3, 2, 1, 4, 3, 2, 3, 4, 3, 2, 3 展开全文
头像 牛客313925129号
发表于 2021-09-13 16:59:32
题意理解 对于一维数轴上的一个数,下一步可以加3、7、11,也可以减3、7、11,经过一系列的加减操作后得到目标数值arr[i],我们要使做的加减操作的次数尽可能少。 方法一 用time[i]记录得到i需要最少的加减操作的次数。我们要得到数值i,可以先得到数值j,再加上i-j就可以了。此时,得到i的 展开全文
头像 简单666
发表于 2021-09-10 21:34:54
题意: 给你一个无限长的数轴,刚开始你在位置处,你每次可以向左或者向右移动个单位,现在有次询问,第次询问给你一个数字,问从起点位置到所在位置最少需要多少步? 解法一(最短路,不可AC) 显然我们可以根据题意构建一张以数轴上的数字为点,边权为的无向图,边表示数字变化成数字的一次操作 展开全文
头像 xqxls
发表于 2021-09-09 22:07:29
题意整理 给定一个一维数轴,起点在原点,每次可以向左或者向右移动0或3或7或11个单位。 为了移动到目标点target,计算最少的移动次数。 输入对应的target坐标集合,返回对应的移动次数集合。 方法一(动态规划) 1.解题思路 首先计算移动到范围内的目标点对应的最少移动次数。 初始化dp 展开全文
头像 招聘冲冲冲
发表于 2020-08-13 23:28:52
class Solution { public: /** * 把所有询问的答案按询问顺序放入vector里 * @param arr int整型vector 要查询坐标的数组 * @return int整型vector */ vector< 展开全文