- 博客(5)
- 收藏
- 关注
原创 4. Median of Two Sorted Arrays 【Hard】 分治法
看了题解才会做。题解是把取中位数的问题转化为了取第k小的数的问题。 题解的思路是:先判断两数组长度和m+n是奇数还是偶数。奇数则直接取两数组的第(m+n) / 2 + 1小的数,偶数则取第(m+n) / 2和第(m+n) / 2 + 1小的数取平均值。 取第k小的数的办法是:给定两数组a(长度为m)和b(长度为n)和k。
2017-09-22 21:08:11 166
原创 210. Course Schedule II 【Medium】 拓扑排序
思路:若此图无环,则任意方式DFS这个图,把所有节点以post值从大到小顺序排列,必定得到一个拓扑序列。 证明:首先,有环的图肯定不存在拓扑序列。排除有环的情况。无环即无back edge。 然后,从书上的定义可知,对于任意的图,只有back edge (u->v) 存在post(u) 那么对于这个无环图所有的edge (u->v), 应
2017-09-22 14:33:35 189
原创 207. Course Schedule【Medium】 DFS判断无环
一开始做这题的时候想用邻接矩阵来储存edge,后来发现bool类型是不能开2000*2000以上的二维数组的(上网查了查好像是因为栈的空间被编译器限制住了大小所以不能开这么大的二维数组),导致浪费了很多时间debug。后来用了邻接链表才解决了问题。 思路就是课堂上讲的:要判断这个课程安排是否会冲突,就是看这个图是否存在回路(环路)。 而存在环路的充要条件是DFS这个图后这个图不存在back
2017-09-21 22:56:36 336
原创 629. K Inverse Pairs【Hard】 动态规划
作死试了一个看起来比较简单的HARD题,刚开始看到题目还觉得有点思路,然而后来却发现没法降低时间复杂度。 我的思路如下:每次知道了第n个状态下所有k的情况(即知道所有a[1,2..n][k]),则n+1的情况便可求出来。 因为从n到n+1是相当于在原来的1,2..n的无序序列中加入n+1这个数,那么这个数,n+1,可以放置的位置有n+1位, 例如n=4时,n+1=5,加入5的
2017-09-21 16:28:36 165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人