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


用 Python 编写程序,计算翻转列以达到目标所需的最少操作数

假设我们有一个矩阵M和一个目标矩阵T,它们的行数和列数相同。现在假设一个操作,我们翻转矩阵中的特定列,这样所有的1都会转换为0,所有的0都会转换为1。因此,如果我们可以免费重新排序矩阵行,请找到将M变成T所需的最少操作数。如果没有解决方案,则返回-1。因此,如果输入如下M=001011T=01101然后输出将为1,因为首先将行重新排序为−001110

用 Python 编写一个程序,计算将所有单元格变成相同颜色所需的操作次数

假设我们有一个二维矩阵M。现在每个单元格包含一个代表其颜色的值,并且相邻的单元格(顶部、底部、左侧、右侧)具有相同的颜色,将被分组在一起。现在,考虑一个操作,我们将一个组中的所有单元格设置为某种颜色。然后最终找到使每个单元格具有相同颜色所需的最少操作次数。而且当颜色变换后,就不能再设置了。所以,如果输入如下22221112321那么输出将是2,因为我们可以将颜色为2的组填充为1,然后将颜色为1的

用 Python 编写程序来查找我们可以收集的最大硬币数量

假设我们有一个2D矩阵,其中每个单元存储一些硬币。如果我们从[0,0]开始,并且只能向右或向下移动,我们必须找到右下角可以收集的最大硬币数量。因此,如果输入如下14220005那么输出将是14,因为我们采用的路径是:[1,4,2,2,5]为了解决这个问题,我们将遵循以下步骤−对于r在1到A的行数范围内,执行A[r,0]:=A[r,0]+A[r-

用 Python 编写程序,查找二叉树中任意路径的最大和

假设我们有一棵二叉树,我们必须找到从根节点到叶节点的任意路径的最大和。因此,如果输入如下那么输出将是29,因为从根节点开始,如果我们遵循路径5-<9-<7-<8,则加法后将是29。为了解决这个问题,我们将遵循以下步骤−定义一个函数walk()。这将获取节点s如果节点为空,则max_sum:=max_sum和s的最大值返回s:=s+节点的数据

用 Python 编写程序,查找右侧循环较大元素

假设我们有一个名为nums的数字列表。我们必须找到一个长度相同的新列表,其中索引i处的值被分配给其右侧下一个大于nums[i]的元素,并在需要时循环回到列表的前面。如果没有更大的数字,则应将其设置为-1。因此,如果输入为[4,5,1,3],则输出将为[5,-1,3,4]为了解决这个问题,我们将遵循以下步骤−n:=a的大小stack:=堆栈,最初插

用 Python 编写程序来查找单链表的中间节点

假设我们有一个单链表节点,我们必须找到中间节点的值。当有两个中间节点时,我们将返回第二个节点。我们必须尝试一次性解决该问题。因此,如果输入为[5,9,6,4,8,2,1,4,5,2],则输出为2。要解决该问题,我们将遵循以下步骤−p:=noded:=0,l:=0当node不为空时,执行如果d不等于2,则node:=nextofnodel:=l+1,

用 Python 编写程序,查找经过所有站点所需的最少公交车数量

假设我们有一个名为nums的数字列表,该列表在一行上显示公交车站,其中nums[i]显示公交车必须到达车站i的时间。既然公交车只能向前行驶,我们必须找到经过所有站点所需的最少公交车数量。因此,如果输入为nums=[1,2,7,9,3,4],则输出将为2,因为一辆公交车可以停靠[1,2,3,4]站,另一辆公交车可以停靠[7,9]站。为了解决这个问题,我们

用 Python 编写程序排列卡片,使其按升序显示

假设我们有一个卡片列表,我们想以某种方式排列卡片,使它们按升序显示。众所周知,卡片以这种方式显示:1.移除并显示最上面的卡片,然后将下一张卡片移到后面。2.重复步骤1,直到没有更多的卡片。我们必须找到卡片的顺序,使它们按升序显示。因此,如果输入为cards=[1,2,3,4,5,6,7,8],则输出将为[1,5,2,7,3,6,4,8],因为1被移除,

用 Python 编写程序,将两个字符串分割成多个部分,使每个部分形成字谜

假设我们有两个长度相同的非空字符串s和t。我们必须将它们分割成子字符串,使每对s和t子字符串的大小相同,并且它们彼此是字谜。现在找到切割索引,使其产生s和t的最大切割次数。如果没有找到结果,则返回空列表。因此,如果输入为s="bowcattiger"t="owbactietgr",则输出将为[0,3,5,6,10]

用 Python 编写程序,求所有连续子列表之和

假设我们有两个长度相同的非空字符串s和t。我们必须将它们划分为子字符串,使得每对s和t子字符串的大小相同,并且它们彼此是字谜。现在找到切割索引,使得它产生s和t的最大切割次数。如果没有找到结果,则返回空列表。因此,如果输入为s="bowcattiger"t="owbactietgr",则输出将为[0,3,5,6,1

用 Python 编写程序,找出爬楼梯的方法(最多 k 次,最多台阶数)

假设我们有一个有n个台阶的楼梯,还有另一个数字k,最初我们在0级台阶上,我们每次可以爬1、2或3级台阶。但我们最多只能爬3级台阶k次。现在我们必须找出爬楼梯的方法数量。因此,如果输入为n=5、k=2,则输出将为13,因为我们可以采用不同的方式爬楼梯−[1,1,1,1,1][2,1,1,1][1,2,1,1][1,1,2,

用 Python 编写程序检查是否可以从 k 开始到达列表末尾

假设我们有一个名为nums的数字列表和另一个数字k。如果我们从索引k和任何索引i开始,我们可以向左或向右移动恰好nums[i]步数。我们必须检查是否可以到达列表的末尾。因此,如果输入为nums=[0,0,2,1,3,3,1,1]k=2,则输出将为True,就好像我们从索引2开始,然后跳转到索引4,然后跳转到最后一个索引7。为了解决这个问题,我们

用 Python 编写程序来找出爬楼梯的方法

假设我们有一个有n个台阶的楼梯,我们每次可以爬1或2个台阶。我们必须定义一个函数来返回爬楼梯的不同方法的数量。台阶的顺序不应改变,因此每个不同的台阶顺序都算作一种方式。如果答案非常大,则将结果取10^9+7的模数因此,如果输入为n=5,则输出将为8,因为有8种独特的方法−1,1,1,1,12,1,1,11,2,1,11,1,2,

用 Python 编写程序检查我们能否通过单词列表拼出目标

假设我们有一个名为nums的数字列表和另一个数字k。如果我们从索引k和任何索引i开始,我们可以向左或向右移动恰好nums[i]步数。我们必须检查是否可以到达列表的末尾。因此,如果输入为nums=[0,0,2,1,3,3,1,1]k=2,则输出将为True,就好像我们从索引2开始,然后跳转到索引4,然后跳转到最后一个索引7。为了解决这个问题,我们

用 C++ 编写程序将两个二进制字符串相加,并返回二进制字符串

假设我们有两个二进制字符串a和b,我们必须将这些二进制数相加并求出它们的和,同样以字符串形式返回。因此,如果输入为a="10110",b="10010",则输出为"101000"。要解决这个问题,我们将遵循以下步骤−ret:=空字符串na:=a的大小,nb:=b的大小i:=na-1

用 Python 编写程序,找出在容量范围内取不同物品可以获得的最大数量

假设我们有两个列表,分别称为weights和values,它们的长度相同,还有一个数字,称为容量k。这里的weights[i]和values[i]表示第i个物品的重量和价值。现在,我们最多可以取k个容量权重,并且每个项目最多只能取一份,我们必须找到可以得到的最大价值。因此,如果输入为weights=[2,3,4],values=[2,6,4],capa

用 Python 编写程序,用于查找矩阵中形成 Z 形的元素之和

假设我们有一个nxn矩阵M,我们必须找到矩阵中形成Z形的所有元素之和。因此,如果输入如下432918256那么输出将是23,因为元素是[4+3+2+1+2+5+6]=23。为了解决这个问题,我们将遵循以下步骤−n:=矩阵的行数如果n<=2,则返回矩阵中所有元素的总和first_row:=第一行的总和last_row:=最后一行的总和dia

用 Python 编写程序,查找给定字母组成的最长字符串的长度

假设我们有一个字符串列表,列表中包含单词和另一个字符串,列表中包含字母,我们需要找出由字母中的字符组成的单词中最长字符串的长度。如果无法组成单词,则返回0。这里我们不能重复使用字母。因此,如果输入为words=["dog","cat","rat","bunny","lion",&q

用 Python 编写程序,找出在股票市场上多次买入可以获得的最大利润

假设我们有一个按时间顺序排列的代表某家公司股票价格的价格列表,我们必须找出通过多次买入和卖出该股票可以获得的最大利润。我们必须记住,我们必须先买,然后才能卖。因此,如果输入为prices=[10,50,30,40,60],则输出将为70,因为我们可以以10买入,以50卖出,以30买入,以60卖出。为了解决这个问题,我们将遵循以下步骤−prev_pric

用 Python 编写程序,找出在股票市场上买入一次可以获得的最大利润

假设我们有一份按时间顺序排列的代表某家公司股票价格的价格列表,我们必须找出只买入和卖出一次该股票可以获得的最大利润。我们必须记住,我们必须先买,然后才能卖。因此,如果输入为prices=[10,12,9,6,8,12],则输出将为6,因为我们可以以6买入并以12卖出。为了解决这个问题,我们将遵循以下步骤−max_profit:=0min_stock:=