给定车轮总数,组成两轮和四轮车辆的方法数

我在一次采访中被问到这个问题。

我的解决方案很简单:给定轮子,形成车队的方法数量dp[i] = dp[i - 2] + dp[i - 4]在哪里。dp[i]i

但它没有通过测试用例。我做错了什么?

回答

尝试这个。

public static void main(String args[]) throws IOException {
int[] input = {4, 5, 6, 0};
int[] output = IntStream.of(input)
.map(n -> n <= 0 || n % 2 != 0 ? 0 : n / 4 + 1)
.toArray();
System.out.println(Arrays.toString(output));
}

输出:

[2, 0, 2, 0]
  1. n为奇数时,结果始终为零。
  2. n是偶数时,您最多可以拥有n / 4四轮车辆。每辆都可以兑换两辆两轮车,所以箱数是总的数量{n / 4, ... , 2, 1, 0}。那就是n / 4 + 1。但是需要注意的是,当 时n <= 0,它变成 0
  • 两轮车的数量是通过确定某个'n'的四轮车的数量来唯一确定的。所以算一下你能拥有多少辆四轮车就足够了。

以上是给定车轮总数,组成两轮和四轮车辆的方法数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>