<java>
two sum(哈希表):
用到了hashmap get/put 方法。 get(key,value)得到key对应的value,put同理。hashmap 实际是一个散列表,将key-value存放进hash表,先找到key,再通过key找到value,因此一个相同的key可以有好几个value。因此只需要遍历一次即可求解。
reverse(求回文):
Math.pow(double, int); check whether x的低位 overflow->x>Integer.Max_value/10;
Palindrome Number (求回文):
判断是不是回文数,这个很简单,和上面的reverse其实是一类题,先把数reverse一下,如果和原来的数相等就是回文数。
Roman to Integer(用哈希表)
当有映射时都可以用哈希表;简单,简单;
66. Plus One(array)
加一问题,只要用carry记录是否有进位就行了。tips:数组克隆的方法
Merge Sorted Array:
常规方法
Pascal's Triangle:
利用ArrayList<>实现,是一种简单的动态规划。add()
最大子序列和好难。。学不懂
1、暴力求解 2、暴力求解优化 3、分治:解在左边,解在右边,解分跨两边i 4、动态规划:求规划原则,难想到;前序序列不能为负 |
70. Climbing Stairs:( 动态规划、递归)
递归从后往前,动态规划从前往后;递归可以用数组减小问题的复杂度。