簡體   English   中英

在C#中以遞歸方式檢索數組中的最高編號?

[英]Retrieving the highest number in an array recursively in C#?

如何在C#中遞歸地檢索數組中的最高數字?

現在,您可能會認為我們的意思是不給您答案-我承認我已將答案寫下來,我的一部分甚至希望將其提供給您。

編程就是要自己找到問題的解決方案。 當您被聘為程序員時,您可能會依靠其他人,但是他們都有自己的問題,您需要能夠自己承擔一些責任。

遞歸(過於簡單的回答)是指一遍又一遍地調用相同的操作,直到產生結果。 這意味着您在每個遞歸操作中都需要知道(至少)兩件事:

  1. 你在找什么
  2. 到目前為止您發現了什么

“您要尋找的”是終止條件。 一旦發現,所有工作都將停止,您可以回家。

“到目前為止,您發現的內容”是您如何知道所檢查的內容,從而避免重蹈覆轍。

那么,您需要了解什么才能遞歸地找到數組中的最大值?

  1. 數組的內容。
  2. 您到目前為止找到的最高數字。
  3. 您是否已經看過陣列的這一部分? (為什么要再次瀏覽?)

這將產生一個方法簽名,如下所示:

public int GetHighestNumber(int[] array, int highestNumberFound, int lastIndexChecked);

進入陣列后,必須執行以下操作:

  1. 遍歷數組
  2. 當您發現一個高於highestNumberFound的值時停止
  3. 再次調用GetHighestNumber ,並更新新的highestNumberFoundlastIndexChecked
  4. 如果沒有“更高”的數字,則返回找到的最高數字。

我知道這聽起來有些陳詞濫調,但是自己學習這些東西將使您成為一個更好的程序員。

如果您想成為一名專業的程序員,則必須自己學習這些知識。

如果您不想成為專業的程序員,那么請放棄該課程並做自己喜歡的事情。

這只是一個提示(以int[]為例):

public int FindMax(int[] array, int indexSoFar, int maxSoFar)

想一想:

  • 開始條件
  • 終止條件
  • 您如何遞歸遍歷數組

編輯的原因:不想破壞答案。 問候。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM