2
これはDPの問題です。これはPythonで2D配列を使って解決します。異なる方法で2D配列を生成する
問題は私が2D配列を生成する方法です。
標準溶液:
def getFloor(F, c, d):
if d == 0 or c == 0:
return 0
if c == 1:
return d
if F[c][d] == -1:
F[c][d] = getFloor(F, c, d-1) + getFloor(F, c-1, d-1) + 1
return F[c][d]
def getMaxFloor(c,d):
F = [[-1] * (d + 1) for i in range(c + 1)]
ans = getFloor(F, c, d)
return ans
print(getMaxFloor(3,4)) #prints 14
マイコード:
def getFloor(F, c, d):
if d == 0 or c == 0:
return 0
if c == 1:
return d
if F[c][d] == -1:
F[c][d] = getFloor(F, c, d-1) + getFloor(F, c-1, d-1) + 1
return F[c][d]
def getMaxFloor(c,d):
F = [[-1] * (d + 1)] * (c+1)
ans = getFloor(F, c, d)
return ans
print(getMaxFloor(3,4)) #prints 15, instead of the correct answer 14
Iはtrueを返し、両方が初期化されたアレイF、の両方をチェック。 どうしたのですか?
正解であることを理由に、なぜこれが嫌いなのか分かりません。 – meowgoesthedog
ikr :(人々は嫌な幸福です –
あなたの答えにコード例を含めると、質問者(そしてサイトの他の誰か)にもっとアクセスしやすくなると思います。 – SeeDerekEngineer