1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 2 3 4 5 6 7 8 9 ··· 22 下一页

2014年1月16日

摘要: 本来以为要错很多次的,结果在两次CE之后就AC了....感觉不科学....按照题目中的描述来贪心就好开始就给每个word中间插一个字符,看能插入多少...到超过L了,那么就把这些作为一行,然后不够L的部分再在中间补空格最后一行单独处理...class Solution {public: vector fullJustify(vector &words, int L) { int start = 0; int size = words.size(); int len = words[0].size(); vector ans; ... 阅读全文

posted @ 2014-01-16 14:22 1957 阅读(1287) 评论(0) 推荐(0) 编辑

摘要: binary searchclass Solution {public: int sqrt(int x) { long long base = static_cast(x); long long l = 0; long long r = base / 2 + 1; while(l ( mid); if(mid*mid (r); }}; 阅读全文

posted @ 2014-01-16 01:24 1957 阅读(145) 评论(0) 推荐(0) 编辑

2014年1月15日

摘要: 从1..n枚举root然后左边的是左子树,右边的是右子树。递归构造就好。/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector make(int start , int end) { vectorresult; ... 阅读全文

posted @ 2014-01-15 18:56 1957 阅读(341) 评论(0) 推荐(0) 编辑

摘要: 1 / \ 2 3 / \ \ 4 5 7 1 -> NULL / \ 2 -> 3 -> NULL / \ \ 4-> 5 -> 7 -> NULL用O(1)的空间那就利用next节点,一层一层的来遍历好了首先是root,我们把它的left和right连起来然后root切换到下一层然后遍历下一层的每个节点(因为next连了的再分别把他们的left,right什么的连起来用两个变量就ok了一个prev记录当前层前一节点是啥(用来连接的一个next记录下一层的... 阅读全文

posted @ 2014-01-15 17:15 1957 阅读(1620) 评论(1) 推荐(1) 编辑

摘要: 又sb了,去找什么X关X毛线的事情,我们只需去找边缘的O这些都是靠近边缘的不用变X所以按BFS一次,靠近边缘的O都不用变X第一次用C++的lambda 哈哈哈class Solution {public: void vist(vector >&board, int x , int y) { typedef pair state; int n = board.size(); int m = board.front().size(); auto isValid = [&](const state& s) ... 阅读全文

posted @ 2014-01-15 16:23 1957 阅读(1273) 评论(0) 推荐(0) 编辑

2014年1月14日

摘要: 简单DFS/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: void dfs(TreeNode* root , int sum , vector >& ans , vector& tmp) { if(root == null... 阅读全文

posted @ 2014-01-14 22:05 1957 阅读(160) 评论(0) 推荐(0) 编辑

摘要: 按Largest Rectangle in Histogram的方法做每行求一次max每次更新的height就是当前列到0行那列0的个数(包含当前行然后用height来求largest rectangleclass Solution {public: void getLeft(const vector& h , vector& l) { int size = h.size(); for(int i = 1 ; i 0 && h[i] & h, vector& r) { int size = h.size(); for(int i ... 阅读全文

posted @ 2014-01-14 20:31 1957 阅读(789) 评论(0) 推荐(0) 编辑

摘要: 递归删除- -/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *deleteDuplicates(ListNode *head) { if(head == nullptr || head -> next == nullptr) return head; ... 阅读全文

posted @ 2014-01-14 18:44 1957 阅读(230) 评论(0) 推荐(0) 编辑

摘要: 和上一题同理,不过root在postorder的最后/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: template TreeNode* make(Iter iFirst , Iter iLast , Iter pFirst , ... 阅读全文

posted @ 2014-01-14 18:05 1957 阅读(205) 评论(0) 推荐(0) 编辑

摘要: 从前序中序遍历来重构二叉树经典题,从期末考试到考研什么的应该都有前序遍历第一个肯定是root在inorder里面去找root左边的是leftsubtree , 右边的是rightsubtree然后preorder除去order,后面lifetsubtree.size 个是左边的, rightsubtree.size个是右边的递归构造tree就好了/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNod... 阅读全文

posted @ 2014-01-14 17:20 1957 阅读(2632) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 22 下一页