LeetCode
angelewings
这个作者很懒,什么都没留下…
展开
-
Clone Graph,bfs,map
UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) { if(node==NULL) return NULL; UndirectedGraphNode *h,*p,*q; queue queue; map mp; h=原创 2014-10-19 16:35:00 · 358 阅读 · 0 评论 -
Word Ladder,bfs
开始的想法: bfs,像树的层序遍历一样原创 2014-10-19 21:57:15 · 592 阅读 · 0 评论 -
Rotate Image 模拟
方法一:按照对角线反转一次,每行在反转一次原创 2014-10-21 10:09:02 · 436 阅读 · 0 评论 -
Surrounded Regions ,BFS
从外面往 class Solution { struct point{ int x,y; point(int a,int b):x(a),y(b){} }; public: void solve(vector> &board) { if(board.empty()||board.size()==0||boar原创 2014-10-21 12:20:42 · 377 阅读 · 0 评论 -
Divide Two Integers
int divide(int dividend, int divisor) { long long a = llabs(dividend); long long b = llabs(divisor); long long ans = 0; while (a >= b) { int shift原创 2014-12-07 22:48:45 · 417 阅读 · 0 评论 -
pow(x, n),有时递归的时候要注意用变量保存中间结果
double pow(double x, int n) { if(n==0) return 1; else if(n==1) return x; else if(x==0) return 0; if(n原创 2014-12-07 15:36:12 · 944 阅读 · 0 评论 -
Merge k Sorted Lists ,优先级队列(堆)的使用
struct cmp{ bool operator() (ListNode *p,ListNode *q){ return p->val>q->val; //> 小根堆 } }; ListNode *mergeKLists(vector &li原创 2014-12-07 15:18:28 · 639 阅读 · 0 评论 -
Sqrt(x) ,二分法,牛顿迭代法
一、二分法 int sqrt(int n) { int left=0,right=n; while(left long long mid=(left+right)>>1; //mid必须为long long,否则设置temp为long long不管用 long long temp=mid*mid;原创 2014-12-09 19:11:56 · 540 阅读 · 0 评论 -
Longest Valid Parentheses,二维动态规划、一维动态规划、stack
一、二维动态规划 int longestValidParentheses(string s) { int len=s.length(),maxLen=0; bool valid[len][len]; //valid[i][j]表示s[i]...s[j]是否是有效的 memset(valid,false,sizeof(valid));原创 2014-12-10 10:31:34 · 1251 阅读 · 0 评论 -
Binary Tree Zigzag Level Order Traversal,bfs,层序遍历
class Solution { public: vector > zigzagLevelOrder(TreeNode *root) { vector> res; vector oneRes; if(root==NULL) return res; queue q原创 2014-10-21 10:41:33 · 474 阅读 · 0 评论 -
Wildcard Matching
和Regular Expression Matching原创 2014-11-04 10:48:46 · 455 阅读 · 0 评论 -
Symmetric Tree ,bfs
标签说是 class Solution { public: bool isLevelSym(vector arr){ if(arr.empty()||arr.size()==1) return true; if(arr.size()%2==1) return false; boo原创 2014-10-23 10:07:56 · 559 阅读 · 0 评论 -
Validate Binary Search Tree
二叉树中序遍历一遍,看是不是严格原创 2014-10-23 11:09:20 · 309 阅读 · 0 评论 -
Recover Binary Search Tree
solution using O(n) space,二叉树中序遍历原创 2014-10-25 15:40:14 · 391 阅读 · 0 评论 -
Word Break ,dp
bool wordBreak(string s, unordered_set &dict) { if(s.empty()||dict.empty()) return false; int len=s.length(); bool flag[len]; memset(flag,false,sizeof(原创 2014-10-30 11:18:17 · 425 阅读 · 0 评论 -
Word Break II
和上一题的思路基本一致, class Solution { public: void changeOrder(string& str){ int i=0,j=0; for(;i if(str[i]==' '){ reverse(&str[j],&str[i]);原创 2014-10-30 18:00:15 · 543 阅读 · 0 评论 -
Permutations II stl next_permutation的用法
vectorint> > permuteUnique(vectorint> &num) { vectorint> > ret; sort(num.begin(), num.end()); ret.push_back(num); while(next_permutation(num.begin(), num.en原创 2014-11-18 15:14:57 · 414 阅读 · 0 评论 -
Regular Expression Matching
首先明确一点s中是没有*和.的原创 2014-11-04 10:00:56 · 387 阅读 · 0 评论 -
int与string互转
int转string(注:itoa不是标准函数,OJ平台可能不接受) int n = 10; char temp[32]; sprintf(temp, "%d", n);//long long 格式化 %lld string str;str = temp; 或者 string(temp) string转int string str = "test"; int转载 2014-12-16 21:47:25 · 481 阅读 · 0 评论