2017圣诞回国刷题打卡

计划:

每天5道题

看公开课视频2hours

锻炼一小时

每天写刷题日记

即日奏效。

2017.12.29

1.  two sum 给一串数字,返回满足一个sum的两个数字的index

思路:用map,看到一个数字,先查map中有没这数字,没有的话把sum-这个数字的数存到map中

15. 3Sum 给一串数字,要找三个数字加起来=0,返回满足条件的solution set

思路:先sort,设置一个low指针和一个high指针,for loop遍历数列,每个数字的相反数就是我们要找的另外两个数字。�如果low+high比这个数字小,low++,比数字大,high-,如果等于,放到list中,low++, high- -。

20. Valid Parentheses  检查一个由【】{}()组成的string是不是valid的

思路:用stack,每次如果看到【{(, push进去}】),直到没有左包围,检查pop出去的是不是等于string剩下的。

53.Maximum Subarray   一串数字中return连续数字的最大和

DP!再加一个int的array,存储每到这个index之前,最大的和。每次算这个array的next element,如果原array这个位置的数字大于0,说明加上会让整体更大,dp【i】等于加上这个数字。如果小于0,则这个dp的当前index的得数=dp[i-1]+0

121. Best Time to Buy and Sell Stock   一串数字,求之后的和之前的差最大是多少(profit)

一个for loop,�keep两个变量,minPrice 和 maxProfit。每次发现price更小就update最小价格。profit=检查是不是这个数字之前的某个max value


你可能感兴趣的:(2017圣诞回国刷题打卡)