04 2018 档案
摘要:题目描述: 给一个非负整数 num,反复添加所有的数字,直到结果只有一个数字。 例如: 设定 num = 38,过程就像: 3 + 8 = 11, 1 + 1 = 2。 由于 2 只有1个数字,所以返回它。 进阶:你可以不用任何的循环或者递归算法,在 O(1) 的时间内解决这个问题么? 代码解答:
阅读全文
摘要:题目描述: 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例1: 示例2: 说明: 你的解法应该为 O(logN) 时间复杂度。 题目分析: 要求末尾有多少个零,则该数应为x*10k 的形式等于x*(2k *5k) 也就是求该数分解质因子后有几个5就行,:如1*2*3*4*5=1*2*3*2
阅读全文
摘要:题目描述: 给出一个整数,写一个函数来确定这个数是不是3的一个幂。 后续挑战:你能不使用循环或者递归完成本题吗? 题目分析: 既然不使用循环或者递归,那我可要抖机灵了 如果某个数n为3的幂 ,则k=log3N 代码思路: 首先求出int范围最大的3的幂 Max3 如果n为3的幂,则Max3必定能整除
阅读全文
摘要:题目描述: 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 示例: 题目分析: 判断32位二进制中1的个数,此题利用n&(n-1)性质可解 解答代码: C++版: class Solution { public: int hammingWei
阅读全文
摘要:题目描述: 给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂。 示例:当 num = 16 时 ,返回 true 。 当 num = 5时,返回 false。 问题进阶:你能不使用循环/递归来解决这个问题吗? 题目分析: 如231题同样思路,还是通过位操作来解决这道 首先判断下
阅读全文
摘要:题目描述: 给定一个整数,写一个函数来判断它是否是2的幂。 题目分析: 判断一个整数是不是2的幂,可根据二进制来分析。2的幂如2,4,8,等有一个特点: 二进制数首位为1,其他位为0,如2为10,4为100 2&(2-1)=0 4&(4-1)=0 即得出结论如果一个数n为2的幂,则n(n-1)=0
阅读全文
摘要:题目描述 实现 atoi,将字符串转为整数。 在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 字符串可以
阅读全文