python - 获得数组元素的严格递增序列
问题描述
所以任务是这样的:给你一个整数数组。在每一步中,您都可以将其元素中的一个恰好增加一。找出从输入中获得严格递增序列所需的最小移动次数。
例子:
input_array = [1, 1, 1],输出应该是array_change(input_array) = 3
这是我的代码,它工作正常,它可以正确计算移动,但对于较大的数组,它的运行速度非常慢。我怎样才能优化我的代码来做同样的事情但更快?还是有更好更快的方法来做到这一点?我的代码:
def array_change(input_array):
l = len(input_array)
k = 0
for i in range(1, l):
while input_array[i - 1] >= input_array[i]:
input_array[i] += 1
k += 1
if input_array[i - 1] == input_array[i]:
input_array[i] += 1
k += 1
return k
解决方案
好的,我刚刚找到了正确的方法。
def arrayChange(iA):
c = 0
for i in range(len(iA) - 1):
if iA[i] >= iA[i + 1]:
d = iA[i] - iA[i + 1]
iA[i + 1] += d + 1
c += d + 1
return c
推荐阅读
- reactjs - 为什么 Shopify 电子商务网站使用 react 来建立商店?
- django - 未捕获的 TypeError:$.ajax 不是函数 L.TileLayer.BetterWMS 函数
- java - build-helper-maven-plugin 目标:regex-property 如何访问生成的属性
- php - 样式化动态内容
- selenium - 如何在 IE11 中使用 Selenium WebDriver 将浏览器分辨率设置为 2610*1610
- c# - 使用 Microsoft C# 库或 JSON Schema 构建自适应卡?
- ms-access - 函数返回记录集后编译错误
- c# - 如何在 C# 中使用 RSA 私钥加密数据
- ios - PageSheet 视图控制器未正确显示
- java - Maven 部署插件/阴影插件:不要部署 uber jar