Math
文章平均质量分 60
wnjason
这个作者很懒,什么都没留下…
展开
-
LeetCode---Add Binary
题目大意:给出二个二进制字符串,将其结果相加求和。算法思想:1.为方便计算,将两个字符串逆序。2.设置进制位用于记录字符串各位相加的进位,初始化为0.3.将两个字符串的各位逐位相加。4.若两字符串长度不等,则将长字符串的剩余部分加起来。5.若有进位,则将进位加入结果中。6.将结果逆序并返回。代码如下:class Solution {public: st原创 2015-11-04 19:36:21 · 351 阅读 · 0 评论 -
LeetCode---Ugly Number II
题目大意:给出一个数n,求出第n个丑数。所谓丑数是指只能被2,3,5整除的数。1是第一个丑数。算法思想:1.利用一个数组存储现有的丑数使其有序排列。2.然后将数组中的每一个数分别乘以2,3,5得到一批新的丑数,将其已经存在数组中的丑数排除。找出最小的那个数即是数组中的下一个数。3.为了简化步骤2,可知数组存在一个数使得在它前面的数乘以2小于等于当前最大的丑数,使得它后面的数乘以2都原创 2015-12-02 13:14:06 · 288 阅读 · 0 评论 -
LeetCode---Multiply Strings
题目大意:给出两个字符串表示的数求出其乘法结果。算法思想:1.设置两个变量分别存储当前结果和累加结果。2.利用两个循环,外层循环控制被乘数内层循环控制乘数,然后将被乘数的每一位分别和乘数的所有位相乘得到当前结果并将其扩大10倍和累加结果相加并存入累加结果中。3.返回计算结果。代码如下:class Solution {public: string multiply(原创 2015-11-28 14:24:51 · 250 阅读 · 0 评论 -
LeetCode---String to Integer (atoi)
题目大意:给出一个数字表示的字符串将其转化为数字。要求算法能够忽略字符串开头的连续空格,当字符串出现其他字符时将字符串就此截断且返回结果,当数字和大于MAX_INT时返回MAX_INT当数字和小于MIN_INT时返回MIN_INT.算法思想:开始时设置一个当前结果和变量,符号变量,和一个开始标记,然后遍历字符串,忽略开头的连续空格符,如果首次遇到'+','-'则标记符号变量且标记开始变量,原创 2015-11-18 23:12:40 · 278 阅读 · 0 评论 -
LeetCode---Next Permutation
题目大意:给出一个排列,求出它的下一个排列,如果不存在则返回升序的排列。算法思想:直接使用next_permutation()算法。代码如下:class Solution {public: void nextPermutation(vector& nums) { if(nums.size()==0) return ; next_permut原创 2015-11-16 20:07:05 · 246 阅读 · 0 评论 -
LeetCode---Combinations
题目大意:给出两个整数n和k,找出从1~n中包含k个数的所有组合。算法思想:1.计算出1~n个元素构成集合的所有子集合的个数subset_nums。2.将每个子集合用0~subset_nums进行编号,将该编号表示成二进制形式。3.找出出每个编号中二进制位数为1的个数等于k的编号。4.然后遍历这些编号的二进制将对应位为1元素放入集合中。5.将每个找出的子集合放入结果集中。原创 2015-11-17 11:39:35 · 267 阅读 · 0 评论 -
LeetCode---Power of Two
题目大意:给出一个数,判断它是否是2的整数次幂。算法思想:1.如果n小于0返回false。2.将n转化为二进制形式存储在bitset中。3.计算n的二进制形式中1的个数,如果1的的个数为1则说明它是2的整数次幂,反之不是。代码如下:class Solution {public: bool isPowerOfTwo(int n) { if(n<0)原创 2015-11-11 19:06:07 · 314 阅读 · 0 评论 -
LeetCode---Pascal's Triangle II
题目大意:给出帕斯卡三角的行号索引,计算出该行的结果。算法思想:1.整体思想如LeetCode---Pascal's Triangle2.只需将上述算法中的行数替换为对应的行索引号即可。代码如下:class Solution {public: vector getRow(int rowIndex) { vector tmp,pretmp;原创 2015-11-09 14:05:54 · 293 阅读 · 0 评论 -
LeetCode---Pascal's Triangle
题目大意:给出一个数,写出规模为这个数的帕斯卡三角形。算法思想:观察规律可知,没一行的首尾为1,其余元素为上一行前两个元素之和。按此规律没计算一行将其放入结果中,并用上一行的结果计算下一行的结果。代码如下:class Solution {public: vector > generate(int numRows) { vector > res;原创 2015-11-09 12:27:03 · 287 阅读 · 0 评论 -
LeetCode---Happy Number
题目大意:给出一个数,用其每位上的数字平方的和来替代这个数,一直循环知道数为1停止循环,或者循环一个周期后停止。如果停止时n是1则返回true,否则返回false。算法思想:首先,将所给数用每位数字上的平方和计算出来替换它,然后递归判断该数是否是happy number。注意 这里使用了一个flag标记,初始时使每个数都进行一次平方和替换,之后将其置为true,用来开启递归终止的判断条件。原创 2015-10-09 15:59:00 · 197 阅读 · 0 评论 -
LeetCode---Ugly Number
题目大意:给出一个数,判断其素数因子是否只包含2 or 3 or 5,如果是返回true,否则返回false。注意 ugly number 大于1,且1永远是ugly number。算法思想:1.盘算num是否小于1,如果是 返回false.2.判断是否只包含2,3,5素数因子,逐步缩小num。没判断完一个,做一个结果判断.代码如下:class Solution {publi原创 2015-10-09 09:56:12 · 280 阅读 · 0 评论 -
LeetCode---Plus One
题目大意:给出一个数存储在数组中,数组的每个元素值为该数的一个数位,该数最高位在数组的头部,将该数加上1返回其结果。算法思想:1.为方便操作,将数组逆序,同时设置进位初始化为0.2.遍历数组,如果是数组中第一个元素则将其加1,否则将其与进位相加,然后将结果%10存储在数组中,计算是否产生进位。3.当遍历完数组后,如果还有进位则将进位存入结果数组中。4.将结果数组逆序并返回。原创 2015-11-04 20:25:05 · 278 阅读 · 0 评论 -
LeetCode---Count Primes
题目大意:给出一个非负数n,统计出小于n的素数的个数。算法思想:1.设置一个规模为n的素数表,可以稍微大些,初始化为0。2.遍历素数表将那些非素数及其倍数从素数表中去除。3.统计素数表中素数。代码如下:class Solution {public: int countPrimes(int n) { int* notPrime=new int[n+5];原创 2015-12-02 15:40:18 · 249 阅读 · 0 评论