题目 |
题目传送门:传送门(点击此处)
题解 |
思路
从代码上来看,这题确实是挺简单。。。
思路一开始也是没有的,看到这题感觉自己萌萌的
-
首先,这道题目没读懂,我是从测试用例的预期结果来读懂题目的
-
在这一步一步的变化过程中已经出现了规律
-
对应一下从1到10,我们不难发现规律
把这些式子对其一下,规律会变得更加明显
这样再来看的话,很容易看出1-10的数字全部都是由 20、21、22、23 组成的,所以也就可以得出是4次 -
推理一下,就可以得出结果
最少操作数就是不大于 n 的 2 的最小次幂
code
package solution54;
class Solution {
public int solution(int n) {
if(n<2) return 1;
else if(n<4) return 2;
else if(n<8) return 3;
else if(n<16) return 4;
else if(n<32) return 5;
else if(n<64) return 6;
else return 7;
}
}