An intuitive 2D DP: dp[i][j] = min(grid[i-1][j-1] + dp[i-1][j], grid[i-1][j-1] + dp[i][j+1])class Solution {public: int minPathSum(vector > &grid) ...
分类:
其他好文 时间:
2014-08-03 07:50:54
阅读次数:
254
Nothing special. A typical list manipulation problem.class Solution {public: ListNode *partition(ListNode *head, int x) { if (!head) return ...
分类:
其他好文 时间:
2014-08-03 07:50:15
阅读次数:
214
做leetcode第二题的时候,发现合并有序数组是一个很有意思的问题,于是,总结如下,部分内容来源于网络各位大神.
第一种方法:
合并调用sort.
即是将两个数组合并在一个数组里面,然后对合并后的数组调用sort函数即可.
class Solution:
def getArray(self, A, B) :
for item in B :
...
分类:
其他好文 时间:
2014-08-02 21:02:14
阅读次数:
259
问题:从起点到终点总共有多少条路径分析:f[x,y]=f[x+1,y]+f[x,y+1],用记忆化搜索就可以解决了class Solution {public: int num[110][110]; int dfs(int m,int n,int x,int y) { ...
分类:
其他好文 时间:
2014-08-02 20:39:33
阅读次数:
165
题意:二叉树的最小深度注意 1.当root为空的时候直接返回0,因为MIN赋值很大,所以如果不单独预判的话会返回MIN 2.判断树的深度应该到叶子节点,也就是左右子结点都为空的那个结点 3.树的深度的根节点深度为1class Solution {public: void dfs(...
分类:
其他好文 时间:
2014-08-02 20:39:13
阅读次数:
233
问题:上楼每次能走一步或两步,有多少种走法class Solution {public: int a[1000]; int dfs(int n) { if(n<0) return 0; if(n==0) return 1; if(a[n])...
分类:
其他好文 时间:
2014-08-02 18:19:03
阅读次数:
140
问题:有序合并两个有序链表分析:归并排序的合并部分class Solution {public: ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { ListNode *helper=new ListNode(0); ...
分类:
其他好文 时间:
2014-08-02 18:17:03
阅读次数:
170
问题:交换相邻的两个结点分析:建立新链表每次插入ret->next后在插入ret,需要在判断下若最后只有一个结点不需要交换,注意每次交换了结点要把尾结点的下一个指向空class Solution {public: ListNode *swapPairs(ListNode *head) { ...
分类:
其他好文 时间:
2014-08-02 18:16:13
阅读次数:
178
题意:将三种颜色排列,相同的颜色放在一起,依据红绿蓝012的顺序放置分析:统计红绿蓝分别有多少个,然后重新给数组赋值class Solution {public: void sortColors(int A[], int n) { int num1,num2,num3,i; ...
分类:
其他好文 时间:
2014-08-02 18:15:43
阅读次数:
179
问题:最大连续子窜和是多少分析:动态规划,定义max记录最大值,sum记录以i结束的连续子窜的最大值class Solution {public: int maxSubArray(int A[], int n) { int sum; int MAX=A[0]; ...
分类:
其他好文 时间:
2014-08-02 17:55:23
阅读次数:
191