美团算法第一题(2021.10.17)
给定数字n表示为n种盒子,默认第1类盒子装1个糖果,第i种盒子可以装不同数量的盒子(嵌套)。
给定n和数组a,b:
a = int[n-1],b = int[n-1]
a[i]表示第i+1类盒子装下的盒子个数,b[i]表示是第几类盒子。
返回每一类盒子包含的糖果数量。
public class meituan1 {
final int Mod = 1000000007;
// a个数,b种类
public int[] candy(int n,int a[],int b[]){
int[] ans = new int[n];
ans[0] = 1;
int a_len = a.length;
for (int i = 0; i < a_len; i++) {
while(b[i]!=1)
{
a[i] *= a[b[i]-2]%Mod;
b[i] = b[b[i]-2];
}
ans[i+1] = a[i];
}
return ans;
}
} 

查看8道真题和解析