- 博客(184)
- 收藏
- 关注
原创 【LeetCode】Add Two Numbers
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *ad
2014-12-28 15:53:41
308
原创 LDA文本建模
我们日常生活中会产生大量的文本,如果每一个文本存储为一个文档,那每篇文档从人的观察来说就是有序的词的序列。统计文本建模的目的就是追问这些观察到语料库中的词序列是如何生成的。我们将上述统计学问题看成上帝抛掷骰子生成的。那么出现两个核心的问题:1.上帝都有什么样的骰子。即表示模型中都有哪些参数,骰子的每一面的概率都对应于模型中的参数。2.上帝是如何抛掷这些骰子的。即表示游戏规则是什么,
2014-12-27 16:08:28
594
原创 【LeetCode】Set Matrix Zeroes
class Solution {public: void setZeroes(vector > &matrix) { bool x[1000] = { false }; bool y[1000] = {false}; int i, j; for (i = 0; i < matrix.size(); i++) { for (j = 0; j < matrix[0
2014-12-27 15:55:30
416
原创 【LeetCode】Scramble String
class Solution {public: bool isScramble(string s1, string s2) { const int N = s1.size(); if (N != s2.size()) return false; bool f[N + 1][N][N]; fill_n(&f[0][0][0], (N + 1)*N*N, false
2014-12-27 15:36:22
505
原创 【LeetCode】Interleaving String
class Solution {public: bool isInterleave(string s1, string s2, string s3) { if (s3.length() != s1.length() + s2.length()) return false; vector>f(s1.length() + 1, vector(s2.length() +
2014-12-25 17:12:45
347
原创 【LeetCode】Min Stack
class MinStack{public: void push(int x) { nums.push(x); if (mins.empty() || x <= mins.top()) { mins.push(x); } } void pop() { if (nums.empty())return; if (nums.top() == mins.top
2014-12-25 16:23:18
299
原创 【LeetCode】Combinations
void dfs(int n,int k,int start,int cur,vector&path,vector>&result){ if (cur == k) { result.push_back(path); } for (int i = start; i <= n; i++) { path.push_back(i); dfs(n, k, i + 1, cur + 1
2014-12-25 15:57:44
304
原创 【LeetCode】Multiply Strings
class Solution {public: string multiply(string num1, string num2) { if(num1=="0"||num2=="0") return "0"; int l1=num1.length(),l2=num2.length(); int *n1=new int[l1]; int *n2=new i
2014-12-17 20:29:33
322
原创 【LeetCode】Word Break
class Solution {public: bool wordBreak(string s, unordered_set &dict) { vector f(s.size()+1,false); f[0]=true; for(int i=1;i<=s.size();i++) { for(int j=i-1;j>=0;j--) { if(
2014-12-15 16:59:14
317
原创 【LeetCode】Pow(x, n)
class Solution {public: double power(double x, int n){ if (n == 0) return 1; double v = power(x, n / 2); if (n % 2 == 0) return v*v; else return v*v*x;}double pow(double x, int n){
2014-12-14 16:16:45
312
原创 【LeetCode】Sqrt(x)
class Solution {public: int sqrt(int x) { long long left = 0; long long right = x; while (left <= right) { long long mid = left + (right - left) / 2; long long square = mid*mid;
2014-12-14 16:15:39
329
原创 【LeetCode】Search Insert Position
class Solution {public: int searchInsert(int A[], int n, int target) { int first, end,mid,value,result; first = 0; end = n ; while (first < end) { mid = first + (end - first) / 2;
2014-12-14 15:42:19
284
原创 【LeetCode】Search a 2D Matrix
class Solution {public: bool searchMatrix(vector > &matrix, int target) { int first, mid,end, row, col; row = matrix.size(); col = matrix[0].size(); first = 0; end = row*col; while (f
2014-12-14 15:23:31
353
原创 【LeetCode】Subsets II
class Solution {public: void subsets(const vector &S,vector &path,int step,vector> &result) { if (step == S.size()) { for(int i=0;i<result.size();i++) { if(result[i]==path)
2014-12-12 10:45:42
320
原创 【LeetCode】Subsets
class Solution {public: void subsets(const vector &S,vector &path,int step,vector> &result){ if (step == S.size()) { result.push_back(path); return; } subsets(S, path, step + 1, result);/
2014-12-12 10:42:39
316
原创 【LeetCode】Longest Substring Without Repeating Characters
class Solution {public: int lengthOfLongestSubstring(string s) { const int MAX=256; int last[MAX]; fill(last,last+MAX,-1); int start=0; int max_len=0; for(int i=0;i<s.size();i++) {
2014-12-10 17:58:09
387
原创 【LeetCode】Count and Say
string convert(string str){ stringstream ss; int i,count=0; char last=str[0]; for(i=0;i<=str.size();i++) { if(str[i]==last) { count++; } else { ss<<count<<last; c
2014-12-10 16:22:20
289
原创 【LeetCode】Anagrams
class Solution {public: vector anagrams(vector &strs) { vector result; map> store; int i; for(i=0;i<strs.size();i++) { string temp; temp=strs[i]; sort(temp.begin(),temp.end());
2014-12-10 15:55:56
296
原创 【LeetCode】Integer to Roman
class Solution {public: string intToRoman(int num) { const int radix[]={1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 }; const string symbol[]={"M", "CM", "D", "CD", "C", "XC
2014-12-10 12:39:37
321
原创 【LeetCode】Palindrome Number
class Solution {public: bool isPalindrome(int x) { if(x<0) return false; if(x==0) return true; int base=1; while(x/base>=10) { base*=10; } int leftnum,rightnum; while(x) {
2014-12-10 12:26:52
368
原创 【LeetCode】Reverse Integer
public class Solution { public static int reverse(int x){ long newNum=0,old=x;//*Notice* long,so that it can compare with MAX_Value x=(x>0)?x:(0-x); while(x!=0){ newNum*=10;
2014-12-10 11:50:23
344
原创 【LeetCode】Palindrome Partitioning II
class Solution {public: int minCut(string s) { const int n = s.size(); vector f(n+1); //bool p[n][n]; vector> p(n, vector(n,false)); for (int i = 0; i <= n; i++) { f[i] = n - 1 - i
2014-12-05 11:57:21
340
原创 【LeetCode】Palindrome Partitioning
class Solution {public: void dfs(string s, vector &path, vector> &result){ if (s.size() < 1) { result.push_back(path); return; } for (int i = 0; i < s.size(); i++) { int begin = 0; int
2014-12-05 11:07:17
303
原创 【LeetCode】Longest Palindromic Substring
//一直超时啊。。。跪了class Solution {public: string longestPalindrome(string s) { int i, j,max_len,temp; int n = s.size(); max_len = 1; temp=0; bool f[n][n];// vector> f(n, vector(n, false));
2014-12-04 15:33:31
330
原创 【LeetCode】Decode Ways
if (s.empty() || s[0] == '0') return 0; int prev = 0; int curr = 1; for (int i = 1; i <= s.size(); i++) { if (s[i - 1] == '0') curr = 0; if (i < 2 || !(s[i - 2] == '1' || s[i - 2] == '2'
2014-12-04 10:56:56
335
原创 凤求凰·琴歌
有美人兮,见之不忘。一日不见兮,思之如狂。凤飞翱翔兮,四海求凰。无奈佳人兮,不在东墙。将琴代语兮,聊写衷肠。何日见许兮,慰我彷徨。愿言配德兮,携手相将。不得於飞兮,使我沦亡。
2014-12-04 10:33:08
543
原创 大数相加(字符串解法)
#include#include#include#include#include#includeusing namespace std;//大数相加vector Add(vector &left,vector&right){ int mlen, len, i, c = 0; mlen = left.size() > right.size() ? left.size() :
2014-12-03 16:45:50
594
原创 【LeetCode】Plus One
class Solution {public: void add(vector &digits, int num){ int c; c = num; for (auto i = digits.rbegin(); i != digits.rend();i++) { *i += c; c = *i / 10; *i = *i % 10; } if (c > 0)
2014-12-03 15:06:32
289
原创 【LeetCode】Climbing Stairs
class Solution {public: int climbStairs(int n) { int prev, curr; prev = 0; curr = 1; for (int i = 0; i < n; i++) { int temp = curr; curr += prev; prev = temp; } return curr; }
2014-12-03 14:47:20
361
原创 【LeetCode】Search for a Range
class Solution {public:int Left(int A[], int n, int target){ if (n == 0)return -1; int left = 0; int right = n - 1; while (left < right) { int mid = left + (right - left) / 2; if (A[mid] >
2014-12-03 14:31:48
332
原创 【LeetCode】Pascal's Triangle II
class Solution {public: vector getRow(int rowIndex) { vector result(rowIndex + 1); result[0] = 1; for (int i = 1; i <= rowIndex; i++) { for (int j = i; j >= 0; j--) { if (j ==
2014-12-02 11:20:24
311
原创 【LeetCode】Pascal’s Triangle
class Solution {public: vector > generate(int numRows) { vector> result; vectorret; int i, j; for (i = 0; i < numRows; i++) { if (i == 0) { ret.push_back(1); result.push
2014-12-02 11:08:45
381
原创 【LeetCode】Triangle
class Solution {public: int minimumTotal(vector > &triangle) { if (triangle.size() == 0) return 0; vector f(triangle[triangle.size() - 1].size()); f[0] = triangle[0][0]; for (int i =
2014-12-01 20:43:42
378
原创 【LeetCode】Generate Parentheses
class Solution {public: //Generate Parentheses void generate(int n, string s, int l, int r, vector &result){ if (l == n) { result.push_back(s.append(n - r, ')')); return; } generate(n, s
2014-12-01 19:56:02
328
原创 【LeetCode】String to Integer (atoi)
class Solution {public: int atoi(const char *str) { int i,sum,temp; i=0;sum=0;temp=1; const int len=strlen(str); while(str[i]==' '&&i<len) { i++; } if(str[i]=='+') { i++; } e
2014-11-26 21:58:48
321
原创 【LeetCode】Evaluate Reverse Polish Notation
class Solution {public: int cal(int num1, int num2, string ch){ int result; if (ch == "+") { result = num1 + num2; } else if (ch == "-") { result = num1 - num2; } else if (ch == "*
2014-11-26 21:53:55
306
原创 【LeetCode】Remove Duplicates from Sorted Array II
class Solution {public: int removeDuplicates(int A[], int n) { if (n <=2) return n; int index = 2; for (int i = 2; i < n; i++) { if (A[i] != A[index - 2]) A[index++] = A[i]; }
2014-11-26 11:26:11
268
原创 【LeetCode】Remove Duplicates from Sorted Array
class Solution {public: int removeDuplicates(int A[], int n) { int index=0; if (n == 0) return 0; for (int i = 1; i < n;i++) { if (A[i] != A[index]) { A[++index] = A[i]; } } r
2014-11-26 11:25:04
228
原创 【LeetCode】Longest Consecutive Sequence
class Solution {public: int longestConsecutive(vector &num) { int result = 0; sort(num.begin(), num.end()); int curlen=0, previous=0; for (auto iter = num.begin(); iter != num.end(); i
2014-11-26 10:02:40
278
原创 【LeetCode】Median of Two Sorted Arrays
double findK(int a[], int m, int b[], int n, int k){ if (m > n) return findK(b, n, a, m, k); if (m == 0) return b[k - 1]; if (k == 1) return min(a[0], b[0]); int pa = min(k / 2, m); int pb
2014-11-25 21:15:43
280
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