我在Java中返回了以下代码,以产生可能的n位二进制表示形式。
public List<String> binaryRepresenation(int n){
List<String> list = new ArrayList<>();
if(n>0){
permuation(n, list, "");
}
return list;
}
private void permuation(int n, List<String> list, String str){
if(n==0){
list.add(str);
}else{
permuation(n-1, list, str+"0");
permuation(n-1, list, str+"1");
}
}
对于n = 3,它将产生001 001 010 011 100 101 110 111组合。总体而言,该函数产生2 ^ n种可能的表示形式。
可以肯定地说时间复杂度是n * 2 ^ n
在2 ^ n次的情况下,针对基本情况调用该方法。为了达到每种基本情况,将调用置换方法最多n次。
因此,总的上限时间复杂度为n * 2 ^ n?如果我错了,请纠正我。我来到了基于该主题讨论串置换时间复杂度这一结论字符串的置换时间复杂度。您的帮助将不胜感激。
慕森卡
相关分类