1K+ 次浏览
在本文中,我们将学习解决以下问题陈述。问题陈述 - 给定一个数组,我们需要使用堆排序的概念对其进行排序。我们将最大元素放在最后。重复此操作直到数组排序完成。现在让我们观察下面的实现中的解决方案-示例 现场演示 # 堆化 def heapify(arr, n, i): largest = i # 最大值 l = 2 * i + 1 # 左子节点 r = 2 * i + 2 # 右子节点 # 如果左子节点存在 if l < n and ... 阅读更多
255 次浏览
在本文中,我们将学习解决以下问题陈述。问题陈述 - 给定一个数组,我们需要使用矮人排序对其进行排序。算法1. 首先,我们从左到右遍历数组。2. 现在,如果当前元素大于或等于前一个元素,那么我们向前遍历一步 3. 否则,如果当前元素小于前一个元素,那么交换这两个元素并向后遍历一步。4. 重复上述步骤,直到我们到达数组的末尾。现在让我们观察下面的实现中的解决方案... 阅读更多
164 次浏览
在本文中,我们将学习解决以下问题陈述。问题陈述 - 给定两个数组,我们需要找到两个已排序数组中最接近的一对。现在让我们观察下面的实现中的解决方案 - 示例 现场演示 # sys 模块 import sys # 对 def print_(ar1, ar2, m, n, x): # 差值 diff=sys.maxsize # 索引 l = 0 r = n-1 while(l < m and r >= 0): # 最近对 if abs(ar1[l] + ar2[r] - x) < diff: res_l = ... 阅读更多
在本文中,我们将学习解决以下问题陈述。问题陈述 - 给定两个数字,我们需要计算这两个数字的最大公约数并显示它们。两个数字的最大公约数是能同时整除这两个数字的最大数。在这里,我们遵循欧几里得方法来计算最大公约数,即重复地除以数字,直到余数为零。在这里,我们基于递归中获得的先前值扩展算法。现在让我们观察下面的实现中的解决方案 - 示例 现场演示 # 扩展欧几里得算法 def gcdExtended(a, b, x, y): ... 阅读更多
237 次浏览
在本文中,我们将学习解决以下问题陈述。问题陈述 - 假设我们想知道一栋 40 层的建筑物中哪些楼层可以安全地从楼层上扔鸡蛋,以及哪些楼层会使鸡蛋在着陆时损坏,方法是使用鸡蛋。我们需要显示检查楼层的最小试验次数。现在让我们观察下面的实现中的解决方案 - 示例 现场演示 # 动态规划 INT_MAX = 32767 # 获取最小试验次数 def eggDrop(n, k): # 初始化 eggFloor = [[0 for x in range(k ... 阅读更多
906 次浏览
在本文中,我们将学习解决以下问题陈述。问题陈述 - 给定一个有向图,我们需要检查该图是否包含环。如果给定图包含至少一个环,则输出应为真,否则为假。现在让我们观察下面的实现中的解决方案 - 示例 现场演示 # collections 模块 from collections import defaultdict # 用于创建图的类 class Graph(): # 构造函数 def __init__(self, vertices): self.graph = defaultdict(list) self.V = vertices def addEdge(self, u, v): ... 阅读更多
226 次浏览
在本文中,我们将学习解决以下问题陈述。问题陈述 - 给定一个数组,我们需要使用环排序的概念对其进行排序。它是一种就地算法,交换是通过形成环来完成的。现在让我们观察下面的实现中的解决方案 - 示例 现场演示 def cycleSort(array): writes = 0 # 要旋转的循环 # 循环要旋转 for cycleStart in range(0, len(array) - 1): item = array[cycleStart] #放置项目的位置 pos = cycleStart for i in ... 阅读更多
755 次浏览
在本文中,我们将学习解决以下问题陈述。问题陈述 - 给定一根长度为 n 的木棒和一个包含所有小于 n 的尺寸的价格的数组。我们需要确定通过切割木棒并出售其部件所能获得的最大值。我们将使用动态规划方法来解决问题。现在让我们观察下面的实现中的解决方案-示例 现场演示 # 切割木棒问题的动态规划解法 INT_MIN = -32767 # 切割函数 def cutRod(price, n): val = ... 阅读更多
147 次浏览
在本文中,我们将学习解决以下问题陈述。问题陈述 - 给定一个数组,我们需要使用计数排序的概念对数组进行排序。计数排序是一种技术,我们可以在特定范围内处理键。它包括计算具有不同键和值的物体的数量。最后,我们进行算术计算以获得每个对象的位置并显示输出。现在让我们观察下面的实现中的解决方案 - 示例 现场演示 def countSort(arr): # 将包含排序后的 arr 的输出字符数组 output ... 阅读更多
316 次浏览
本文将介绍以下问题的解决方案:问题陈述 - 给定一个列表,我们需要对该列表执行鸡尾酒排序并显示该列表。鸡尾酒排序 - 此排序类似于冒泡排序,迭代方向为双向。算法首先,从左到右遍历数组。在遍历过程中,比较相邻元素,并根据条件交换值。这样,最大的数字将位于数组的末尾。现在,反向遍历数组,并根据条件交换元素……阅读更多