自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

文森的学术之路

我就问你满不满足...专注GPU一百年

  • 博客(81)
  • 收藏
  • 关注

原创 Text Justification

这一题需要注意两个点,a、当该行只放一个单词时,空格全部在右边 b、最后一行中单词间只有一个空格,其余空格全部在右边。然后只要贪心选择,在一行中尽量放多的单词。[1]

2014-08-04 13:53:06 391

原创 LRU Cache & Max Points on a Line & Valid Number

(1) LRU CacheLRU简洁明了的算法描述[1],就是用一个双向链表+map,不用map查找的话就要遍历了。。。时间复杂度就上升了。双向链表的好处就是。。。用map定位到那个节点,然后很方便的移动或者删除啊什么的,单向就做不到啦,因为你要删除还要找prev双向链表就不写了,用stl的list代替

2014-08-03 10:51:07 505

原创 Surrounded Regions & Wildcard Matching

(1) Surrounded Regions 首先,外围一圈上的O肯定会保留下来。然后,从外围的O能达到的O也要保留。剩下其他的O就是内部的O。所以方法就是从外围的一圈进行DFS算法。特殊用例:只有外围轮廓没有内部。比如长或者宽小于等于2,此时不存在被包围的'X'。[1]参考:[1]

2014-08-02 15:07:05 360

原创 Decode Ways & String to Integer & Reverse Words in a String

(1) Decode Ways 第一: s[i-1]不能是0,如果s[i-1]是0的话,number[i]就只能等于number[i-2]第二,s[i-2,i-1]中的第一个字符不能是0,而且Integer.parseInt(s.substring(i-2,i))获得的整数必须在0到26之间。[1]class Solution {private: bool isValid

2014-08-02 09:15:32 406

原创 Substring with Concatenation of All Words & Median of Two Sorted Arrays & Divide Two Integers

(1) Substring with Concatenation of All Words

2014-08-01 10:18:21 421

原创 Word Ladder I && II

(1) Word LadderBFS(宽度优先搜索),但是我们可以假想构建一个图,其中图中的每个顶点都是我们的元素,点和点是如何联系起来的呢?如果一个单词通过改变一次字母,能够变成另外一个单词,我们称之为1 edit distance 距离(是不是想起了leetcode中edit distance那道题目了?)所以,图中的所有相邻元素都是edit distance 距离为1的元素。那么,我们只

2014-07-31 20:53:56 675

原创 Interleaving String & Candy & Minimum Window Substring

(1) Interleaving String动态规划,

2014-07-31 11:25:13 413

原创 Simplify Path & Word Search & Longest Valid Parentheses

(1) Simplify Path用栈来做,先把输入字符串以'/'为分隔符分来,如果遇到'.'或者空输入什么都不做。如果遇到'..'就弹栈。然后每从栈里退出一个元素就用'/'连接起来,注意顺序。

2014-07-29 11:00:54 287

原创 Insert Interval & *Regular Expression Matching & Binary Tree Maximum Path Sum

(1) Insert Interval 利用merge intervals的成果:bool comp(Interval a,Interval b) { return a.start < b.start; } class Solution {private: vector merge(vector &intervals) {

2014-07-28 15:10:18 387

原创 Restore IP Addresses & Sort List & Reorder List

(1) Restore IP Addressesdfs, 几点注意的地方[1]:1. 在验证字符串是否是数字的时候,要注意0的情况,001,010,03都是非法的。所以,如果第一位取出来是0,那么我们就判断字符串是否是"0",不是的情况都是非法的。2. 取字符串的时候,注意位数不够的问题,不仅

2014-07-27 13:57:08 360

原创 Merge Intervals & *Longest Palindromic Substring & Multiply Strings

(1) Merge Intervals先对区间按照左边界排序,然后顺序扫描,合并重叠的区间即可。 在原区间数组上操作,不使用额外的空间,但是需要删除多余的区间,这样会移动数组元素.

2014-07-26 16:40:49 421

原创 Sudoku Solver & Word Break I && *II

(1) Sudoku Solver注意细节[1]:

2014-07-25 16:43:51 533

原创 Implement strStr() & Largest Rectangle in Histogram & Maximal Rectangle

(1) Implement strStr() 暴力法

2014-07-23 20:24:36 315

原创 Permutation Sequence

可以用递归遍历所有可能的排列 然后找出第k个。这样时间复杂度会很高.仔细想一下可以找到一下规律:n个数的的第k个排列为:a1, a2, a3,...an;接下来我们一个一个数的选取,如何确定第一个数应该是哪一个呢?选取第一个数后剩下全排列的个数为(n-1)! 所以选取的第一个数应该为第 K1 = k;a1 = K1/(n-1)!位数字同理当选完a1后只剩下n-1个数字,

2014-07-22 20:56:24 324

原创 Longest Substring Without Repeating Characters & Rotate List

(1) Longest Substring Without Repeating Characters 此题用一个hash table保存每个字符上一次出现过的位置。从前往后扫描,假如发现字符上次出现过,就把当前子串的起始位置start移动到上次出现过的位置之后——这是为了保证从start到i的当前子串中没有任何重复字符。同时,由于start移动,当前子串的内容改变,start移动过程中经历的字

2014-07-21 19:49:12 269

原创 First Missing Positive & Clone Graph & Sqrt(x)

(1) First Missing Positive根据[1]: 贪心的策略,O(n)的循环把数字放到其对应的位置,即满足A[i]=i+1,就能保证每次交换就是有意义的。如果当前位置已经存在正确的值,就不交换,否则会死循环。最后在扫描一遍,如果当前位置上数字不对就输出,如果都正确,就没有漏的数字,输出n+1。

2014-07-19 16:10:33 329

原创 Scramble String

根据[1]:使用了一个三维数组boolean result[len][len][len],其中第一维为子串的长度,第二维为s1的起始索引,第三维为s2的起始索引。result[k][i][j]表示s1[i...i+k]是否可以由s2[j...j+k]变化得来。class Solution {public: bool isScramble(string s1, string s2) {

2014-07-18 16:20:10 456

原创 Copy List with Random Pointer & Add Two Numbers & Valid Palindrome

(1) Copy List with Random Pointer

2014-07-17 16:00:38 331

原创 Insertion Sort List & Gas Station & Distinct Subsequences

(1) Insertion Sort Listclass Solution {public: ListNode *insertionSortList(ListNode *head) { if(!head || !head->next) return head; ListNode begin(0);

2014-06-19 14:23:53 379

原创 Recover Binary Search Tree & Edit Distance & Reverse Nodes in k-Group

(1) Recover Binary Search Tree这题的要点就是想到使用树的递归中序遍历,因为二叉查找树合法的情况,中序遍历的值是从小到大排列的。当出现当前值比前一个值小的时候,就是存在不合法的节点。用pre存中序遍历时当前节点的前一个节点,方便值的大小对比,用s1,s2记录这两个不合法序列的位置,s1存较大的值,s2存较小的值。最后把两个不合法的值交

2014-06-18 14:54:20 552

原创 Reverse Linked List II && Add Binary

(1) Reverse Linked List IIclass Solution {public: ListNode *reverseBetween(ListNode *head, int m, int n) { ListNode *begin,*end, *pre, *cur; ListNode init(0); i

2014-06-05 15:22:32 414

原创 Palindrome Partitioning I && II

(1) Palindrome Partitioning动态规划,

2014-06-04 15:39:54 360

原创 Combination Sum I && II && Validate Binary Search Tree

(1) Combination Sum利用深度优先遍历BFS[1]:

2014-06-03 15:37:35 470

原创 Binary Tree Zigzag Level Order Traversal & Partition List & Letter Combinations of a Phone Number

(1) Binary Tree Zigzag Level Order Traversal class Solution {public: vector > zigzagLevelOrder(TreeNode *root) { vector> ret; int flag=0; queue que; if(

2014-05-23 17:59:55 416

原创 Triangle & Count and Say

(1) Triangle 动态规划,从下往上gengx

2014-05-22 16:05:31 582

原创 Longest Consecutive Sequence & Longest Common Prefix & Search for a Range

(1) Longest Consecutive Sequence根据[1]:

2014-05-21 18:28:35 323

原创 Valid Sudoku & Subsets I&&II & Flatten Binary Tree to Linked List & Jump Game I&&II

(1) Valid Sudoku就是每一行,每一列,每一个方块的check[1]:

2014-05-14 20:24:56 464

原创 Minimum Depth of Binary Tree & Length of Last Word & Trapping Rain Water

(1) Minimum Depth of Binary Treeclass Solution {private: void solve(TreeNode *root, int curDep, int &minDep){ if(!root) return; if(!root->left && !root->right)

2014-05-10 16:52:00 346

原创 [accTC开发] 第二周进度

(1)已完成进度已经可以

2014-05-10 14:54:52 384

原创 Palindrome Number & Remove Nth Node From End of List & Sum Root to Leaf Numbers

(1)Palindrome Number[1],注意溢出情况:

2014-05-08 10:41:35 369

原创 Spiral Matrix I & II && Search in Rotated Sorted Array I & II

(1) Spiral Matrix一圈圈循环,主要难点在于

2014-04-29 15:55:31 342

原创 Container With Most Water & Path Sum I && II

(1) Container With Most Water取最左边的为left,最右边的为right,所有可能比这种大的情况只能是这两个高度较小的那一端向中间移动。一直循环这个动作,最大值肯定在其中。

2014-04-27 17:39:15 319

原创 N-Queens && II and Permutations && II && Next Permutation

(1) N-Queens典型的N皇后问题[1]:class Solution {private: void print(int *q, vector> &ret,int n) { vector tmp; for(int i=1;i<=n;i++) { string s(n,'.');

2014-04-26 17:42:04 630

原创 Search a 2D Matrix & Set Matrix Zeroes & Combinations

(1) Search a 2D Matrixclass Solution {public: bool searchMatrix(vector > &matrix, int target) { int i=0,j=matrix[0].size()-1; while(i=0) {

2014-04-25 18:02:26 504

原创 Rotate Image & Binary Tree Postorder Traversal & Minimum Path Sum

(1) Rotate Image根据[1]:

2014-04-25 18:00:19 280

原创 Sort Colors & Plus One

(1) Sort Colors参考了[1]:class Solution {public: void sortColors(int A[], int n) { int r=0,b=n-1,cur=0; while(cur<=b) { if(A[cur]==0)

2014-04-24 17:26:56 357

原创 Binary Tree Level Order Traversal I & II

(1) Binary Tree Level Order Traversal

2014-04-24 16:31:05 304

原创 Swap Nodes in Pairs & Symmetric Tree & Gray Code

(1) Swap Nodes in Pairs

2014-04-17 20:41:09 426

原创 Balanced Binary Tree & Pascal's Triangle I & II

(1) Balanced Binary Tree

2014-04-17 20:36:26 316

原创 Convert Sorted Array & List to Binary Search Tree

(1) Convert Sorted Array to Binary Search Tree根据[1]参考

2014-04-17 17:04:38 320

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除