2413. 最小偶倍数
[!abstract] Problem: 2413. 最小偶倍数
思路
n为奇数的时候为2n,n为偶数的时候为n;
解题过程
作出这题不简单,问题是灵神这个一行秒的代码是怎么分析出来的?
这题显然只有两种情况:
- n为奇数, n%2=1 。
- n为偶数, n%2=0 。
- 2n 可以拆成 n+n ,所以提取公因式,无论是奇是偶,都会有一个 n 是一定有的。
- 区别在于,奇数的时候多了一个 n ,因为此时 n mod 2 = 1 ,刚好可以直接将取余的结果乘上 n ,这样奇数的时候就是 n+n ,偶数的时候就是 n+0 了。
复杂度
- 时间复杂度: O(1) O(1) O(1)
- 空间复杂度: O(1) O(1) O(1)
Code
int smallestEvenMultiple(int n) {
// 1 2 3 4 5 6 7 8 9 10 11 12 13
return (n % 2 + 1) * n;
}

浙公网安备 33010602011771号