【发布时间】:2019-02-21 20:52:19
【问题描述】:
我不确定,之前在 SO 中是否提出过这个问题。好吧,我正在检查数组中字符的频率。我在确定复杂性方面相当薄弱,所以我认为这个社区可以帮助我明白这一点!非常抱歉,如果我以一些抽象的形式发布它!如果有人可以帮助我,那就太好了!
这是我的代码:
class SearchAChar{
private static int getOccurance(char [] a, char k, int l, int r, int count){
if(l == r) return count;
if(a[l] == k){a[l]='0';count++;}
return getOccurance(a, k, l+1, r, count);
}
public static void main(String [] args){
char [] arr = {'a', 'e', 'b', 'c', 'b', 'c', 'd','a'};
for(int i=0; i<arr.length; i++){
if(arr[i] == '0') continue;
System.out.println("Occurance of : " +arr[i] + " is "+ getOccurance(arr, arr[i], i, arr.length, 0) +" times!");
}
}
}
这个问题的运行时复杂度应该是多少?
【问题讨论】:
-
似乎是线性的。
-
是的!它只是线性的! :D
-
请注意,使用地图,您可以使用 O(n) 而不是 O(n²)
标签: java algorithm time-complexity frequency