Math
文章平均质量分 60
Dylan_Java_NYC
练很重要,总结更重要,感谢CSDN给了我这么好的平台交流。
展开
-
LeetCode Add Two Numbers
原题链接:https://leetcode.com/problems/add-two-numbers/思路两个val和进位carry相加,组成新点往后连,注意两个list长度不同和最后是否还有一个进位的情况。AC Java:/** * Definition for singly-linked list. * public class ListNode { * int va原创 2015-08-29 05:39:12 · 237 阅读 · 0 评论 -
LeetCode Ugly Number
原题链接在这里:https://leetcode.com/problems/ugly-number/判断一个数是不是ugly number, 是看它能否被2, 3, 5整除即可。AC Java:public class Solution { public boolean isUgly(int num) { if(num<=0){ retu原创 2015-09-15 06:07:23 · 314 阅读 · 0 评论 -
LeetCode Sqrt(x)
原题链接在这里:https://leetcode.com/problems/sqrtx/很自然的想到由小到大每个数算平方和x比较,但如此会用O(n)时间。类似此类查找可以用 Binary Search, 先找middle = (left + right)/2, middle^2 和 x 比较,比x小就在middle 和 right这段找,反之亦然。Note: 1. middle 要设为原创 2015-09-15 00:21:26 · 287 阅读 · 0 评论 -
LeetCode Divide Two Integers
原题链接在这里:https://leetcode.com/problems/divide-two-integers/思路: 从dividend里一个一个减divisor一直到余下的数小于divisor停止,算算一共减了多少个divisor,就是答案。但如此会超时,所以每次要把divisor乘2^k,再减。表示公式就是dividend = divisor * (2^a+2^b+2^c);原创 2015-08-17 00:22:54 · 488 阅读 · 0 评论 -
Interview Check If n Is A Perfect Square
Check if a given number is a perfect square with only addition or substraction operation.eg. 25 returns true; 19 returns false.Perfect square number 有一个特性,比如0,1,4,9,16,25 他们之间的间隔分别是1,3,5,7,9,每次间隔都原创 2015-09-14 02:43:13 · 270 阅读 · 0 评论 -
LeetCode Count Primes
原题链接在这里:https://leetcode.com/problems/count-primes/这道题我先用了 HashSet,从2开始判断他是否为prime,若是就加入HashSet,对于接下来的数n,判断它是否会被HashSet现有的数字整除,若不能,n也是prime,加入HashSet;若能,n就不是prime。时间复杂度为O(n+k^2),k为指数。但是这种方法也超时了。原创 2015-08-03 02:57:05 · 477 阅读 · 1 评论 -
LeetCode Basic Calculator
原题链接在这里:https://leetcode.com/problems/basic-calculator/思路: 1. 遇到数字位,看后一位是否为数字,若是位数字,当前位需要进十.2. 开始设sign = 1,若遇到 ' - ', sign 改为 -1,若遇到 '+',sign改回1.3. 遇到 '(', 压栈,先压之前的res,后压sign,然后初始化res和sign.4.原创 2015-08-21 09:42:54 · 274 阅读 · 0 评论 -
LeetCode Multiply Strings
原题链接在这里:https://leetcode.com/problems/multiply-strings/Method 1: 通过这道题,学到了BigInteger的用法, 他的constructor 可以直接从string建立BigInteger, 但要注意它的乘法API是bi1.multiply(bi2).若是中间需要考虑溢出,还有bi1.intValue(), bi1.lon原创 2015-08-18 03:32:59 · 236 阅读 · 0 评论 -
LeetCode Add Digits
原题链接在这里:https://leetcode.com/problems/add-digits/最基本的想法就是每一位相加知道成为个位数,但本题有follow-up, require O(1) time.最后的结果只能是0-9,列数看结果,发现num%9对于大多数正数都合适,但corner case 9和9的倍数,本应该返回九,却返回了0,所以单独讨论。Method 3 是返回(num-原创 2015-08-17 01:13:41 · 529 阅读 · 0 评论 -
LeetCode Factorial Trailing Zeroes
原题链接在这里:https://leetcode.com/problems/factorial-trailing-zeroes/求factorial后结尾有多少个0,就是求有多少个2和5的配对。但是2比5多了很多,所以就是求5得个数。但是有的5是叠加起来的比如 25,125是5的幂数,所以就要降幂。e.g. n = 100, n/5 =20, n/25= 4, n/125=0,所以加起原创 2015-08-14 12:24:21 · 307 阅读 · 0 评论 -
LeetCode Add Binary
原题链接在这里: https://leetcode.com/problems/add-binary/这道题与Plus One相似。都是维护一个currentDigit(%) 和一个carryDigit(/). Time O(max(m,n)), Space O(max(m,n)), m = a.length(), n = b.length()Note:1. 注意是从String原创 2015-08-15 09:36:03 · 310 阅读 · 0 评论 -
LeetCode Power of Two
原题链接在这里:https://leetcode.com/problems/power-of-two/思路:n一直除以2,直到1,若中间过程出现非偶数,就返回false。Note: 1 也是power of two, 2的零次方。 AC Java:public class Solution { public boolean isPowerOfTwo(int n) {原创 2015-08-15 08:39:09 · 274 阅读 · 0 评论 -
LeetCode Rectangle Area
原题链接在这里:https://leetcode.com/problems/rectangle-area/思路: 方块1面积 + 方块2面积 - 重叠面积Note: 算重叠的面积时会有overflow,并且很难发现. Math.min(C,G) 之前必须加 cast, 原来写(long)(Math.min(C,G) -Math.max(A,E))会报错是因为Math.min(C原创 2015-08-15 07:56:55 · 743 阅读 · 0 评论 -
LeetCode Integer to Roman
原题链接在这里:https://leetcode.com/problems/integer-to-roman/与Roman to Integer相呼应。采用贪心算法。之所以需要考虑900,400,90,40这些情况而不考虑800,300,200,80,30,20这些情况是因为:只有左侧加有特罗马字符的才需要添加,右侧加罗马字符可以等下一位。e.g. num = 8, 加"V",然后剩下原创 2015-08-14 11:39:11 · 288 阅读 · 0 评论 -
LeetCode Roman to Integer
原题链接在这里:https://leetcode.com/problems/roman-to-integer/取当前数值若是比之前的小,就正常加上当前数值,若是比之前位大说明刚才加错了,需要先减掉在加上(cur-pre).e.g. "XIV", at the beginning, res = 10. When i = 1, cur = 1, pre = 10, curpre, res =原创 2015-08-14 04:02:34 · 299 阅读 · 0 评论 -
LeetCode Excel Sheet Column Title
原题链接在这里: https://leetcode.com/problems/excel-sheet-column-title/刚开始以为是简单地26进制,结果有个特殊情况就是"Z", n=26, return "Z"; n = 52, return "AZ". 当current digit 是26时,要把当前位increase 26,并且总体的值要减去26,因为when n = 52, it原创 2015-08-14 00:20:13 · 345 阅读 · 0 评论 -
LeetCode Excel Sheet Column Number
原题链接在这里:https://leetcode.com/problems/excel-sheet-column-number/这道题与Excel Sheet Column Title相呼应。Time O(n), Space O(1).注意cast时后面的数要加个整体的括号。AC Java:public class Solution { public int title原创 2015-08-14 00:37:10 · 317 阅读 · 0 评论 -
Ugly Number II
原题俩接在这里:https://leetcode.com/problems/ugly-number-ii/是Ugly Number的进阶版。找出第n个ugly number.是维护一个dp数组,每一个ugly number 都是由之前的一个unly number 乘以2,3或者5得到的.i2, i3, i5记录了分别乘了多少个2, 过少个3, 多少个5. 同时这三个也是index用来调原创 2015-09-15 06:21:33 · 501 阅读 · 0 评论