<2017年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

统计

  • 随笔 - 26
  • 文章 - 7
  • 评论 - 0
  • 引用 - 0

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

Blog

Coder 必备技巧

Compiler for Wurq

搜索

  •  

最新评论

阅读排行榜

评论排行榜

60天内阅读排行

2017年7月4日

【LeeCode 2017/07/04】38. Count and Say

 1 class Solution {
 2 public:
 3     string countAndSay(int n) {
 4         list<int>v;
 5         v.push_back(1);
 6         while (--n)
 7         {
 8             list<int>tmp;
 9 
10             int num = -1;
11             int count = 0;
12             while (!v.empty())
13             {
14                 if (num == -1) {
15                     num = v.front();
16                     count++;
17                 }
18                 else if (v.front() == num)
19                 {
20                     count++;
21                 }
22                 else 
23                 {
24                     tmp.push_back(count);
25                     tmp.push_back(num);
26                     count = 0;
27                     num = v.front();
28                     count++;
29                 }
30                 v.pop_front();
31             }
32 
33             tmp.push_back(count);
34             tmp.push_back(num);
35 
36             v = tmp;
37         }
38 
39         string str = "1";
40 
41         if (!v.empty())
42             str = "";
43 
44         while (!v.empty()){
45             str += v.front() + '0';
46             v.pop_front();
47         }
48 
49         return str;
50     }
51 };
52 

posted @ 2017-07-04 19:51 Wurq 阅读(6) | 评论 (0)编辑 收藏

2017年7月3日

【LeeCode 2017/07/03】35. Search Insert Position

 1 class Solution {
 2 public:
 3     int searchInsert(vector<int>& nums, int target) {
 4         for (int i = 0; i < nums.size(); i++) {
 5             if (nums[i] >= target)
 6                 return i;
 7         }
 8         return nums.size();
 9     }
10 };

posted @ 2017-07-03 15:59 Wurq 阅读(7) | 评论 (0)编辑 收藏

2017年7月1日

【LeeCode 2017/07/01】28. Implement strStr()

 1 // 子串为空则任意匹配
 2 class Solution {
 3 public:
 4     int strStr(string haystack, string needle) {
 5         int len_s = haystack.length();
 6         int len_t = needle.length();
 7 
 8         bool is_cmp = (haystack == needle) || needle == "";
 9         for (int i = 0; i < len_s; i++)
10         {
11             if (haystack[i] != needle[0])
12                 continue;
13 
14             is_cmp = true;
15             for (int j = 0; j < len_t; j++) {
16                 if (i + j<len_s && haystack[i + j] == needle[j])
17                     continue;
18 
19                 is_cmp = false;
20                 break;
21             }
22 
23             if (is_cmp)
24                 return i;
25         }
26 
27         return is_cmp ? 0 : -1;
28     }
29 };

posted @ 2017-07-01 14:04 Wurq 阅读(6) | 评论 (0)编辑 收藏

2017年6月30日

【LeeCode 2017/06/30】27. Remove Element

 1 class Solution {
 2 public:
 3     int removeElement(vector<int>& nums, int val) {
 4         int count = 0;
 5         vector<int> ans;
 6         for (int  i = 0; i < nums.size(); i++){
 7             if (nums[i] != val)
 8             {
 9                 ans.push_back(nums[i]);
10                 count++;
11             }
12         }
13         ans.resize(count);
14         nums = ans;
15         return count;
16     }
17 };

posted @ 2017-06-30 09:25 Wurq 阅读(8) | 评论 (0)编辑 收藏

2017年6月29日

【LeeCode 2017/06/29】26. Remove Duplicates from Sorted Array

 1 // 注意:需要同时改变传入的数组的值
 2 class Solution {
 3 public:
 4     int removeDuplicates(vector<int>& nums) {
 5         map<intint>m;
 6         int count = 0;
 7         vector<int> ans;
 8         for (int  i = 0; i < nums.size(); i++){
 9             if (m[nums[i]] == 0)
10             {
11                 ans.push_back(nums[i]);
12                 m[nums[i]]++;
13                 count++;
14             }
15         }
16         ans.resize(count);
17         nums = ans;
18         return count;
19     }
20 };

posted @ 2017-06-29 19:21 Wurq 阅读(8) | 评论 (0)编辑 收藏

2017年6月28日

