326. Power of Three
public class Solution {
public boolean isPowerOfThree(int n) {
if (n < 1) return false;
while (n % 3 == 0) n /= 3;
if (n == 1) return true;
else return false;
}
}网上看来的不用loop和recursion的
public class Solution {
public boolean isPowerOfThree(int n) {
// 1162261467 is 3^19, 3^20 is bigger than int
return ( n>0 && 1162261467%n==0);
}
}319. Bulb Switcher
n个灯泡中,只有乘方书最后是亮的,其他最后都灭了。
public class Solution {
public int bulbSwitch(int n) {
return (int)Math.sqrt(n);
}
}343. Integer Break
数学推导见:http://www.cnblogs.com/zywscq/p/5415303.html
public class Solution {
public int integerBreak(int n) {
if (n == 2) {
return 1;
}
else if (n == 3) {
return 2;
}
else if (n % 3 == 0) {
return (int)Math.pow(3, n / 3);
}
else if (n % 3 == 1) {
return 2 * 2 * (int)Math.pow(3, (n - 4) / 3);
}
else {
return 2 * (int)Math.pow(3, n / 3);
}
}
}
本文提供了几个LeetCode经典题目的高效解决方案,包括判断一个整数是否为3的幂、确定有多少个灯泡最终保持开启状态以及如何将一个整数拆分成乘积最大的几个整数。这些算法题目不仅考验基本的编程技巧,还涉及数学原理的应用。

2455

被折叠的 条评论
为什么被折叠?



