查找最大块以使数组在 Python 中排序的程序
假设我们有一个数组nums,我们必须将数组拆分为一定数量的分区,并分别对每个分区进行排序。现在将它们连接起来后,我们将得到一个已排序的数组。我们必须找到我们可以创建的最大分区数?
所以,如果输入像[3,2,4,5,5],那么输出将是4,因为我们可以像[3,2],[4],[5],[5]这样的分区。
示例
让我们看下面的实现来更好地理解
def solve(nums):
real=sorted(nums)
p1,p2,c=0,1,0
while True:
flag=True
tmp=sorted(nums[p1:p2])
for j in range(len(tmp)):
if tmp[j]!=real[p1+j]:
flag=False
p2+=1
break
if flag:
p1,p2=p2,p2+1
c+=1
if p1==len(nums) or p2>len(nums):
return c
nums = [3,2,4,5,5]
print(solve(nums))输入
{3,2,4,5,5}输出结果4
热门推荐
10 病人祝福语老师寄语简短
11 新娘生孩子祝福语简短
12 婆婆66岁祝福语简短
13 今天孩子高考祝福语简短
14 送彩票生日祝福语简短
15 分别祝福语简短情话英文
16 画室揭牌仪式祝福语简短
17 女友妈妈生日祝福语简短
18 离别赠言离职祝福语简短