美团算法第一题(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; } }