在C#中以递归方式检索数组中的最大数字?

Jav*_*ier 1 c# recursion

如何在C#中以递归方式检索数组中的最大数字?

Geo*_*ker 8

现在你可能认为我们的意思是没有给你答案 - 而且我承认我已经写下了答案,我的一部分甚至想要给你.

编程就是要自己找到问题的解决方案.当你被聘为程序员时,你可能会有其他人依赖,但他们都有自己的问题,你需要能够自己减肥.

递归(在过度简化的答案中)意味着反复调用相同的操作直到产生结果.这意味着在每次递归操作中都需要知道(至少)两件事:

  1. 你在寻找什么
  2. 你到目前为止发现了什么

'你正在寻找'是终止条件.一旦你找到了,所有工作都可以停止,你就可以回家了.

"你到目前为止所找到的"是你如何知道你已经检查了什么,所以你不要翻新旧地.

那么为了在递归中找到数组中的最高值,您需要知道什么?

  1. 数组的内容.
  2. 到目前为止你找到的最高数字.
  3. 你已经看过阵列的这一部分了吗?(为什么要再看一遍?)

这将产生一个方法签名,如下所示:

public int GetHighestNumber(int[] array, int highestNumberFound, int lastIndexChecked);
Run Code Online (Sandbox Code Playgroud)

进入阵列后,您必须执行以下操作:

  1. 遍历数组
  2. 当你发现一个高于的值时停止 highestNumberFound
  3. GetHighestNumber再次使用新的highestNumberFoundlastIndexChecked更新的呼叫.
  4. 如果没有更多"更高"的数字,则返回找到的最高数字.

我觉得这听起来很陈腐,但是自己学习这些东西会让你成为更好的程序员.

如果你想成为一名专业程序员,你必须自己学习这些东西.

如果你不想成为一名专业程序员,那就放弃课程,做自己喜欢的事.