找到 34423 篇文章,关于编程

Python反转链表程序

Arnab Chakraborty
更新于 2020年10月20日 10:51:14

446 次浏览

假设我们有一个链表,我们需要将其反转。例如,如果链表是 2 -> 4 -> 6 -> 8,则反转后的链表将是 8 -> 6 -> 4 -> 2。为了解决这个问题,我们将遵循以下方法:定义一个过程,以递归方式执行列表反转,如 solve(head, back)所示。如果 head 不存在,则返回 head。temp := head.next;head.next := back;back := head;如果 temp 为空,则返回 head;head := temp;返回 solve(head, back)。让我们来看下面的实现,以便更好地理解:示例class ListNode: def __init__(self, data, next = None): ... 阅读更多

Python程序:移除连续重复字符后的字符串

Arnab Chakraborty
更新于 2020年10月20日 10:48:27

347 次浏览

假设我们有一个字符串 s,我们重复删除第一个连续重复的字符。我们需要找到最终的字符串。因此,如果输入类似 s = "xyyyxxz",则输出将是 "z",因为 "yyy" 是将被删除的第一个连续重复字符。因此我们得到 "xxxz"。然后 "xxx" 将被删除,最终得到 "z"。为了解决这个问题,我们将遵循以下步骤:stack := 新栈;i := 0;当 i < s 的大小,执行:如果 stack 不为空且 stack 的顶部与 s[i] 相同,则 x := 从 stack 中删除最后一个元素;当 ... 阅读更多

Python程序:计算使字符串正确的最小无效括号数

Arnab Chakraborty
更新于 2020年10月20日 10:45:21

383 次浏览

假设我们有一个括号字符串;我们需要编写一个函数来计算要删除的最小括号数,以使字符串正确(每个左括号最终都会被关闭)。因此,如果输入类似 "(()))(",则输出将是 2,因为正确的字符串是 "(())",删除 ")("。为了解决这个问题,我们将遵循以下步骤:total := 0,temp := 0;对于 s 中的每个 p,执行:如果 p 与 "(" 相同,则 total := total + 1;否则,当 p 与 ")" 相同且 total 不为 0 时,则 total := total - 1;否则,temp := ... 阅读更多

C++程序:移除子列表以获得相同数量的低于和高于 k 的元素

Arnab Chakraborty
更新于 2020年10月20日 10:43:04

112 次浏览

假设我们有一组数字,称为 nums,以及另一个数字 k,我们可以最多从列表中删除一个子列表。我们需要找到最长结果列表的长度,使得严格小于 k 的数字和严格大于 k 的数字的数量相同。因此,如果输入类似 nums = [6, 10, 8, 9, 3, 5],k = 6,则输出将是 5,因为如果我们删除子列表 [9],我们将得到 [6, 10, 8, 3, 5],并且有两个数字 [3, 5] ... 阅读更多

C++程序:查找要移除重叠的最小区间数

Arnab Chakraborty
更新于 2020年10月20日 10:37:18

413 次浏览

假设我们有一组区间;我们需要找到应该移除的最小区间数,以使其余区间不重叠。因此,如果区间是 [[8, 10],[3, 5],[6, 9]],则输出将是 1,因为我们必须移除 [6, 9] 以使所有其他区间都不重叠。为了解决这个问题,我们将遵循以下步骤:n := 数组的大小;如果 n 为 0,则返回 0;count := 1;根据区间的结束时间对数组进行排序;end := 第一个区间的结束日期;对于范围 1 到 ... 阅读更多

Python程序:移除链表中的重复条目

Arnab Chakraborty
更新于 2020年10月20日 10:34:42

186 次浏览

假设我们有一个数字链表,我们需要移除在链表中多次出现的数字(在输出中只保留一个出现),我们还必须保持原始链表中出现的顺序。因此,如果输入类似 [2 -> 4 -> 6 -> 1 -> 4 -> 6 -> 9],则输出将是 [2 -> 4 -> 6 -> 1 -> 9]。为了解决这个问题,我们将遵循以下步骤:如果节点不为空,则 l := 新集合;temp := 节点;将 temp 的值插入 l;当 ... 阅读更多

Python程序:更新给定范围内的元素

Arnab Chakraborty
更新于 2020年10月20日 10:31:20

265 次浏览

假设我们有一组数字,称为 nums,以及一组操作。这里每个操作都有三个字段 [L,R,X],这表示我们应该将从索引 L 到 R(含)的所有元素递增 X。我们需要应用所有操作并返回最终列表。因此,如果输入类似 nums = [8, 4, 2, -9, 4] operations = [[0, 0, 3],[1, 3, 2],[2, 3, 5]],则输出将是 [11, 6, 9, -2, 4],因为初始列表是 [8, 4, 2, -9, 4]。执行第一个操作 [0, 0, ... 阅读更多

Python程序:计算我们可以收集的总降雨量

Arnab Chakraborty
更新于 2020年10月20日 07:45:17

99 次浏览

假设我们有一个包含 n 个非负整数的数组。这些表示高度,其中每个条的宽度为 1,我们需要计算下雨后它能够收集多少水。因此地图将如下所示:在这里我们可以看到有 8 个蓝色方块,所以输出将是 8。为了解决这个问题,我们将遵循以下步骤:定义一个栈 st,water := 0 和 i := 0;当 i < 高度的尺寸,执行:如果栈为空或 height[stack top] >= height[i],则将 i 推入栈,i 增加 1;否则 x := 栈 ... 阅读更多

Python程序:查找连续子数组的最大乘积

Arnab Chakraborty
更新于 2020年10月20日 07:43:33

1K+ 次浏览

假设我们有一个名为 nums 的数组,我们需要找到数组内连续子数组(包含至少一个数字)的元素乘积,该子数组具有最大的乘积。因此,如果数组是 [1, 9, 2, 0, 2, 5],则输出将是 18,因为连续子数组 [1, 9, 2] 具有最大乘积。为了解决这个问题,我们将遵循以下步骤:max_list := 大小为 nums 的列表,并填充 0;min_list := 大小为 nums 的列表,并填充 0;min_list := 大小为 nums 的列表,并填充 0;对于范围 1 到 nums 的长度 max_list[i] ... 阅读更多

C++程序:计算后缀表达式

Arnab Chakraborty
更新于 2020年10月20日 07:41:51

13K+ 次浏览

假设我们有后缀表达式,我们需要计算其值。后缀表达式也称为逆波兰表示法。这里我们需要使用栈数据结构来解决后缀表达式。因此,如果表达式是“21+3*”,则答案将是 9。让我们看看步骤:对于后缀表达式中的每个字符 ch,执行:如果 ch 是运算符 $\odot$,则 a := 从栈中弹出第一个元素,b := 从栈中弹出第二个元素;res := b $\odot$ a;将 res 推入栈;否则,如果 ch 是操作数,则将 ch 添加到栈中;返回 ... 阅读更多

广告
© . All rights reserved.