摘要: 题意: 给出一个m*n的矩阵,robot要从[1][1]走到[m][n],每次只能往下/右走,问有多少种走法?思路: DP的经典问题。先将[1][1]设为1,然后两种走法就是分别用[i][j]去更新[i+1][j]和[i][j+1]。 观察一下数组的更新次序就可以知道,这很像完全背包的更新方式... 阅读全文
posted @ 2015-10-29 23:01 xcw0754 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一个序列,求至少含一个元素的最大子段和?思路: 跟求普通的最大子段和差不多,只不过需要注意一下顺序。由于至少需要一个元素,所以先将ans=nums[0]。接下来可以用sum求和了,如果小于0就重置为0,表示重新开始累加。注意代码中两个if的顺序不可以呼唤。 1 class Soluti... 阅读全文
posted @ 2015-10-29 20:27 xcw0754 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一个升序的数组,如果target在里面存在了,返回其下标,若不存在,返回其插入后的下标。思路: 来一个简单的二分查找就行了,注意边界。 1 class Solution { 2 public: 3 int searchInsert(vector& nums,int target... 阅读全文
posted @ 2015-10-29 19:44 xcw0754 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题意: 一棵BST有n个节点,每个节点的key刚好为1~n。问此树有多少种不同形态?思路: 提示是动态规划。 考虑一颗有n个节点的BST和有n-1个节点的BST。从n-1到n只是增加了一个点n,那么点n可以放的地方并不多,而且有一些规律。由于n是最大的,所以必定是在最右边,但是它的上面和下面也... 阅读全文
posted @ 2015-10-29 19:42 xcw0754 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 附:vim的入门书,感觉比vimtutor还要赞一点。 看完《每天一个linux命令系列 》基本上就差不多了,但是还是有一些需要补上的。 日常+生癖命令: (1)删除软件:sudo apt-get autoremove --purge 软件名 (2)更新源:sudo apt-get update ( 阅读全文
posted @ 2015-10-29 16:58 xcw0754 阅读(259) 评论(0) 推荐(0) 编辑