技术文章库 - 编程教程与技术分享平台


用 Python 编写程序来计算集合中最小元素和最大元素之和小于 k 的非空子集

假设我们有一个名为nums的数字列表和另一个值k,我们必须找到非空子集S的数量,使得S的最小值+S的最大值<=k。我们必须记住子集是多重集。因此,子集中可能存在重复的值,因为它们引用的是列表的特定元素,而不是值。因此,如果输入为nums=[2,2,5,6],k=7,则输出将为6,因为我们可以创建以下子集,例如:[2],[2],[2,2],[2,

用 Python 编写程序,找出完成 K 项任务所需的最长时间

假设我们有一个任务矩阵,每行有3个值。我们还有另一个值k。我们必须从任务中选择k行,将其称为S,以使以下总和最小化并返回总和:(S[0,0],S[1,0],...S[k-1,0])的最大值+(S[0,1],S[1,1],...S[k-1,1])的最大值+(S[0,2],S[1,2],...S[k-1,2])的最大值我们也可以这

在 Python 中,最多更新元素三次后,找出​​最大值和最小值的最小差值程序

假设我们有一个名为nums的数字列表,现在考虑一个可以将元素更新为任意值的操作。我们最多可以执行3次这样的操作,我们必须找到nums中最大值和最小值之间的最小差异。因此,如果输入为nums=[2,3,4,5,6,7],则输出将为2,因为我们可以将列表更改为[4,3,4,5,4,4],然后5-3=2。为了解决这个问题,我们将遵循以下步骤&minu

用 Python 编写程序,查找两个列表中两个元素之间的最小差异

假设我们有两个列表L1和L2,我们必须找到L1中的数字和L2中的数字之间的最小差异。因此,如果输入为L1=[2,7,4],L2=[16,10,11],则输出将为3,因为最小差异为10-7=3。为了解决这个问题,我们将遵循以下步骤−对列表L1进行排序并对列表L2进行排序ans:=infinityi:=0,j:=0whi

用 Python 编写程序,找出使列表平衡所需的从两端删除的最少数量

假设我们有一个包含0和1的列表,我们必须从列表的前面或后面删除值。最后,我们必须找到所需的最小删除次数,以使剩余列表中的0和1数量相等。因此,如果输入为nums=[1,1,1,0,0,1],则输出将为2,因为我们可以删除第一个1和最后一个1,这样就有两个1和两个0。要解决这个问题,我们将遵循以下步骤−longest:=0d:=一个

Python 中合并 K 排序列表的程序

假设我们有一些列表,这些列表是排序的。我们必须将这些列表合并为一个列表。为了解决这个问题,我们将使用堆数据结构。因此,如果列表为[1,4,5]、[1,3,4]、[2,6],则最终列表将为[1,1,2,3,4,4,5,6]。为了解决这个问题,我们将遵循以下步骤−n:=列表大小堆:=一个新列表对于每个索引i和列表[i]的行,执行如果行非空,则将(row[0],i,

用 Python 编写程序来查找非共享 words 的最大长度

假设我们有一个称为words的小写字母字符串列表,我们必须找到两个不共享一个共同字母的不同words的长度之和。因此,如果输入为words=["abcd","mno","abdcmno","amno"],则输出将为7,因为不共享任何共同字母的words为["abcd"

用 Python 编写程序,查找树中非相邻节点的最大和

假设我们有一棵二叉树,我们必须找到在给定任何两个值都不能相邻的情况下可以获得的最大值和。因此,如果输入如下那么输出将是17,因为10、4、3彼此不相邻。为了解决这个问题,我们将遵循以下步骤−定义一个函数f()。这将获取节点如果节点为空,则返回(0,0)(a,b):=f(节点左侧)(c,d):=f(节点右侧)返回一对(节点+b+d和a+c,

用 Python 编写程序,在交换后最大化等价对的数量

假设我们有一个长度相同的数字列表A和数字列表B。我们还有一个二维数字列表C,其中每个元素的形式为[i,j],这表示我们可以随意交换A[i]和A[j]。我们必须找到交换后A[i]=B[i]的最大对数。因此,如果输入为A=[5,6,7,8],B=[6,5,8,7],C=[[0,1],[2,3]],则输出将为4,因为我们可以将A[0]与

在 Python 中增加 K 个子列表后最大化最小值的程序

假设我们有一个名为nums的数字列表和两个值,size和k。现在假设有一个操作,我们取一个长度为size的连续子列表并将每个元素加一。我们可以执行此操作k次,我们必须找到nums中可能的最大最小值。因此,如果输入为nums=[2,5,2,2,7],size=3,k=2,则输出将为3,因为我们可以增加[2,5,2]以获得[3,6,3,2,

用 Python 编写程序使成对相邻的和变小

假设我们有一个非负数列表,比如nums和一个非负值k。现在假设我们可以执行一个操作,在nums中选择一个正数并将其减1。我们必须找到所需的最少操作数,以使列表中每对相邻值的总和<=k。如果答案非常大,则返回结果mod10^9+7。因此,如果输入为nums=[4,6,2,5],k=6,则输出将为5,因为我们可以将列表减少到[3,3,1,4],总共减

用 Python 编写程序,用给定的一组硬币找出找零所需的硬币数量

假设我们有不同面额的硬币和总金额。我们必须定义一个函数来计算凑足该金额所需的最少硬币数量。当任何硬币组合都无法容纳该金额时,返回-1。因此,如果输入为[1,2,5],金额为64,则输出为14。这是使用12*5+2+2=64形成的。为了解决这个问题,我们将遵循以下步骤−如果amount=0,则返回0如果硬币数组的最小值>amount,则返回-

用 Python 编写程序,查找进行更改所需的硬币数量

假设我们有不同面额的硬币(1、5、10、25)和总金额。我们必须定义一个函数来计算凑足该金额所需的最少硬币数量。因此,如果输入为64,则输出为7。这由25+25+10+1+1+1+1=64组成。为了解决这个问题,我们将遵循以下步骤−如果amount=0,则返回0如果硬币数组的最小值>amount,则返回-1定义一个名为dp的

使用 Python 中的子列表求和运算将一个列表转换为另一个列表的程序

假设我们有两个列表l1和l2,我们必须通过重复应用此运算使列表相等−选择一个子列表,并用其总和替换整个子列表。最后返回应用上述操作后可能得到的最长列表的大小。如果没有解决方案,则返回-1。因此,如果输入为l1=[1,4,7,1,2,10]l2=[5,6,1,3,10],则输出将为4,就好像我们按如下方式执行此操作−取l1的子

用 Python 编写程序,查找满足给定条件的彩色顶点子集的数量

假设我们有一个数组colors,表示一个正n边形的颜色。这里,这个n边形的每个顶点都随机地用给定数组中存在的n种不同颜色之一着色。我们必须找到多边形顶点的特殊子集的数量,使得这些子集满足这些条件−子集的大小必须至少为2。如果我们从多边形中删除子集中存在的顶点(这些顶点的相邻边也将被删除),则剩余的顶点和边将形成一些连续路径。这些路径都不应包含两个相同颜色的顶点。我们必

用 Python 编写程序,找出赢得莲花和毛毛虫游戏所需的预期移动次数

假设我们有一个有n行和m列的网格。Amal和Bimal正在该网格上玩游戏。游戏规则如下−Amal将白色莲花瓷砖放在顶行的某处,而Bimal将毛毛虫瓷砖放在底行的某处。Amal开始游戏,他们轮流玩。Amal可以将他的瓷砖移动到当前单元格网格内的8个相邻单元格中的任何一个,但Bimal的毛毛虫瓷砖只能在网格内向左或向右移动,或保持在同一位置。Amal的目

用 Python 编写程序,用于查找对数组元素进行排序所需的预期洗牌次数

假设我们有一组元素nums。我们必须按非递减顺序对它们进行排序。但排序技术是随机的。我们将检查数组是否已排序,如果没有,则随机洗牌并再次检查。继续此过程,直到所有元素都已排序。在这种情况下,我们必须找到对它们进行排序所需的预期洗牌次数。显示精确到小数点后6位的答案。因此,如果输入为nums=[5,2,7],则输出将为6,因为有3种可能的排列,因此概率为1/3如果我们在i=

用 Python 编写程序,用于查找病毒在时间 t 之后的预期增长情况

假设有一种危险的病毒,并且增长迅速。病毒细胞数量以因子x增长的概率为0.5,病毒细胞数量以因子y增长的概率为0.5。现在,如果开始时只有一个病毒细胞,则计算t时间后的预期病毒细胞数量。如果答案太大,则将结果取10^9+7的模。因此,如果输入为x=2、y=4、t=1,则输出将为3,因为最初病毒只有一个细胞。在x时间之后,有0.5的概率,其大小会加倍(x2)

用 Python 编写程序,查找具有四个参数的给定方程的解数

假设我们有四个数字a、b、c和d,我们必须找到满足以下等式的对(x,y)的数量:x^2+y^2=(x*a)+(y*b),其中x在[1,c]范围内,y在[1,d]范围内因此,如果输入为a=2b=3c=2d=4,则输出将为1,因为一对是(1,1)。要解决这个问题,我们将遵循以下步骤−ans:=0对于范围从1到

用 Python 编写程序,根据给定的 n 找出给定序列的最后一位数字

假设我们有一个值n。我们必须找到序列S的最后一位数字。S的方程如下所示−$$\sum_{i=0\:2^{^{i}}\leqslantn}^{\alpha}\sum_{j=0}^{n}2^{2^{^{i}+2j}}$$因此,如果输入为n=2,则输出将为6,因为:这里只有i=0和i有效,所以S0=2^(2^0+0)+2^(2^0+2)