找到 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- while i < s 的大小,执行:- if stack 不为空且 stack 的顶部与 s[i] 相同,则- x := 从 stack 中删除最后一个元素- while ... 阅读更多

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

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

383 次浏览

假设我们有一串括号;我们需要编写一个函数来计算要移除的最小括号数,以使字符串正确(每个左括号最终都被关闭)。因此,如果输入类似 "(()))(",则输出将为 2,因为正确的字符串是 "(())",需要移除 ")("。为了解决这个问题,我们将遵循以下步骤:- total := 0, temp := 0- 对于 s 中的每个 p,执行:- if 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 := 数组的大小- if n 为 0,则返回 0- count := 1- 根据区间的结束时间对数组进行排序- end := 第一个区间的结束日期- for i in range 1 to ... 阅读更多

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

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

186 次浏览

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

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- while i < height 的大小,执行:- if 栈为空或 height[stack top] >= height[i],则将 i 推入栈中,将 i 增加 1- otherwise- x := stack ... 阅读更多

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- for i in range 1 to nums 的长度- max_list[i] ... 阅读更多

C++ 程序:计算逆波兰表示法

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

13K+ 次浏览

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

广告
© . All rights reserved.