249 次浏览
假设我们有一个N x N网格,每个方格grid[i][j]代表该点(i, j)的海拔高度。现在假设开始下雨了。在t时刻,处处水深为t。当两个方格的海拔高度都小于等于t时,我们可以从一个方格水平或垂直移动到相邻的方格。我们可以在零时间内游泳无限距离。我们应该从位置(0, 0)开始。我们必须找到到达右下角方格(N-1, N-1)的最小时间。所以如果输入是这样的:0123424232221512131515161117181920109876 正确的路径已着色。所以答案……阅读更多
290 次浏览
假设我们有一个用密码保护的箱子。密码是一个n位数字序列,每个数字可以是前k个数字0, 1, ..., k-1中的一个。因此,当我们输入密码时,最后输入的n位数字将自动与正确的密码匹配。例如,假设正确的密码是“563”,如果我们输入“285639”,则箱子将打开,因为正确的密码与输入密码的后缀匹配。我们必须找到保证在某个时刻打开箱子的最小长度密码……阅读更多
351 次浏览
假设我们有一个N x N网格,网格中充满了樱桃。每个单元格包含以下可能的整数之一:0 - 表示单元格为空,我们可以通过;1 - 表示单元格包含一个樱桃,我们可以拾取并通过;-1 - 表示单元格包含一个荆棘,阻挡了去路。我们必须遵守以下规则收集樱桃的最大数量:从位置(0, 0)开始,通过有效的路径单元格到达(N-1, N-1);到达单元格(N-1, N-1)后,返回到(0, 0)……阅读更多
206 次浏览
假设我们有一个整数数组;我们必须找到所有对中第k小的距离。一对(A, B)的距离实际上是A和B之间的绝对差。所以如果输入是这样的:[1, 3, 8],那么所有可能的对是[1, 3],[3, 8],[1, 8],那么当k = 2时,第二小的距离是5 (8 - 3)。为了解决这个问题,我们将遵循以下步骤:n := nums的大小,x := 0 for 初始化 i := 0,当 i < n,更新(i增加1),执行:- x := 最大……阅读更多
233 次浏览
假设我们想要一个范围模块。这是一个跟踪数字范围的模块。我们的任务是以有效的方式设计和实现以下接口。addRange(left, right)。这将是半开区间[left, right),跟踪该区间中的每个实数。现在,添加一个与当前跟踪的数字部分重叠的区间应该添加区间中尚未跟踪的任何数字。queryRange(left, right)。当区间[left, right)中的每个实数当前正在被跟踪时,这将返回true。removeRange(left, right),这将停止跟踪当前在区间……中被跟踪的每个实数阅读更多
180 次浏览
假设我们有一个名为B的黑名单。它保存了来自范围[0, N)的唯一整数,我们必须定义一个函数,从范围[0, N)中返回一个均匀的随机整数,该整数不在B中。我们将尝试通过减少random()函数调用来使此函数更优化。假设输入数组是这样的:为了解决这个问题,我们将遵循以下步骤:定义一个映射我们将用N和数组v初始化。for 初始化 i := 0,当 i < v的大小,更新(i增加1),执行:- 如果 v[i] < N,则:, m[v[i]] := -1 M := N……阅读更多
335 次浏览
假设我们有N种不同类型的贴纸。每种类型的贴纸上都有一个小写的英文单词。我们想通过从我们的贴纸集合中剪下单个字母并重新排列它们来拼写出给定的目标字符串。如果需要,我们可以多次使用每张贴纸,并且我们有无限数量的每张贴纸。我们必须找到我们需要拼写目标所需的最小贴纸数量?如果任务不可能完成,则返回-1。所以如果输入是这样的:[“dog”, “sentence”, ”antenna”],目标是“dance”,那么答案将是……阅读更多
125 次浏览
假设我们有一个正整数数组nums,我们必须找到三个不重叠的子数组,它们的和最大。这里每个子数组的大小都为k,我们想要最大化所有3*k个条目的和。我们必须将结果作为表示每个区间的起始位置的索引列表。如果有多个答案,我们将返回字典序最小的一个。所以如果输入是这样的:[1, 2, 1, 2, 6, 8, 4, 1],k = 2,那么结果将是[0, 3, 5],所以子数组是[1, 2],[2, 6],……阅读更多
178 次浏览
假设我们有一棵有根树。这是一个有向图,只有一个节点(它是根节点),所有其他节点都是该节点的后代,并且每个节点只有一个父节点,根节点除外。根节点没有父节点。在给定的输入中,一个有向图开始时是一个有N个节点的有根树(所有值都是唯一的),并添加了一条额外的有向边。添加的边有两个不同的顶点,从1到N选择,并且不是已经存在的边。图将是一个二维数组的边。每个……阅读更多
1K+ 次浏览
假设我们有四张牌;这些牌持有从1到9的一些数字。我们必须检查它们是否可以通过一些运算符(如+,-,*,/)来得到24。所以如果我们有一些数字,例如[4,9,2,6],那么我们可以通过(4 * 9) – (2 * 6)得到24,答案将为真。为了解决这个问题,我们将遵循以下步骤:epsilon := 10.0^-5 定义一个函数solve(),它将接收一个数组v,如果v的大小与1相同,则:- 当|v[0] - 24.0|……