Ahri-珊
day5将分享LeetCode算法题172,189,190。
LeetCode
今天的三道题涉及到2进制数,数组。
172. Factorial Trailing Zeroes
计算一个数的阶乘末尾有多少个零。
心路历程
1.只有偶数和5相乘能够构成一个零,一个5和只能有一个零,出现5就肯定会出现偶数(5!=54321)
2.所以此题只需求n!中有多少个5.
代码:
var trailingZeroes = function(n) {
return Math.floor(n/5) == 0 ? 0 : Math.floor(n/5) + trailingZeroes(Math.floor(n/5));
};
189. Rotate Array
右移数组!
心路历程
将数组右移k位,就循环k次,每次把最后一位取出来放到第一位。
代码:
var rotate = function(nums, k) {
for(let i=0;i<k;i++)
{
nums.unshift(nums.pop());
}
};
190. Reverse Bits
对无符号的32为比特数求逆。
代码:
var reverseBits = function(n) {
var result = 0;
var count = 32;
while (count-- > 0) {
var digit = n & 1;
result = result * 2;
result += digit;
n = n >>> 1;
}
return result;
};
Comments