技术文章库 - 编程教程与技术分享平台
用 Python 买入和卖出股票 III 的最佳时机
假设我们有一个数组,其中第i个元素代表第i天某只股票的价格。我们必须设计一种算法来找到最大利润。我们最多可以完成两笔交易。因此,如果给定的价格为[3,3,5,0,1,3,1,4],则结果将为6,因为我们将在第4天(价格0)买入,然后在第6天(价格3)卖出,因此利润为3–0=3。现在在第7天(价格1)卖出,在第8天(价格4)卖出,因此利润为
Python 中直方图中的最大矩形
假设我们有一个整数数组,表示直方图的高度。每个条形都有单位宽度。我们必须找到面积最大的矩形,如下所示−为了解决这个问题,我们将遵循以下步骤−创建堆栈,设置i:=0,ans:=0whilei<高度的大小,然后如果堆栈有0个元素或堆栈顶部元素的高度<=height[i],则将i插入堆栈,将i增加1否则−x:=堆栈
Python 中的有效数字
假设我们有一个字符串,我们必须检查该字符串是否代表数字。因此,如果字符串类似于"0.2"、"abc"、"hello"、"-2.5"、"10",则答案将分别为true、false、false、true、true。为了解决这个问题,我们将遵循以下步骤−为了解决这个问题,我们将使用编程语言的字符串解析技术。我们将尝试将字符串转换为数字,如果没有异常,那么它将是一个数字,否则不是数字。示例
Python 中的跳跃游戏 II
假设我们有一个整数数组,其中所有元素都是正数。初始起点位于索引1。数组中的每个元素代表我们在该位置的最大跳跃长度。我们的目标是以较少的跳跃次数到达最后一个单元格。因此,如果数组为[2,3,1,1,4],则输出将为2,因为我们可以从0跳到索引1,然后跳到索引4,即最后一个索引。为了解决这个问题,我们将遵循以下步骤−end:=0,jumps:=0,farthes
Python 中的通配符匹配
假设我们有一个输入字符串s和另一个输入字符串p。这是主字符串,p是模式。我们必须定义一个可以匹配字符串中模式的方法。所以我们必须为正则表达式实现它,它支持通配符,如‘?’和‘*’。点‘?’匹配任何单个字符星号‘*’匹配零个或多个字符。例如,如果输入像s=“aa&r
用 Python 捕获雨水
假设我们有一个包含n个非负整数的数组。这些整数表示海拔图,其中每个条的宽度为1,我们必须计算下雨后可以捕获多少水。因此地图将类似于−这里我们可以看到有6个蓝色框,因此输出将是6。为了解决这个问题,我们将遵循以下步骤−定义一个堆栈st,water:=0和i:=0whilei<高度的大小如果堆栈为空或高度[堆栈顶部]>=高度[i],则
Python 中第一个缺失正数
假设我们有一个未排序的整数数组;我们必须找到最小的缺失正数。因此,如果数组为[4,-3,1,-1],则结果为2。为了解决这个问题,我们将遵循以下步骤−设置i:=0并通过在所有数字前添加一个0来更新数组numsforiinrange0tolengthofnumswhilenums[i]>=0andnums[i]<nums
Python 中最长的有效括号
假设我们有一个字符串,带有左括号和右括号。我们必须找到有效(格式正确)括号的最长长度。因此,如果输入类似于"))(())())",则结果将为6,因为有效字符串是"(())()"。要解决这个问题,我们将遵循以下步骤−创建一个堆栈,并插入-1。,设置ans:=0foriinrange0tolengthofstack–1如果s[i]是左括号,则
在 Python 中合并 k 个排序列表
假设我们有一些列表,这些列表是排序的。我们必须将这些列表合并为一个列表。为了解决这个问题,我们将使用堆数据结构。因此,如果列表为[1,4,5]、[1,3,4]、[2,6],则最终列表将为[1,1,2,3,4,4,5,6]。为了解决这个问题,我们将遵循以下步骤−创建一个堆对于列表中的每个链接列表l−如果in不为0,则将I插入堆中res:=null和
Python 中的正则表达式匹配
假设我们有一个输入字符串s和另一个输入字符串p。这里s是主字符串,p是模式。我们必须定义一个可以匹配字符串中模式的方法。所以我们必须为支持‘.’和‘*’的正则表达式实现这个方法。点‘.’匹配任何单个字符星号‘*’匹配零个或多个前面的元素。例如,如果输入像s=&ldquo
用 Python 编写程序,查找到达目的地所需增加的最小高度数
假设我们有一个矩阵M,其中M[r][c]表示该单元格的高度。如果我们当前位于左上角,想要前往右下角。只有当相邻单元格的高度小于或等于当前单元格的高度时,我们才能移动到相邻单元格(上、下、左、右)。我们可以在移动之前增加任意数量的单元格的高度,因此我们必须找到需要增加的最小总高度,以便我们可以转到右下角的单元格。因此,如果输入如下245861那么输出将是4,因为我们可以采用以下路径[2,
如何使用 for 循环打印 R 中列表的所有元素?
将for循环应用于向量或列表没有什么不同,我们可以简单地以通常的方式使用。例如,如果我们有一个名为List的列表,并且我们想要打印列表的所有元素,那么我们可以使用代码for(iinList){print(i)},这里i指的是列表中的向量。示例List<-list(A=LETTERS[1:26],B=rnorm(50,2,1),C=rpois(100,5),D=runif(5
如何找到包含所有描述性统计数据的 R 数据框的统计摘要?
当我们找到R数据框的统计摘要时,我们只得到最小值、第一四分位数、中位数、平均值、第三四分位数和最大值,但在描述性中还有许多其他有用的度量,例如方差、标准差、偏度、峰度等。因此,我们可以使用fBasics包的basicStats函数来实现此目的。加载fBasics包−library(fBasics)考虑基础R中的mtcars数据−示例data(mt
用 Python 编写程序,查找将所有 1 组合在一起所需的最少交换次数
假设我们有一个二进制字符串,我们必须找到在字符串的任意位置将所有1组合在一起所需的最少交换次数。因此,如果输入为"10101001101",则输出将为3,因为可能的解决方案是"00000111111"。为了解决这个问题,我们将遵循以下步骤−data:=给定字符串中的位列表设置one:=0,n:=数据数组的长度创建一个大小为n的数组summ,并用0填充,设置
用 Python 将一组点分组为 k 个不同组的程序
假设我们有一个点列表和一个数字k。这些点的形式为(x,y),表示笛卡尔坐标。如果任意两个点p1和p2之间的欧几里得距离小于等于k,我们可以将它们分组,我们必须找到不相交组的总数。因此,如果输入为points=[[2,2],[3,3],[4,4],[11,11],[12,12]],k=2,则输出将为2,因为它可以组成两个组:([2,2],[3,3],[4,4]
用 Python 中的语法规则计算字符串数量的程序
假设我们有一个数字n,我们必须找到使用以下规则可以生成的长度为n的字符串的数量−每个字符都是小写元音[a,e,i,o,u]"a"后面只能跟着一个"e""e"后面只能跟着"a"和"i""i"后面不能跟着另一个"i"&
用 Python 实现分数背包问题的程序
假设我们有两个列表,长度相同的权重和值以及另一个值容量。weights[i]和values[i]代表第i个元素的权重和值。因此,如果我们最多可以取容量权重,并且可以取一个项目重量的一小部分,并按比例取值,那么我们必须找到我们可以得到的最大价值(四舍五入到最接近的整数)因此,如果输入为weights=[6,7,3]values=[110,120,2]capacity
用 Python 编写程序检查给定的图是否是一组树
假设我们有一个图,表示为边列表。我们必须检查该图是否是一组树(森林)。因此,如果输入类似则输出将为True为了解决这个问题,我们将遵循以下步骤−定义一个函数dfs()。这将获取节点,prev如果节点在seen中,则返回False将节点插入seen中对于e[node]中的每个相邻节点n,执行如果n与prev不同,则如果dfs(n,node)为false,则返回False返回Tr
在 Python 中查找范围内第一个缺失正整数的程序
假设我们有一个大小为n的不同整数的排序列表,我们必须找到范围[1到n+1]中第一个不存在于数组中的正数。因此,如果输入为nums=[0,5,1],则输出将为2,因为2是范围1到5中第一个缺失的数字。为了解决这个问题,我们将遵循以下步骤−target:=1对于arr中的每个i,执行如果i与target相同,则target:=targ
用 Python 编写程序,查找数组中缺失的最小整数
假设我们有一个名为nums的数字列表,我们必须找到第一个缺失的正数。换句话说,就是数组中不存在的最小正数。数组也可以包含重复项和负数。因此,如果输入为nums=[0,3,1],则输出为2为了解决这个问题,我们将遵循以下步骤−nums:=一个包含nums中所有正数的集合如果nums为空,则返回1对于i,范围从1到nums的大小+2,执行如果i

