我坚持以下贪污问题:
一只小青蛙想要到达河的另一边。青蛙是 目前位于0位,并希望到达位置X. 树叶从树上落到河面上。
您将获得一个由N组成的非空零索引数组A. 代表落叶的整数。 A [K]代表位置 其中一片叶片落在时间K,以秒为单位测量。
目标是找到青蛙可以跳到的最早时间 河的另一边。只有当叶子出现时,青蛙才能穿过 河对岸的每个位置从1到X.你可以认为是 河流中的电流速度可以忽略不计,即叶子 一旦他们落入河中,就不要改变他们的位置。
例如,给定整数X = 5和数组A,使得:
A [0] = 1 A 1 = 3 A [2] = 1 A [3] = 4 A [4] = 2 A [5] = 3
A [6] = 5 A [7] = 4在第二个6中,叶子落入位置5.这是 叶子出现在每个位置的最早时间 河流。我尝试的代码是:
def solution(X, A):
for i in range(len(A)):
if A[i] == X:
L1 = A[i:]
for j in L1:
count = 0
if (j < X and j not in A[:i]):
count += 1
return i+count
else:
return i
X = raw_input()
A = map(int, raw_input().split())
print solution(X,A)
您可以查看完整的问题说明here 该代码仅适用于某些情况。我对python很新。请让我知道我在做错的地方。
答案 0 :(得分:0)
X = raw_input()
raw_input
返回一个字符串。字符串永远不会比较等于整数,因此if A[i] == X:
永远不会评估为True。在调用solution
之前将X转换为整数。
X = int(raw_input())
现在您的代码将生成输出:
5
1 3 1 4 2 3 5 7
6
(...虽然我没有检查它是否产生正确的输出。最好保存一个单独的问题。)