-1

私はこのアルゴリズムの質問に行き詰まっており、概念を理解していますが、その実装を視覚化するのに苦労しています. コイン列問題 n 個のコインの列があり、その値は正の整数 c1、c2、... です。. . 、cn、必ずしも異なるわけではありません。目標は、最初の行で隣接する 2 つのコインをピックアップできないという制約に従って、最大金額をピックアップすることです。ここに基本的なアルゴリズムがあります。

F[0]←0; F[1]←C[1]
for i ← 2 to n do
    F [i] ← max(C[i] + F [i − 2], F [i − 1]) 
return F [n]

誰かが基本的な実装のセットアップで私を始めることができますか? ありがとう。

4

2 に答える 2

0
int max(int a, int b) {
  if(a > b) return a;
  return b;
}

int coin_row(int[] C, int n) {
  int F[n+1], i;
  F[0] = 0; F[1] = C[1];

  for(i = 2;i<=n;i++) {
    F[i] = max(C[i] + F[i-2], F[i-1]);
  }

  return F[n];
}
于 2013-04-22T06:48:47.613 に答える