【发布时间】:2016-01-07 07:03:41
【问题描述】:
假设我有一个长度为n 的数组,其中唯一可以出现的值是0-9。我想创建一个递归函数,它返回数组中不同值的数量。
例如,对于以下数组:int[] arr = {0,1,1,2,1,0,1} --> 函数将返回 3,因为该数组中出现的唯一值是 0、1 和 2。
函数接收一个int数组并返回int 像这样:
int numOfValues(int[] arr)
【问题讨论】:
-
你尝试了什么?
-
将数组放入
Set,然后检查Set的大小 -
这个特殊的任务不适合递归。您无法从该切片的两半中不同项目的数量中推断出该切片中不同项目的数量。
-
不幸的是,除了草稿不起作用,我什么都没有。我不清楚递归,我只是想知道这个问题是否可以使用递归来解决。基本情况是,如果数组为空,则返回 0,如果 array.length 为 1,则返回 1。现在我正在尝试找出第三种情况的循环以及如何将其汇总。