326. Power of Three
2017-08-03 15:52
99 查看
1.题目
Given an integer, write a function to determine if it is a power of three.
Follow up:
Could you do it without using any loop / recursion?
2.分析
这道题,拿到手时,感觉是蛮简单的- -,但是后面有一句话,不使用递归或者循环可以实现吗?如果用循环或者递归,这道题会很快就解决了。
3.解题
我的解题:
别人的解题(1):
其实这种解法也是使用了递归的方法。效率应该也不是很高,但是代码是真的很简洁。
解题(2):
这种解法个人感觉还是不错的,但是总觉得有一种小打小闹,在玩的感觉,不是常规的那种解法,有种投机取巧的感觉,但是能想出来很厉害了。确实int范围内的数是3的次方数的没有多少,完全可以暴力破解- -。
4.总结
在解题过程中,还是多参考一些别人的解法,对比自己的解法,这样能发现问题在哪?自己的不足,别人解题的巧妙之处。然后进行归类总结,举一反三,以后解类似的算法题时,能找到不错的解题思路。
Given an integer, write a function to determine if it is a power of three.
Follow up:
Could you do it without using any loop / recursion?
2.分析
这道题,拿到手时,感觉是蛮简单的- -,但是后面有一句话,不使用递归或者循环可以实现吗?如果用循环或者递归,这道题会很快就解决了。
3.解题
我的解题:
public class Solution { public boolean isPowerOfThree(int n) { // 边界处理 if(n==1){ return true; } int a = n/3; int b = n%3; while(a!=0&&b==0){ b = a%3; // 很关键在a值未改变时,进行赋值 a = a/3; } if(a==0&&b==1){ return true; } return false; } }
别人的解题(1):
public boolean isPowerOfThree(int n) { return n>0 && (n==1 || (n%3==0 && isPowerOfThree(n/3))); }
其实这种解法也是使用了递归的方法。效率应该也不是很高,但是代码是真的很简洁。
解题(2):
public boolean isPowerOfThree(int n) { return n > 0 && (1162261467 % n == 0); }
这种解法个人感觉还是不错的,但是总觉得有一种小打小闹,在玩的感觉,不是常规的那种解法,有种投机取巧的感觉,但是能想出来很厉害了。确实int范围内的数是3的次方数的没有多少,完全可以暴力破解- -。
4.总结
在解题过程中,还是多参考一些别人的解法,对比自己的解法,这样能发现问题在哪?自己的不足,别人解题的巧妙之处。然后进行归类总结,举一反三,以后解类似的算法题时,能找到不错的解题思路。
相关文章推荐
- [python语法巩固][leetcode326][Power of Three]
- LeetCode 231,326,342 --Power of Two & Three & Four
- 326. Power of Three
- [326]Power of Three
- Java [Leetcode 326]Power of Three
- leetcode_326_Power of Three(easy)(C++)
- Leetcode 326:Power of Three
- Math-326-Power of Three
- [LeetCode 326] Power of Three
- 【LeetCode-326】Power of three 上(C++)
- (LeetCode 326)Power of Three
- Leetcode 326 Power of Three 数论
- leetcode-326-Power of Three
- LeetCode 231 Power of Two AND LeetCode 326 Power of Three
- [leetcode oj 326]Power of Three
- leetcode——326——Power of Three
- 326-e-Power of Three
- 【C语言】 LeetCode 326 Power of Three
- leetcode 326 Power of Three(数论)
- LeetCode 326 Power of Three(3的幂)(递归、Log函数)