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


用 Python 编写一个程序,找出一个矩阵,将每栋公寓的高度增加到最大可能高度?

假设我们有一个2D矩阵,其中矩阵[r,c]表示城市中公寓的高度。通过取矩阵中每行的最大值,可以看到东西向天际线。通过取每列的最大值,可以看到南北向天际线。我们必须找到一个新的矩阵,其中每个公寓的高度都增加到最大可能的高度,同时保持相同的东西向和南北向天际线。因此,如果输入如下23456789104447778910因为东西天际线为[4,7,10],南北天际线为[8,9,10]

用 Python 编写程序来计算列表中每个元素的连接对之和?\

假设我们有一个名为nums的数字列表。我们必须计算nums中每对数字的连接对之和。这里,对(i,j)和对(j,i)被视为不同。因此,如果输入为nums=[5,3],则输出将为176,因为我们有以下连接:(nums[0]+nums[0])=(5concat5)=55,(nums[0]+nums[1])=(5concat3)=53,(num

用 Python 编写程序来查找由唯一字符组成的字符串的长度?

假设我们有一个字符串单词列表。我们必须创建一个由单词子序列连接而成的字符串,使得每个字母都是唯一的。我们必须最终找到最长的这种连接的长度。因此,如果输入为words=["xyz","xyw","wab","cde"],则输出将为9,因为我们无法选择任何单词,因为它们包含重复的字符。为了解决这个问题,我们将

用 Python 编写程序来查找翻转列数以获得最大数量的相等行?

假设我们有一个二进制矩阵,我们可以在给定矩阵中选择任意数量的列并翻转该列中的每个单元格。转换单元格意味着反转单元格值。我们必须找到经过一定次数的翻转后所有值都相等的最大行数。因此,如果矩阵如下000001110输出将为2。这是因为在转换前两列的值后,后两行的值相等。为了解决这个问题,我们将遵循以下步骤:x:=矩阵,m:=行数和n:=列数和r:=0对于x中的每个元素ic

用 Python 编写程序,根据间隔时间找出最多可以选修的课程数量?

假设我们有一个[start,end]形式的间隔列表,这表示课程的开始和结束时间。我们必须找到我们可以选修的最大课程数量,假设我们一次只能选修一门课程,并且课程的开始时间必须晚于最后一门课程的结束时间。因此,如果输入为times=[[3,6],[6,9],[7,8],[9,11]],则输出将为3,因为我们可以选修课程[[3,6],[7,8],[9,11]]为了解决这

用 Python 编写程序来查找构成最长链的盒子数量?

假设我们有一个盒子列表,其中每个条目都有两个值[start,end](start<end)。如果一个盒子的结尾等于另一个盒子的开头,我们可以连接两个盒子。我们必须找到最长盒子链的长度。因此,如果输入为blocks=[[4,5],[5,6],[4,8],[1,2],[2,4]],则输出将为4,因为我们可以形成链:[1,2],[2,4],[4,5

用 Python 将罗马数字转换为整数的程序?

假设我们有一个罗马数字;我们必须将其转换为数字。我们知道罗马数字由从左到右从大到小的符号表示,唯一的例外是当表示小于一个符号时。一些罗马数字符号含义如下:'M':1000'D':500'C':100'L':50'X':10'V':5'I':1因此,如果输入为numeric

用 Python 编写程序检查第一个玩家是否在糖果移除游戏中获胜?

假设我们有一个称为糖果的数字列表,并且有人正在与他/她的朋友玩游戏。在每一轮中,玩家可以移除任何两个具有相同值的连续糖果。谁拿不到糖果谁就输,玩家1先开始,我们必须检查玩家1是否会赢。因此,如果输入为nums=[2,2,5],则输出将为True,因为如果玩家1选择了2,则另一个玩家不能选择任何糖果。要解决这个问题,我们将遵循以下步骤:堆栈:=一个新堆栈turns:=0对于num

用 Python 编写程序来从字符串中计算布尔表达式?

假设我们有一个字符串s,其中包含带有运算符"and"和"or"的布尔表达式,请计算它并返回结果。这里的表达式可能有括号,应该先求值。所以,如果输入是s="Tand(ForT)",那么输出将为True为了解决这个问题,我们将遵循以下步骤:stack:=anewlistt=s元素列表,用空格分隔对于t中的每个v,执行如果v[0]与&quo

用 Python 编写程序来查找所有日子的最低公交车票价?

假设我们有一个排序数字列表,称为天数,我们必须每天乘坐公交车。我们必须找到所有日子旅行所需的最低费用。有3种类型的公交车票。1天通票2美元7天通票7美元30天通票25美元因此,如果输入为days=[1,3,5,6,28],则输出将为9,因为可以通过在开始时购买7天通票,然后在第29天购买1天通票来实现最低成本。为了解决这个问题,我们将遵循以下

用 Python 编写程序来计算将一个列表更改为另一个列表所需的交换次数?

假设我们有两个数字列表L1和L2,每个列表的长度为n,每个值都是其列表的唯一值,值的范围为1到n,我们必须找到将L1转换为L2所需的最小相邻交换次数。因此,如果输入为L1=[0,1,2,3]L2=[2,0,1,3],则输出将为2,因为我们可以交换1和2,L1将为[0,2,1,3],然后0和2,L1将为[2,0,1,3]

用 Python 编写程序,找出通过收取费用买卖股票可以获得的最大利润?

假设我们有一份按时间顺序排列的某公司股票价格清单,并且还有一笔卖出交易的交易费。我们必须找出通过多次买卖该股票可以获得的最大利润。我们必须先买,然后才能卖。因此,如果输入为prices=[2,10,4,8]fee=3,则输出将为6,因为我们可以以2买入并以10卖出,并产生3的费用,因此利润为5。然后我们以4买入并以8卖出,并产生3的费用,因此利润为1

用 Python 编写程序,找出炸弹爆炸时安全的地方数量?

假设我们有一个2d二进制矩阵,其中1表示炸弹,0表示空单元格。当炸弹爆炸时,同一行和同一列上的所有空间都会被损坏。我们必须找到可以站立的空间数量,以免受到伤害。因此,如果输入如下110000000则输出将为2,因为有两个空间,右下角单元格和中间右侧单元格是安全的。要解决这个问题,我们将遵循以下步骤:r:=大小与矩阵行数相同的列表,并用false填充c:=大小与矩阵列数相同的

用 Python 编写程序,通过将数字列表中的 0 改为 1 k 次,找到最小可能和?

假设我们有一个名为nums的数字列表和另一个值k。我们必须进行以下操作k次:选择列表中的任意数字。在该数字的二进制表示中,选择一个0位并将其设为1。最后,我们必须在执行k次操作后返回所有数字的最小可能和。如果答案太高,则返回结果模式10^9+7。因此,如果输入为nums=[4,7,3]k=2,则输出将为17,因为4的二进制表示为100,3为011,

用 Python 编写程序来查找收到最后一个气球的孩子的起始索引?

假设我们有n个孩子站成一个圈,他们正在等待得到一个气球。分配从第k个孩子(第一个在索引0处)开始,并给他们一个气球,他们离开圆圈。现在每个第k个孩子都会得到一个气球,顺时针旋转,直到只剩下一个孩子得到气球。所以如果我们有n和k,我们必须找到收到最后一个气球的孩子的起始索引。所以,如果输入是n=3k=2,那么输出将是1,在第一轮中,孩子2得到一个气球,然后离开

用 Python 编写程序来查找与 n 具有相同数量设置位数的较大数字?\

假设我们有一个数字n;我们必须找到最小的下一个更高数字,其1的数量与二进制形式的n相同。因此,如果输入为n=7,则输出将为11,因为二进制中的7是0111,而比7更高且有三个1的数字将是11,即二进制中的1011。为了解决这个问题,我们将遵循以下步骤:copy:=n,zeros:=0,those:=0当copy不为0且copy为偶数时

用 Python 编写程序来查找二进制矩阵中leftmost 为 1 的列索引?

假设我们有一个2D二进制矩阵。这里每一行都按升序排列,0在1之前,我们必须找到leftmost的值为1的列索引。如果没有这样的结果,则返回-1。因此,如果输入如下00010011001001则输出为2,因为第二列在整个矩阵中leftmost是1。为了解决这个问题,我们将遵循以下步骤:如果矩阵为空,则返回-1N:=矩阵的行数M:=矩阵的列数i:=0,j:=

用 Python 编写程序来找出通过买卖股票可以获得的最大利润?

假设我们有一份按时间顺序排列的公司股票价格列表,我们必须找出通过买卖股票可以获得的最大利润。我们必须先买后卖,并且卖出股票后必须等一天才能再次买入。因此,如果输入为prices=[2,6,9,4,11],则输出将为11,因为我们可以在2买入,然后在6卖出,等待一天,然后在4买入,然后在11卖出。为了解决这个问题,我们将遵循以下步骤:s:=0b:=-infin

用 Python 编写的程序,通过前后交替节点来转换链表

假设我们有一个单链表,我们必须重新排列它,以便我们取:最后一个节点,然后是第一个节点,然后是倒数第二个节点,然后是第二个节点,依此类推。因此,如果输入为[1,2,3,4,5,6,7,8,9],则输出为[9,1,8,2,7,3,6,4,5,]为了解决这个问题,我们将遵循以下步骤:c:=nodel:=anewlist当c非空时,执行在l的结尾c:=c的下一

用 Python 编写程序,找出需要删除的最少字符数,以使 A 位于 B 之前

假设我们有一个字符串s,仅包含两个字母A和B,我们必须找出需要从s中删除的最少字母数,以使所有出现的A位于所有出现的B之前。因此,如果输入为S="AABAABB",则输出将为1,因为我们可以删除最后一个A来获得AABBB要解决这个问题,我们将遵循以下步骤:a_right:="A"出现的次数在s中b_left:=