191 次浏览
假设我们有一个名为 nums 的数字列表和另一个值 k,我们需要找到至少包含 k 个奇数的最长递增子序列的大小。所以,如果输入类似于 nums = [12, 14, 16, 5, 7, 8] k = 2,则输出将为 3,因为至少包含 2 个奇数的最长递增子序列是 [5, 7, 8]。为了解决这个问题,我们将遵循以下步骤 -best := 0定义一个函数 dp()。这将采用 i、j、odd、taken如果 odd >= k,则best := best 和 taken 的最大值如果 j 是 ... 阅读更多
159 次浏览
假设我们有一个数字 n。现在考虑一个操作,其中我们可以:1. 将 n 减 1 2. 如果 n 是偶数,则将其减去 n / 2 3. 如果 n 可被 3 整除,则减去 2 * (n / 3) 最后找到将 n 减小到零所需的最小操作次数。所以,如果输入类似于 n = 16,则输出将为 5,因为 n = 16 为偶数,则将其减去 n/2 4 次,它将为 1。然后将其减少 1 以获得 0。所以总共 ... 阅读更多
352 次浏览
假设我们有一个数字 n,我们需要找到其数字的下一个更大的排列。当 n 已经是其最大排列时,则将其旋转到最小的排列。所以,如果输入类似于 n = 319,则输出将为 391。为了解决这个问题,我们将遵循以下步骤 -定义一个函数 makeArray(),这将采用 x,定义一个数组 ret当 x 不为零时,执行 -在 ret 的末尾插入 x mod 10x := x / 10反转数组 ret返回 ret定义一个函数 combine(),这将采用一个数组 v,ret := 0对于每个 ... 阅读更多
181 次浏览
假设我们有一个二进制矩阵,其中 0 表示空单元格,1 表示该单元格中的棋后。我们需要检查我们是否可以填充此棋盘并获得有效的 n 皇后解决方案。众所周知,n 皇后难题要求在 n × n 棋盘上放置 n 个皇后,以便没有两个皇后可以互相攻击。所以,如果输入类似于 1000000000000010000000010,则输出将为 True,因为一个解决方案类似于 -1000000100000010100000010为了解决这个问题,我们将遵循以下步骤 -定义一个函数 isSafe()。这将采用 board、 ... 阅读更多
95 次浏览
假设我们有一个字符串 s。此 s 仅包含开括号和闭括号。我们需要找到最长有效(格式正确)括号子字符串的长度。因此,如果输入类似于“))(())())”,则结果将为 6,因为有效字符串是“(())()”。为了解决这个问题,我们将遵循以下步骤 -创建一个堆栈,并插入 -1。,设置 ans := 0对于 i 在范围 0 到堆栈长度 – 1如果 s[i] 是开括号,则将 i 插入堆栈否则如果堆栈不为空且堆栈顶部不为 -1 且 s[堆栈顶部] 是开括号, ... 阅读更多
310 次浏览
假设我们有两个数字列表。一个称为 weights,另一个称为 values。这些具有相同的长度,我们还有两个值称为 capacity 和 count。这里 weights[i] 和 values[i] 分别表示第 i 个项目的权重和价值。我们最多可以容纳 capacity 权重和最多 count 个项目,并且我们只能获取每个项目的单个副本,因此我们需要找到可以获得的最大价值量。所以,如果输入类似于 weights = [2, 2, 4, 6] values = [15, 15, 20, 35] capacity = 8 ... 阅读更多
136 次浏览
假设我们有一个字符串 s,它表示一些动物的初始条件。每只动物可以取三个值之一:L,表示动物向左移动。R,表示动物向右移动。@,表示动物静止不动。沿某个方向移动的动物将拾取其他动物,除非动物受到来自相反方向的力。然后,它将静止不动。我们需要找到每只动物在停止移动时的方向。所以,如果输入类似于 s = "@@L@R@@@@L",则输出将为 "LLL@RRRLLL"为了解决这个问题,我们 ... 阅读更多
354 次浏览
假设我们有一个二进制字符串 s。现在假设我们可以取 s 的某个前缀并将其移到后面。然后,找到需要翻转的字符的最小数量,以便不会出现相同值的连续字符。所以,如果输入类似于 s = "10010101111",则输出将为 2,因为我们可以取前缀 "10",然后将其移到后面,所以字符串为 "01010111110",然后将最右边的第 3 位和第 5 位翻转为 0 ("01010101010")。为了解决这个问题,我们将遵循以下步骤 -ans := s 的大小N := s 的大小 ... 阅读更多
71 次浏览
假设我们有一个名为 nums 的数字列表,其中存储了 0 和 1。我们还有另一个值 k。现在考虑一个操作,其中我们翻转长度为 k 的子列表,使得所有 1 都变为 0,所有 0 都变为 1。我们需要找到将 nums 更改为所有 1 变为 0 所需的最小操作次数。如果我们无法更改它,则返回 -1。所以,如果输入类似于 nums = [1, 1, 1, 0, 0, 1, 1, 1],k = 3,则输出将为 2,因为我们可以翻转第一个 ... 阅读更多
587 次浏览
假设我们有一个名为 nums 的数字列表,表示一维线上的房屋位置。现在考虑我们有 3 个街灯,我们可以在线上的任何位置放置它们,并且位置为 x 的灯会照亮范围 [x - r,x + r](包括)内的所有房屋。我们需要找到照亮所有房屋所需的最小 r。所以,如果输入类似于 nums = [4, 5, 6, 7],则输出将为 0.5,因为我们可以在 4.5、5.5 和 6.5 上放置灯,所以 r = 0.5。所以这些 ... 阅读更多