754 次浏览
给定一系列不同的锁和另一系列不同的钥匙。我们的任务是从给定的列表中找到锁和钥匙的正确匹配,并在匹配时将该钥匙分配给锁。在这种方法中,我们将遍历所有锁并创建一个哈希映射,之后,在哈希映射中搜索每个钥匙。当钥匙匹配时,将其标记为有效钥匙并分配给锁。输入和输出输入:锁和钥匙的列表。lock = { ), @, *, ^, (, %, !, $, &, #} ... 阅读更多
2K+ 次浏览
给定一系列不同的螺母和另一系列不同的螺栓。我们的任务是从给定的列表中找到螺母和螺栓的正确匹配,并在匹配时将该螺母分配给螺栓。此问题通过快速排序技术解决。通过将螺栓的最后一个元素作为枢轴,重新排列螺母列表并获取螺栓为枢轴元素的螺母的最终位置。在对螺母列表进行分区后,我们可以使用选定的螺母对螺栓列表进行分区。对左右子列表执行相同的任务 ... 阅读更多
545 次浏览
让我们考虑给定一个字符串,我们知道字符串是一系列字符。字典序旋转是字符串的旋转,将字符转换为字典序。解决方案很简单,我们只需将给定字符串与其自身连接起来,然后在另一个数组中存储所有字符串的旋转。之后按升序对数组进行排序,最低值就是最终结果。输入和输出输入:字符串“BCAAFAABCD”输出:旋转后的字符串:“AABCDBCAAF”算法minStrRotation(str)输入- 给定的字符串。输出- 需要进行的最小字符串旋转。开始 n := str 的长度 定义 strArr 存储所有旋转 tempStr := ... 阅读更多
916 次浏览
从一组数据中,该算法将找到数组中从最大元素到第 k 大元素的元素。此问题可以通过对数组进行排序轻松解决。我们可以按升序或降序对它们进行排序。以降序解决它,我们可以获得前 k 个元素以找到我们的结果。输入和输出输入:数组的元素:{1, 23, 12, 9, 30, 2, 50, 63, 87, 12, 45, 21},K = 4 输出:4 个最大元素为 87 63 50 45算法kthLargestElement(array, n, k)输入:数组、数组中元素的数量、位置 k。输出:显示最大 ... 阅读更多
3K+ 次浏览
Jarvis 步进算法用于从给定的一组数据点中检测凸包的角点。从数据集的最左点开始,我们通过逆时针旋转将点保留在凸包中。从当前点,我们可以通过检查这些点相对于当前点的方向来选择下一个点。当角度最大时,选择该点。完成所有点后,当下一个点为起点时,停止算法。输入和输出输入:点集:{(-7, 8), (-4, 6), (2, 6), (6, 4), (8, 6), ... 阅读更多
6K+ 次浏览
凸包是可以覆盖所有给定数据点的最小封闭区域。Graham 扫描算法将找到凸包的角点。在此算法中,首先选择最低点。该点是凸包的起点。其余 n-1 个顶点根据从起点的逆时针方向排序。如果两个或多个点形成相同的角度,则删除所有相同角度的点,除了距起点最远的点。从剩余的点中,将它们压入堆栈。并逐个从堆栈中删除项目, ... 阅读更多
1K+ 次浏览
从 4 开始的所有偶数都可以表示为两个素数的和。有时一个数字可以有多个素数组合的和。例如,数字 10 = (5 + 5) 和 (7 + 3)该算法将找到给定数字的所有素数和组合。当一个数字 x 为素数时,我们才会检查 (number - x) 是否为素数,如果是,则 x 和 (number – x) 的和表示偶数。输入和输出输入:偶数:70 输出:素数和 70 = 3 ... 阅读更多
给定一个矩阵;矩阵表示一个屏幕。屏幕的每个元素 (i, j) 都表示为一个像素,该像素的颜色用不同的数字标记。在此算法中,当像素已具有选定的先前颜色时,将用新颜色填充像素。如果先前颜色不是先前颜色,则不会填充该像素。填充像素后,它将检查其上下左右像素以执行相同的操作。这个想法非常简单,首先,我们检查选定的位置是否用 ... 阅读更多
此算法将给定数字转换为英文单词。例如,564 将是五百六十四。对于此算法,给定了一些预定义的字符串,从该列表中,它将获取适当的单词以转换为单词。列表如下Units:它将保存 (0 到 9) 的所有单词,例如零、一……九twoDigits:它将保存 (10 - 19) 的所有数字,例如十、十一……十九tenMul:对于十的倍数,(20-90),例如二十、三十……九十。tenPower:它用于百和千作为 10 的 2 次方和 3 次方输入和输出输入:数字:568 输出:五百六十八算法numToWord(num)有一些 ... 阅读更多
561 次浏览
给定两个数字作为二进制字符串,我们的任务是以更快、更有效的方式找到这些数字的乘积结果。使用分治策略,我们可以以非常有效的方式解决问题。我们将数字分成两半。令 Xleft 和 Xright 为第一个数字 X 的两个部分,Yleft 和 Yright 为第二个数字 Y 的两个部分。所以产品;为了简单起见,我们可以执行此操作输入和输出输入:两个二进制数字:1101 和 0111 输出:结果为:91算法addBitString(num1, num2)输入:要添加的两个数字。输出:添加后的结果 ... 阅读更多