在Python中找到最大连续值的程序
假设我们有一个由n个元素组成的数组coins,表示我们拥有的硬币。第i个硬币的价值表示为coins [i]。如果我们可以选择一些价值之和为x的n个硬币,那么我们可以得到一些值x。我们必须从0开始并包括它,并找到可以用硬币获得的最大连续值数量。
因此,如果输入如下所示的硬币 = [1,1,3,4],则输出将是10,因为
- 0 = []
-
1 = [1]
-
2 = [1,1]
-
3 = [3]
-
4 = [4]
-
5 = [4,1]
-
6 = [4,1,1]
-
7 = [4,3]
-
8 = [4,3,1]
-
9 = [4,3,1,1]
为了解决这个问题,我们将遵循以下步骤–。
- 对硬币列表进行排序
-
ans := 1
-
对于硬币中的每个硬币,进行如下操作
- 如果硬币 > ans,则
- 退出循环
- ans:= ans+硬币
- 如果硬币 > ans,则
-
返回ans
例子
让我们看看以下实现以更好地理解-。
def solve(coins):
coins.sort()
ans = 1
for coin in coins:
if coin > ans:
break
ans+=coin
return ans
coins = [1,1,3,4]
print(solve(coins))
输入
[1,1,3,4]
输出
10