1957

无聊蛋疼的1957写的低端博客
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 22 下一页

2014年1月3日

摘要: a^n = a^(n/2) * a(n/2)...二分class Solution {public: double epow(double x,int n){ if(n == 0) return 1; double tmp = epow(x , n / 2); if(n % 2 == 1) return tmp * tmp * x; else return tmp * tmp; } double pow(double x, int n) { if(abs(x - 0) < 1e-10)... 阅读全文

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

摘要: 双指针。。。经典题。。。注意一些边界TATclass Solution {public: string minWindow(string S, string T) { int start = 0; int end = 0; vectorcnt(256,0); vectorinc(256,0); int lens = S.size(); int lent = T.size(); for(int i = 0 ; i cnt[S[start]]) { inc... 阅读全文

posted @ 2014-01-03 00:33 1957 阅读(321) 评论(0) 推荐(0) 编辑

2014年1月1日

摘要: 简单题/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), le... 阅读全文

posted @ 2014-01-01 23:56 1957 阅读(146) 评论(0) 推荐(0) 编辑

2013年12月31日

摘要: 排好序的...中间是root , root左边是left,root右边是right递归建树./** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* createTree(vector&num , int start , in... 阅读全文

posted @ 2013-12-31 19:58 1957 阅读(185) 评论(0) 推荐(0) 编辑

摘要: 递推,滚动数组class Solution {public: vector getRow(int rowIndex) { vector > f(2 , vector(rowIndex+1 , 0)); int mark = 0; f[mark][0] = 1;f[mark][1] = 1; // 1 mark ++ ; mark %= 2; for(int i = 1 ; i < rowIndex ; i++){ f[mark][0] = 1; f[mark][i + 1]... 阅读全文

posted @ 2013-12-31 19:30 1957 阅读(296) 评论(0) 推荐(0) 编辑

摘要: 枚举开始位置,DFS验证const int dx[] = {0,0,1,-1};const int dy[] = {1,-1,0,0};class Solution {public: unordered_set flag; bool check(vector > & board , string& word , int x , int y , int pos){ if(pos == word.size()) return true; for(int i = 0 ; i = 0 && tx = 0 && ty > &board, 阅读全文

posted @ 2013-12-31 16:08 1957 阅读(217) 评论(0) 推荐(0) 编辑

摘要: 从任意两个节点之间最大的一条路径.../** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int ans; int search(TreeNode* root){ if(root == nullptr) return 0... 阅读全文

posted @ 2013-12-31 15:38 1957 阅读(162) 评论(0) 推荐(0) 编辑

2013年12月30日

摘要: 暴力= =枚举断开位置...据说可以dp,等下试试class Solution {public: bool isPal(const string& s , int start , int end){ end --; while(start > &ans , vector& path , int prev , int end){ if(end >= s.size()){ if(isPal(s , prev , end)){ path.push_back(s.substr(prev , end-p... 阅读全文

posted @ 2013-12-30 20:27 1957 阅读(140) 评论(0) 推荐(0) 编辑

摘要: 经典的最大子段和状态表示f[i]表示以A[i]结尾的最大子段和是多少.可想而知,如果f[i-1] > 0那么是对第i位是有贡献的。f[i] = f[i-1] + A[i]不然...f[i]= A[i]class Solution {public: int maxSubArray(int A[], int n) { vector f(n , 0); f[0] = A[0]; int ans = f[0]; for(int i = 1 ; i 0) f[i] = f[i-1] + A[i]; el... 阅读全文

posted @ 2013-12-30 19:19 1957 阅读(119) 评论(0) 推荐(0) 编辑

摘要: 经典dp....可以不用extra空间的,既然要求只能用O(n)...那估计想考滚动数组吧那就那么写吧。。。class Solution {public: int minimumTotal(vector > &triangle) { int n = triangle.size(); if(n == 0) return 0; int m = triangle[n - 1].size(); vector > f(2 , vector(m , INT_MAX)); int mark = 0; f... 阅读全文

posted @ 2013-12-30 18:44 1957 阅读(140) 评论(0) 推荐(0) 编辑

上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 22 下一页