409. Longest Palindrome:用hashtable,逢双则用,逢单则加count-1,最后再加一
412. Fizz Buzz:没什么写的
414. Third Maximum Number: 记录最大值和第二大的值和第三大的值,然后每个值进来先和最大值比较,小于最大值再和第二大的值比较,依此类推,通用的方法是创建一个最小堆,每来一个数就和堆顶比较一下, 如果大于堆顶就pop and push,最后的堆顶就是最小值
415. Add Strings: 注意carry的数就可以了
422. Valid Word Square: 两层循环,只是内层循环的时候要注意当前list的长度
434. Number of Segments in a String:又是一道意义不明的题目
437. Path Sum III: 要对所有的节点都做一次path sum,然后path sum的计算是通过简单的backtracking来做
438. Find All Anagrams in a String:有点fix window 的意思,fix window的解法就是左边减一位,右边加一位,检查当前的范围。还有一个要点就是字符可以map到array上来进行比较
441. Arranging Coins: 典型的数学题吧,(1+k)*k/2 是计算n的公式,所以对k进行binary search找到合适的k就可以了
447. Number of Boomerangs: 从程序上来讲这题不难,把其中一个点作为anker,然后计算其它点到这个点的距离记录同距离点的个数k,然后对于所有同距离的点其实就是进行一个排列P(2,k) = k*(k-1),最后对所有点求和就可以了。我一开始也没什么思路,其实是想太复杂了,有时候先用暴力求解,然后再考虑优化就可以了
448. Find All Numbers Disappeared in an Array: 首先这题要用hash,但是hash要用额外空间,而array本身其实就提供了hash的条件。所以把所有数都改成负数来记录hash过的值。
453. Minimum Moves to Equal Array Elements: 又是个数学题,没思路,在math题里面就是要找规律,规律1: sum + m * (n - 1) = x * n , 规律2: x = minNum + m,最后解个方程得到sum - minNum * n = m
455. Assign Cookies: greedy的方法,让需求更多的小朋友先被满足。
459. Repeated Substring Pattern: 这题比较朴素的方法是,找出len(s)%p==0的所有为prime的p的值,然后用len(s)/p也就是变成了可能重复substring的长度,然后再逐个比较,也算是自己亲手写出来了。比较tricky的方法是把(s+s)[1:-1],把s双倍后斩头去尾,然后看看s在不在这个string里,如果在的话,那么说明它可以表示成某个substring的repeat,不在的话,就不可以。
461. Hamming Distance: xor然后count有多少个1
463. Island Perimeter: 计算每个cell的周长然后加起来
475. Heaters: 对每一个房间进行二分搜索在heater中的位置,然后求最小距离
476. Number Complement: 对number中的每一个1和0进行相应的翻转。可以用res += 1 << pos的方式来补充高位1
485. Max Consecutive Ones: 记录左边界和右边界就可以了
492. Construct the Rectangle: sqrt一下,然后依次减少吧。
6.23 - easy总结6
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
- 原文链接:http://androidweekly.net/issues/issue-161 点击订阅邮箱第一时间...