326. Power of Three

1591 ワード

class Solution {
    public boolean isPowerOfThree(int n) {
        return helper(n);
    }
    
    private boolean helper(int n) {
        if (n % 3 != 0) {
            return false;
        } else if (n == 3) {
            return true;
        } else {
            return helper(n / 3);
        }
    }
}
久しぶり(もちろん私がうまくやったからではなく、久しぶりにコードしたから^^)stack overflow...あまり嬉しくない^^
私は本当にこれ以上可愛くないようです.
class Solution {
    public boolean isPowerOfThree(int n) {
        if (n == 0) {
            return false; 
        }
        return helper(n);
    }
    
    private boolean helper(int n) {
        if (n == 1) { //3^0
            return true;
        }
        if (n % 3 != 0) { // not divisible by 3 anymore ==> not a power
            return false;
        } else { //divisible by 3, not 1
            return helper(n / 3);
        }
    }
}
間違っていたら直してください.
Runtime: 10 ms, faster than 99.97% of Java online submissions for Power of Three.
Memory Usage: 38.3 MB, less than 98.09% of Java online submissions for Power of Three.

  • 耳の傷があるようです^^この問題を見ると耳で解きます~そうやって解き終わったら、本気で解き終わって、2秒考えたら、ロゴを思い出しました…^^だからもう一度やってみました.
    public class Solution {
        public boolean isPowerOfThree(int n) {
            return (Math.log10(n) / Math.log10(3)) % 1 == 0;
        }
    }
    Runtime: 11 ms, faster than 63.01% of Java online submissions for Power of Three.
    Memory Usage: 39 MB, less than 20.41% of Java online submissions for Power of Three.
    運行時間は私よりずっと速いです.