算法-回溯相关问题-生成所有n位长的二进制字符串 Java版
生成所有n位长的二进制字符串。假设A[0…n-1]是一个大小为n的数组。文章来源地址https://www.toymoban.com/news/detail-602989.html
public class Binary3 {
public static void main(String[] args) {
int n = 3;
binary(n, new int[n]);
}
public static void binary(int n, int[] arr) {
if (n < 1) {
// n 小于 1时,直接打印字符串
printArr(arr);
} else {
// 步骤一:生成字符串,从后往前生成,当前值为0
arr[n - 1] = 0;
//
// 步骤二:当前节点(0值)生成后,再生成前一个节点的值
binary(n - 1, arr);
// 步骤三:因为是二进制串,同时存在0和1两个值,所以一个节点即要生成0,也要生成1
arr[n - 1] = 1;
// 步骤四:当前节点(1值)生成后,再生成前一个节点的值
binary(n - 1, arr);
}
}
private static void printArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
System.out.print("\n");
}
}
文章来源:https://www.toymoban.com/news/detail-602989.html
到了这里,关于算法-回溯相关问题-生成所有n位长的二进制字符串 Java版的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!