arrays - 用正确的返回写矩阵递归?
问题描述
此代码使用递归打印存储在数组输入中的给定数字集的所有子集。子集存储在称为输出的二维矩阵中。输入是由接口直接给出的,所以我什么都不用做。
第一列具有行中数字的大小。例如,如果第 3 行有 2 个元素,则第 3 行的第一个索引将存储 2。如果没有元素,则输入 0。
最后,我必须返回ans
2d 矩阵中包含有效输出的行数。
int subset(int input[], int n, int A[][20]) {
if(n==0)
return 0;
int ans=subset(input+1,n-1,A[][20]); //recursive call
for(int i=0;i<ans;i++){
int x=A[i][0];
for(int j=0;j<x;j++){
A[i+ans][j]=A[i][j];
}
}
for(int i=ans;i<ans*2;i++){
int x=A[i][0];
for(int j=x;j>0;j--){
A[i][j+1]=A[i][j];
}
}
for(int i=0;i<ans*2;i++){
A[i][0]++;
}
for(int i=ans;i<ans*2;i++)
A[i][1]=input[0];
return ans*2;
}
解决方案
推荐阅读
- angular - mat-list-item 中的 mat-form-field 重叠
- php - 错误:警告:php 代码中遇到的非数字值
- elasticsearch - 在这个 java spring boot 应用程序中使用 logstash 时如何调用 filebeats?
- android - 如何将“onCreateViewHolder”中的代码迁移到“onBindViewHolder”
- sql - 无法在字符集之间音译字符
- expo - ActionBar上的Vue Native“元素类型无效:预期为字符串”
- wpf - 为什么我的单行和多行按钮都被禁用时看起来不同?
- python-2.7 - 找到大于或等于 n 的 k 的最小重数
- android - Recyclerview中的行位置错误地改变了背景颜色
- c++ - 如何为 C++ RTP 应用程序项目配置 SonarQube 开发版