- 博客(35)
- 资源 (18)
- 收藏
- 关注
原创 poj 3278 BFS
思路: BFS。 BFS的目标就是求最短(可能是最短路径长度,可能是最短路径)。本题就是通过BFS来求最短路径长度。每次有三个方向来扩展状态(想象成三叉树)。
2015-07-25 17:13:50 543
原创 poj 1702 平衡三进制
思路: 平衡三进制。 先将n转换为3进制,再转化为平衡3进制,-1项全部移到右面,左右面分别输出。平衡三进制具体转化方法 先转化为用0,1,2表示的3进制,然后通过“借位”转换 若对应的系数为2,则变为-1,下一位+1 若对应的系数为3,则变为0,下一位+1 为0或1时不变
2015-07-24 21:41:09 1411
原创 Machine Learning Foundations 第13节-第16节
機器學習基石 (Machine Learning Foundations) 学习要点小结: 课程来自coursera: https://class.coursera.org/ntumlone-002/lecture
2015-07-22 11:16:15 455
原创 Machine Learning Foundations 第9节-第12节
機器學習基石 (Machine Learning Foundations) 学习要点小结: 课程来自coursera: https://class.coursera.org/ntumlone-002/lecture
2015-07-21 20:31:27 406
原创 Machine Learning Foundations 第5节-第8节
機器學習基石 (Machine Learning Foundations) 学习要点小结: 课程来自coursera: https://class.coursera.org/ntumlone-002/lecture
2015-07-21 14:46:28 420
原创 Machine Learning Foundations 第1节-第4节
機器學習基石 (Machine Learning Foundations) 学习要点小结: 课程来自coursera: https://class.coursera.org/ntumlone-002/lecture
2015-07-19 21:54:22 505
原创 Maximal Rectangle
思路:方法一:时间复杂度O(N^2),空间复杂度O(1)。 依据上一题 Largest Rectangle in Histogram 的思路,可以将给定的matrix转化为包含矩形信息的数组。
2015-07-17 22:07:47 359
原创 Largest Rectangle in Histogram
思路:方法一:TLE。时间复杂度O(N^2),空间复杂度O(1)。 对于每一个柱子,往左右两边扩展,不断更新最大的area。 往右扩展:如果右边柱子比当前柱子高,则往右扩。相当于剪枝。 往左扩展:找到目前为止最低的柱子,以此来构成矩形。方法二:stack控制。时间复杂度O(N),空间复杂度O(N)。
2015-07-17 19:57:32 384
原创 Minimum Window Substring
思路:两个指针控制,尾指针记录当前到了哪个位置,头指针记录当前识别的最小t的开始位置,通过控制头尾指针的移动标记最小window的位置。 时间复杂度O(N),空间复杂度O(1)。
2015-07-15 22:28:02 497
原创 Trapping Rain Water Array+技巧
思路:数组+技巧。时间复杂度O(N),空间复杂度O(1)。找到最高的柱子的位置(可能不止一个,选任意一个都行),这样,将array分成左右两部分: (1)遍历左部分,保存一个当前认为的最高的柱子的高度h,如果所经过的柱子高度 h' 比 h 小,那么,h-h' 一定是被trap住的;时刻更新当前认为的最高柱子。 (2)对于右半部分也是一样。
2015-07-10 22:24:09 374
原创 LeetCode First Missing Positive
思路:要求找到第一个应该属于[1,nums.size()]范围内的正数却又目前不在的。从头开始,挨个把各个数换到相应地位置,然后再扫一遍数组,看哪一个数不在它应在的位置上。时间复杂度O(N),空间复杂度O(1)。
2015-07-10 09:02:04 310
原创 LeetCode Edit Distance DP
思路:方法一:DP。时间复杂度O(N*M),空间复杂度 O(N*M)。方法二:DP+滚动数组。时间复杂度O(N*M),空间复杂度 O(N)。
2015-07-09 22:08:24 533
原创 LeetCode Sudoku Solver 回溯
思路:DFS。时间复杂度O(9^4),空间复杂度O(1)。 下棋添子,下完一步下另一步,不行就回溯。
2015-07-08 11:20:37 454
原创 Insert Interval Array
思路:方法一: 类似上一题思想,不断合并,标记,最后在排序,写的很烂。 Runtime Error 原因应该是爆栈了。方法二:TLE。方法三:AC。
2015-07-06 21:47:29 554
原创 Leetcode Merge Intervals 模拟
思路: 先根据start值排序,然后两两merge,在merge阶段,如果有一个区间无用的话,设该区间的start值大于end值,最后delete这样的非法区间。时间复杂度O(NlogN),空间复杂度O(N)。 *
2015-07-06 15:16:32 310
原创 N-Queens II DFS
思路: DFS。与上一题相同,直接求出解的个数即可。不必记录所有的解。 时间复杂度O(N!),空间复杂度O(N)。
2015-07-06 11:03:16 392
原创 Reorder List 链表操作
思路: 链表操作的基本操作。属于经典基础题型。先找到中间节点,然后后半段反转,再插入到前半段中。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} *
2015-07-05 20:13:49 394
原创 Linked List Cycle II
思路: 模拟。时间复杂度O(N),空间复杂度O(1)。同上一题一样,需要设置指针恰当的位置,使得指针满足一定条件时得到解。
2015-07-05 16:05:04 320
原创 Linked List Cycle
思路: 设置一快一慢指针,快指针一次移动2个节点,慢指针一次移动1个节点,如果快指针遇到null,说明不存在环,反之,如果快指针遇到慢指针,说明存在环。因为若存在环,快指针一定会在某个时刻遇到慢指针,它们都会在环中兜圈子。/** * Definition for singly-linked list. * struct ListNode { * int val; * Lis
2015-07-05 11:36:15 368
原创 Gas Station
思路: 模拟。如果途经某一点,使得sum变负,说明刚经过的那点cost太大,应该考虑从下一点重新开始。 时间复杂度O(N), 空间复杂度O(1)。
2015-07-05 11:01:50 328
原创 ThinkPHP RBAC功能小结
使用的是ThinkPHP的RBAC模块。(ThinkPHP版本3.1)一、涉及到5个表: 用户表:user 角色表:role 节点表:node 用户角色关联表:role_user 权限表:access下面是ThinkPHP3.1版本给出的样例表,可以直接拿来用。CREATE TABLE IF NOT EXISTS `think_access` ( `role_id` smallint(
2015-07-03 22:11:13 1087
庖丁解牛中文分词工具
2014-03-25
简易记事本
2012-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人