如何在C#中以递归方式检索数组中的最大数字?
答案 0 :(得分:8)
现在你可能认为我们的意思是没有给你答案 - 而且我承认我已经写下了答案,我的一部分甚至想要给你。
编程就是要自己找到问题的解决方案。当你被聘为程序员时,你可能还有其他人可以依靠,但他们都有自己的问题,你需要能够减轻自己的负担。
递归(在过度简化的答案中)意味着一遍又一遍地调用相同的操作,直到产生结果。这意味着在每次递归操作中都需要知道(至少)两件事:
'你在找什么'是终止条件。一旦你找到了,所有工作都可以停止,你就可以回家了。
“你到目前为止发现了什么”是你如何知道你已经检查了什么,所以你不要翻新旧地。
那么为了在递归中找到数组中的最高值,您需要知道什么?
这将产生一个类似于:
的方法签名public int GetHighestNumber(int[] array, int highestNumberFound, int lastIndexChecked);
进入阵列后,您必须执行以下操作:
highestNumberFound
GetHighestNumber
,新的highestNumberFound
和lastIndexChecked
已更新。我意识到这听起来很陈腐,但是在你自己的上学习这些东西会让你成为更好的程序员。
如果你想成为一名专业程序员,你必须自己学习这些东西。
如果你不想成为一名专业程序员,那就放弃课程,做自己喜欢的事情。
答案 1 :(得分:4)
这里只是一个提示(以int[]
为例):
public int FindMax(int[] array, int indexSoFar, int maxSoFar)
想一想:
答案 2 :(得分:0)
编辑原因:不想破坏答案。 问候。