【LeeCode 2017/06/28】21. Merge Two Sorted Lists

 1 /* LeeCode题目默认的排序方式为从小到大 */
 2 class Solution {
 3 public:
 4     ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
 5 
 6         ListNode* Head = new ListNode(-1);
 7         ListNode* p = Head;
 8 
 9         if (l1 == nullptr && l2 == nullptr)
10             return nullptr;
11 
12         if (l1 == nullptr || l2 == nullptr)
13             return l1 == nullptr ? l2:l1;
14 
15         while (l1 != nullptr && l2 != nullptr)
16         {
17             if (l1->val < l2->val){
18                 p->next =l1;
19                 l1 = l1->next;
20             }
21             else {
22                 p->next = l2;
23                 l2 = l2->next;
24             }
25             p = p->next;
26         }
27 
28         if (l1 != nullptr)p->next = l1;
29         if (l2 != nullptr)p->next = l2;
30 
31         return Head->next;
32     }
33 };

posted @ 2017-06-28 10:33 Wurq 阅读(8) | 评论 (0)编辑 收藏

2017年6月27日

【LeeCode 2017/06/27】20. Valid Parentheses

 1 class Solution {
 2 public:
 3     bool isValid(string s) {
 4         stack<char>q;
 5         for (int i = 0; i < s.length(); i++)
 6         {
 7             char ch = s[i];
 8             if (!q.empty())
 9             {
10                 if (ch == ')' &&q.top() == '(' ||
11                     ch == ']' &&q.top() == '[' ||
12                     ch == '}' &&q.top() == '{')
13                     q.pop();
14                 else
15                     q.push(ch);
16             }
17             else
18                 q.push(ch);
19         }
20         int ret = false;
21         if (q.empty())
22             ret = true;
23 
24         return ret;
25     }
26 };
27 

posted @ 2017-06-27 09:49 Wurq 阅读(7) | 评论 (0)编辑 收藏

2017年6月26日

【LeeCode 2017/06/26】14. Longest Common Prefix

 1 class Solution {
 2 public:
 3     string longestCommonPrefix(vector<string>& strs) {
 4         int count = strs.size();
 5         int prt_ch[300= {0};
 6 
 7         int max_len = 0;
 8         for(int i=0;i<count;i++){
 9             max_len = max_len >= strs[i].length()? max_len:strs[i].length();
10         }
11         vector<vector<int>>prt_str;
12         prt_str.resize(max_len);
13         for (int i = 0; i < max_len; i++) {
14             prt_str[i].resize(300);
15         }
16 
17         for (int i = 0; i < count; i++){
18             for (int j = 0;j < strs[i].length(); j++){
19                 prt_str[j][strs[i][j]]++;
20             }
21         }
22         string ans = "";
23         if (count <= 0)
24             return ans;
25             
26         for (int i = 0; i < strs[0].length(); i++){
27             if (prt_str[i][strs[0][i]] == count)
28                 ans += strs[0][i];
29             else
30                 break;
31         }
32         return ans;
33     }
34 };
35 

posted @ 2017-06-26 17:13 Wurq 阅读(8) | 评论 (0)编辑 收藏

2017年6月24日

【LeeCode 2017/06/24】6. ZigZag Conversion

 1 class Solution {
 2 public:
 3     string convert(string s, int numRows) {
 4         vector<vector<char>> map;
 5         map.resize(numRows);
 6 
 7         for (int i = 0; i < numRows; i++)
 8             map[i].resize(s.length());
 9 
10         int count = 0;
11         int j = 0;
12         while (count < s.length())
13         {
14             int i = 0;
15             while (count<s.length() && i<numRows)
16                 map[i++][j]= s[count++];
17 
18             j++; i--;
19             while (count<s.length() && i>1)
20                 map[--i][j++= s[count++];
21         }
22         string ans = "";
23         for (size_t i = 0; i < numRows;i++){
24             for (size_t j = 0; j < s.length(); j++){
25                 if (map[i][j] != 0)
26                     ans += map[i][j];
27             }
28         }
29         return ans;
30     }
31 };
32 

posted @ 2017-06-24 10:50 Wurq 阅读(9) | 评论 (0)编辑 收藏

2017年6月23日

【LeeCode 2017/06/23】13. Roman to Integer

 1 class Solution {
 2 public:
 3     int romanToInt(string s) {
 4         map<charint>num;
 5         num['I'= 1;
 6         num['V'= 5;
 7         num['X'= 10;
 8         num['L'= 50;
 9         num['C'= 100;
10         num['D'= 500;
11         num['M'= 1000;
12         int sum = num[s[0]];
13         for (int i = 1; i < s.length(); i++)
14         {
15             if (num[s[i - 1]] >= num[s[i]])
16                 sum += num[s[i]];
17             else
18                 sum = sum  + num[s[i]] -2* num[s[i - 1]];
19         }
20         return sum;
21     }
22 };
23 

posted @ 2017-06-23 09:34 Wurq 阅读(6) | 评论 (0)编辑 收藏
仅列出标题  下一页