[ad_1]
ただし、その方法がわかりません。 基本的に、このメソッドでの私の目標は、利用可能で指定された場所に最も近いアシスタントを返すことです。
私が試したこと:
これが私の方法が現在どのように見えるかであり、それを機能させる方法がわかりません。
Java
public Assistant findNearestAvailable(int location) { Iterator<Assistant> it = assistants.iterator(); int closetDistance = 0; while(it.hasNext()){ Assistant assistant = it.next(); int distance = location - assistant.getLocation(); Assistant closetAssistant; if(distance < assistant.getLocation() && assistant.isAvailable()){ closetDistance++; } } } return null; }
解決策 1
Java
if(distance < assistant.getLocation() && assistant.isAvailable()){
closetDistance++;
このコードは変数に 1 を追加するだけなので、誰が最も近いかはわかりません。 次のようなものが必要です:
SET closestDistance to Integer.MAX_VALUE SET closestAssistant to NULL FOREACH assistant in Assistants() // check all assistants DO IF assistant.isAvailable() // but only the availalble ones THEN int distance = location - assistant.getLocation() if distance < closestDistance // if this is closer than any previous ones THEN closestDistance = distance // save the details closestAssistant = assistant FI FI DONE
ループの終わりに closestDistance
最も近い利用可能なアシスタントまでの距離を含める必要があります。 closestAssistant
担当アシスタントになります。
[ad_2]
コメント