231 Power of Two 2的幂】的更多相关文章

给定一个整数,写一个函数来判断它是否是2的幂. 详见:https://leetcode.com/problems/power-of-two/description/ Java实现: class Solution { public boolean isPowerOfTwo(int n) { return (n>0)&&((n&(n-1))==0); } } C++实现: class Solution { public: bool isPowerOfTwo(int n) { re…
231. Power of Two Given an integer, write a function to determine if it is a power of two. class Solution { public: bool isPowerOfTwo(int n) { ? (n & (n-)) == : false; } }; 342. Power of Four Given an integer (signed 32 bits), write a function to che…
这三道题目都是一个意思,就是判断一个数是否为2/3/4的幂,这几道题里面有通用的方法,也有各自的方法,我会分别讨论讨论. 原题地址:231 Power of Two:https://leetcode.com/problems/power-of-two/description/ 326 Power of Three:https://leetcode.com/problems/power-of-three/description/ 342 Power of Four :https://leetcod…
1. 232 Implement Queue using Stacks 1.1 问题描写叙述 使用栈模拟实现队列.模拟实现例如以下操作: push(x). 将元素x放入队尾. pop(). 移除队首元素. peek(). 获取队首元素. empty(). 推断队列是否为空. 注意:仅仅能使用栈的标准操作,push,pop,size和empty函数. 1.2 方法与思路 本题和用队列实现栈思路一样,设两个辅助栈stk1和stk2. push(x): 将x入栈stk1. pop(): 依次将stk1…
1. 问题 231. Power of Two: 判断一个整数是否是2的n次方,其中n是非负整数 342. Power of Four: 判断一个整数是否是4的n次方,其中n是非负整数 326. Power of Three: 判断一个整数是否是3的n次方,其中n是非负整数 2. 思路 1)2的n次方  不妨列举几个满足条件的例子. If n = 0: 2 ^ n = 1 If n = 1: 2 ^ n = 2 -> 10(二进制表示) If n = 2: 2 ^ n = 4 -> 100(二…
lc 231 Power of Two 231 Power of Two Given an integer, write a function to determine if it is a power of two. analysation Easy problem. solution bool isPowerOfTwo(int n) { if (n <= 0) return false; while (n%2 == 0) n = n>>1; return (n == 1); }…
描述 Given an integer, write a function to determine if it is a power of two. 给定一个整数,编写一个函数来判断它是否是 2 的幂次方. 解析 2的幂只有1个1 仔细观察,可以看出 2 的次方数都只有一个 1 ,剩下的都是 0 .根据这个特点,只需要每次判断最低位是否为 1 ,然后向右移位,最后统计 1 的个数即可判断是否是 2 的次方数. 减一法 如果一个数是 2 的次方数的话,那么它的二进数必然是最高位为1,其它都为 0…
1.题目:原题链接 Given an integer, write a function to determine if it is a power of two. 给定一个整数,判断该整数是否是2的n次幂. 2.思路 如果一个整数是2的n次幂,那么首先其应当是正数,其次该数的二进制表示必定是以1开头,后续若有数字必为0. 3.代码 class Solution { public: bool isPowerOfTwo(int n) { return (!(n&(n-1)))&&n&…
/* 用位操作,乘2相当于左移1位,所以2的幂只有最高位是1 所以问题就是判断你是不是只有最高位是1,怎判断呢 这些数-1后形成的数,除了最高位,后边都是1,如果n&n-1就可以判断了 如果是2的幂,&的结果是全0 */ if (n<=0) return false; return ((n&(n-1))==0); 划重点: 一个数*2,出相当于左移一位 2.判断是不是3的幂,没啥用的一道题 public boolean isPowerOfThree(int n) { /* 不…
Problem: Given an integer, write a function to determine if it is a power of two. Summary: 判断一个数n是不是2的整数幂. Analysis: 这道题首先需要注意n为非整数是返回false的情况. 1. 若将n转换为二进制数,如果n为2的整数幂,则转换得到的二进制数只包含一个一,故计算转换过程中1的个数,最终判断. class Solution { public: bool isPowerOfTwo(int…
题目: Given an integer, write a function to determine if it is a power of two. class Solution(object): def isPowerOfTwo(self, n): # """ :type n: int :rtype: bool """ 方法:分析2的幂次方的特点,发现2的任意次方的数,化成二进制时只有首位为1其余位为0,因此我的解决方法如下: class…
同样是判断数是否是2的n次幂,同 Power of three class Solution { public: bool isPowerOfTwo(int n) { ) && (((<<) % n == ); } };…
题目: Given an integer, write a function to determine if it is a power of two. 链接: http://leetcode.com/problems/power-of-two/ 题解: 验证一个数是否是2的幂次,我们可以使用(n & (n - 1))来决定. 比如 10 & 01, 100 & 011等等. Time Complexity - O(1), Space Complexity - O(1) publi…
题目描述: Given an integer, write a function to determine if it is a power of two. 解题思路: 判断方法主要依据2的N次幂的特点:仅有首位为1,其余各位都为0. 代码如下: public class Solution { public boolean isPowerOfTwo(int n) { return (n > 0) && ( n & (n - 1)) == 0; } }…
Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 19338 Accepted: 8161 Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + - + Ak. Input The input contains exactly one test case. T…
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 二进制 位运算 判断是不是最大2的幂的因数 判断因子是不是只有2 日期 [LeetCode] 题目地址:https://leetcode.com/problems/power-of-two/ Total Accepted: 71172 Total Submissions: 194399 Difficulty: Easy 题目描述 Given an i…
Given an integer, write a function to determine if it is a power of two. Credits:Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases. 代码如下: public class Solution { public boolean isPowerOfTwo(int n) { if(n<=0) r…
题意:求S=(A+A^2+A^3+...+A^k)%m的和 方法一:二分求解S=A+A^2+...+A^k若k为奇数:S=(A+A^2+...+A^(k/2))+A^(k/2)*(A+A^2+...+A^(k/2))+A^k若k为偶数:S=(A+A^2+...+A^(k/2))+A^(k/2)*(A+A^2+...+A^(k/2)) 也可以这么二分(其实和前面的差不多):S(2n)=A+A^2+...+A^2n=(1+A^n)*(A+A^2+...+A^n)=(1+A^n)*S(n)S(2n+1…
Given an integer, write a function to determine if it is a power of two. Solution:一个整数如果是2的整数次方,那么它的二进制表示中有且只有一位是1,而其他所有位都是0.把这个整数与这个整数减去1之后进行与运算,那么这个整数当中唯一的1会变为0,这个整数也变为0 class Solution { public: bool isPowerOfTwo(int n) { )return false; )); } };…
题意:判断1个数n是否刚好是2的幂,幂大于0. 思路:注意会给负数,奇数.对于每个数判断31次即可. class Solution { public: bool isPowerOfTwo(int n) { ||(n&)==&&n>) return false; unsigned ; while(t<n) //注意爆int t<<=; if(t==n) return true; return false; } }; AC代码 一行代码,更巧的写法: 如果一个数…
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given an integer, write a function to determine if it is a power of two. (二)解题 题目大意:判断一个数是不是2的n次方. 解题思路:从二进制位运算来看,2的n次方是诸如0001,0010,0100,1000-.等数,所以采用位运算,n&(…
题目要求的是 A+A2+...+Ak,而不是单个矩阵的幂. 那么可以构造一个分块的辅助矩阵 S,其中 A 为原矩阵,E 为单位矩阵,O 为0矩阵    将 S 取幂,会发现一个特性: Sk +1右上角那一块不正是我们要求的 A+A2+...+Ak 于是构造出 S 矩阵,然后对它求矩阵快速幂即可,最后别忘了减去一个单位阵. 时间降为O(n3log2k) PS.减去单位矩阵的过程中要防止该位置小于零. #include<iostream> #include<cstdio> #inclu…
题目链接 Description Given a n × n matrix A and a positive integer k, find the sum S = A + A^2 + A^3 + - + A^k. Input The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30), k (k ≤ 109) and m (m < 10…
题意:求A + A^2 + A^3 + ... + A^m. 析:主要是两种方式,第一种是倍增法,把A + A^2 + A^3 + ... + A^m,拆成两部分,一部分是(E + A^(m/2))(A + A^2 + A^3 + ... + A^(m/2)),然后依次计算下去,就可以分解,logn的复杂度分解,注意要分奇偶. 另一种是直接构造矩阵,,然后就可以用辞阵快速幂计算了,注意要用分块矩阵的乘法. 代码如下: 倍增法: #pragma comment(linker, "/STACK:10…
Power of Matrix UVA - 11149       代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define maxn 44 #define mod 10 int n; struct matrix{ int f[maxn][maxn]; }; matrix sum(matrix a…
Given an integer, write a function to determine if it is a power of two. 题解:一次一次除2来做的话,效率低.所以使用位运算的方法(左移一位相当于原数乘2)列出在int范围内的所有2的倍数,然后和n异或如果等于0,那么n就是它(两个数的异或为0,那么两个数就相等). 注意:位运算的优先级比==的优先级低,要加括弧. class Solution { public: bool isPowerOfTwo(int n) { ; )…
矩阵幂次之和. 自己想着想着就想到了一个解法,但是还没提交,因为POJ崩了,做了一个FIB的前n项和,也是用了这个方法,AC了,相信是可以得. 提交了,是AC的 http://poj.org/problem?id=3233 我的思路是: 首先原矩阵保留着,然后需要扩大一倍 需要求1--->1的路径数 <= k的,ans = (路径数 = k的) +(路径数 < k)的 等于k的很容易求,就是e^k然后e[1][1]就是答案,那么小于k的,我们需要虚拟一个节点保留着 可以先看看这个http…
题目链接:http://poj.org/problem?id=3233 Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak. Input The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30…
给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂.示例:当 num = 16 时 ,返回 true . 当 num = 5时,返回 false.问题进阶:你能不使用循环/递归来解决这个问题吗? 详见:https://leetcode.com/problems/power-of-four/description/ C++: 方法一: class Solution { public: bool isPowerOfFour(int num) { while(num&&(nu…
给出一个整数,写一个函数来确定这个数是不是3的一个幂.后续挑战:你能不使用循环或者递归完成本题吗? 详见:https://leetcode.com/problems/power-of-three/description/ C++: 方法一: class Solution { public: bool isPowerOfThree(int n) { while(n&&n%3==0) { n/=3; } return n==1; } }; 方法二: class Solution { publi…