[leetcode-342]Power of Four(java)
2016-06-01 10:22
507 查看
原题链接:https://leetcode.com/problems/power-of-four/
思路:首先判断是否是2的幂,如果是的话,再去判断是否为4的幂,判断2的幂要求整数的bit位中只有一个1,而这可以根据num & (num -1)来判断。
得到结果后,最佳的方案是能找到1后面有多少个0,然后这个个数对2取余,如果为0,表示可以整除。但是我没找到方法。
2、在网上看到了一种做法:思想是如果一个数为4的倍数,那么这个数-1一定可以被3整除,可以用数学归纳法很容易得到证明。
思路:首先判断是否是2的幂,如果是的话,再去判断是否为4的幂,判断2的幂要求整数的bit位中只有一个1,而这可以根据num & (num -1)来判断。
得到结果后,最佳的方案是能找到1后面有多少个0,然后这个个数对2取余,如果为0,表示可以整除。但是我没找到方法。
public class Solution { public boolean isPowerOfFour(int num) { if(num < 0) return false; int tmp = num-1; if((tmp & num) == 0){ while(num != 0 && num != 1){ num = num >> 2; } if(num == 1) return true; } return false; } }
2、在网上看到了一种做法:思想是如果一个数为4的倍数,那么这个数-1一定可以被3整除,可以用数学归纳法很容易得到证明。
public class Solution { public boolean isPowerOfFour(int num) { if(num < 0) return false; int tmp = num-1; return (num & tmp) == 0 && tmp % 3 == 0; } }
相关文章推荐
- Ehcache 整合Spring 使用页面、对象缓存
- Java实现8中常用的排序
- springmvc环境整合
- SpringMVC之原理浅析
- 理解Java垃圾回收机制
- java读取excel数据
- spring官网下载jar包
- 浅谈Java动态代理
- 深入理解JDK、JRE(两套)、JVM、以及不同目录下的java.exe
- java 第1章 win7下配置java环境变量
- Android Studio 如何快速简便的导入Eclipse工程
- Java学习之自定义异常和抛出异常
- JAVA clone的简单理解
- Spring源码学习笔记(二)-AOP基础简介
- Spring 4.x官方参考文档中文版——第21章 Web MVC框架(8)
- Spring SpringMVC Hibernate 注解
- 项目查询日期的一个小问题
- java中实现投票选择班长的案例
- Java中将汉字转为拼音
- 多线程学习(六)线程的调度-让步&合并&守护线程