![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
hello_pig1995
日有所进
展开
-
leetcode 2. Add Two Numbers
leetcode原创 2016-06-09 02:13:12 · 335 阅读 · 0 评论 -
leetcode 18. 4Sum
写过3Sum之后写4Sum感觉毫无难度 O(n^3)的时间复杂度vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<vector<int> > res; if(nums.size()<=3)return res; int i,j,left,right; int a,b,c,d; sort(nums.begin(),原创 2016-06-20 12:44:38 · 225 阅读 · 0 评论 -
leetcode 19. Remove Nth Node From End of List
其实三个指针可以简化称为两个,要删除的元素不需要指针,只需要记录其后面元素的指针,最后到达应该删除的位置之后: back -> next = back->next->next;ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode * front = head, * rem = head, * back = head;原创 2016-06-20 12:53:52 · 191 阅读 · 0 评论 -
leetcode 20. Valid Parentheses
bool isValid(string s) { stack<char> valid; int i; for(i=0;i<s.length();i++){ if(s[i] == '(' || s[i] == '[' || s[i] == '{'){ valid.push(s[i]); }else{ if(s[i]==')'){原创 2016-06-20 13:01:44 · 257 阅读 · 0 评论 -
leetcode 21. Merge Two Sorted Lists
没有加新的链表,而是在原有的链表基础上进行next的修改。ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode * ret = NULL , *p = NULL; if(l1 == NULL)return ret = l2; if(l2 == NULL)return ret = l1; if(l2原创 2016-06-20 15:58:51 · 211 阅读 · 0 评论 -
leetcode 22. Generate Parentheses
void generateParent(vector<string>& parenthesis , string cur ,int left,int n){ if(cur.length() == 2*n){ parenthesis.push_back(cur); return; } if(left> (cur.length()-left) ){原创 2016-06-20 16:23:16 · 225 阅读 · 0 评论 -
leetcode 25. Reverse Nodes in k-Group
ListNode* reverseKGroup(ListNode* head, int k) { if( !head || k==1 )return head; int num = 0; ListNode * cur = head; while(cur!=NULL){++num;cur = cur->next;} ListNode * ghost = new ListNode;ghost->val原创 2016-06-21 15:37:08 · 221 阅读 · 0 评论 -
leetcode 24. Swap Nodes in Pairs
class Solution { public: ListNode* swapPairs(ListNode* head) { ListNode * cur = head; while(cur!=NULL && cur->next!=NULL){ int tmp = cur->val; cur->val = cur->next->val;原创 2016-06-21 15:38:42 · 192 阅读 · 0 评论 -
leetcode 31. Next Permutation
void nextPermutation(vector<int>& nums) { if(nums.size()==1)return; vector<int> back; int i=nums.size()-1; do{ back.push_back(nums[i]); i--; }while(i>=0 && nums[i]>=原创 2016-06-29 19:52:23 · 278 阅读 · 0 评论 -
leetcode 23. Merge k Sorted Lists
class Solution { public: static bool comp(ListNode * a , ListNode * b){ return a->val > b->val; } ListNode* mergeKLists(vector<ListNode*>& lists) { ListNode head(0); ListNode *curNode = &he原创 2016-06-21 15:39:32 · 268 阅读 · 0 评论 -
leetcode 26. Remove Duplicates from Sorted Array
实在不明白有什么可写的。。。class Solution { public: int removeDuplicates(vector<int>& nums) { vector<int>::iterator iter = unique(nums.begin(),nums.end()); nums.erase(iter,nums.end()); return nums.size(原创 2016-06-21 16:08:49 · 222 阅读 · 0 评论 -
leetcode 27. Remove Element
还是不知道这道题有什么可写的。。。int removeElement(vector<int>& nums, int val) { vector<int>::iterator iter; while( (iter = find(nums.begin(),nums.end(),val))!=nums.end()){ nums.erase(iter); } return nums.size();原创 2016-06-21 16:15:56 · 211 阅读 · 0 评论 -
leetcode 28. Implement strStr()
int strStr(string haystack, string needle) { return haystack.find(needle); }原创 2016-06-21 16:18:20 · 217 阅读 · 0 评论 -
leetcode 29. Divide Two Integers
int divide(int dividend, int divisor) {if(dividend == INT32_MIN){ if(divisor == 1)return INT32_MIN; if(divisor == -1) return INT32_MAX; } if(divisor == 0){ if(dividend > 0)return INT32_MAX;原创 2016-06-21 16:49:56 · 280 阅读 · 0 评论 -
leetcode 15. 3Sum
这道题最后各种调整优化,但是就是超时,我也是跪了,所以我觉得根本还是算法的问题,我现在的复杂度是O(n^2logn)所以,感觉复杂度略高。vector<vector<int>> threeSum(vector<int>& nums){ vector<vector<int>> ret; if(nums.size()<3)return ret; sort(nums.begin(),nums.end())原创 2016-06-19 21:48:37 · 194 阅读 · 0 评论 -
leetcode 13. Roman to Integer
leetcode原创 2016-06-19 20:26:06 · 258 阅读 · 0 评论 -
leetcode 3. Longest Substring Without Repeating Characters My Submissions QuestionEditorial Solution
leetcode原创 2016-06-09 02:43:31 · 622 阅读 · 0 评论 -
leetcode 4. Median of Two Sorted Arrays
leetcode原创 2016-06-09 09:26:52 · 519 阅读 · 0 评论 -
leetcode 5. Longest Palindromic Substring
leetcode原创 2016-06-09 10:00:38 · 284 阅读 · 0 评论 -
leetcode 193. Valid Phone Numbers
sed -n -r ‘/^([0-9]{3}-|([0-9]{3}) )[0-9]{3}-[0-9]{4}$/p’ file.txt 解释如下: sed为在线编辑器,-n为默认静默模式,-r regex ’ ‘中为正则表达式,/^为行开始,$为行结束,中间为regex表达式。 p代表输出原创 2016-06-17 15:21:02 · 297 阅读 · 0 评论 -
leetcode 194. Transpose File
摘要原创 2016-06-17 15:35:04 · 422 阅读 · 0 评论 -
leetcode 5. Longest Palindromic Substring
leetcode原创 2016-06-17 19:28:14 · 352 阅读 · 0 评论 -
leetcode 5. Longest Palindromic Substring
时间O(n^2) 空间O(1) //测试通过 #include #include #include using namespace std; bool record[1024][1024]; string expand(string s,int l,int r){ int ll = l,rr = r; while(ll>=0 &&原创 2016-06-17 19:48:19 · 233 阅读 · 0 评论 -
leetcode 5. Longest Palindromic Substring
时间O(n) 空间O(n) //测试通过 string preProcess(string s){ string ret = "^"; for(int i=0;ilength();i++){ ret = ret + "#" + s[i]; } ret = ret + "#$"; return ret; }原创 2016-06-17 21:37:59 · 288 阅读 · 0 评论 -
leetcode 6. ZigZag Conversion
if(numRows==1)return s; int i; string ret = ""; int len = s.length(); vectorstring> r(numRows,""); for(i=0;i int index = i%(2*numRows-2); if(index>=numRows)原创 2016-06-18 18:06:55 · 216 阅读 · 0 评论 -
leetcode 7.Reverse Integer
//一个test case , 即翻转过来是-2147483648似乎并没有测试到,所以通过了。。。 int reverse(int x){ int sign = x>0?1:-1; x = x*sign; char ret[16] = {'0','0','0','0','0','0','0','0','0','0'}; int原创 2016-06-18 18:31:39 · 191 阅读 · 0 评论 -
leetcode 8. String to Integer (atoi)
int myAtoi(string str) { long res = 0; int sign = 1; int len = str.length(); int i = str.find_first_not_of(" "); if(str[i] == '+' || str[i] == '-'){ sign = (str[i原创 2016-06-18 19:04:11 · 209 阅读 · 0 评论 -
leetcode 11. Container With Most Water
int maxArea(vectorint>& height){ int left = 0 , right = height.size()-1 , maxA=0; while(left int tmp = (right - left)*(height[right]left]?height[right--]:height[left++]);原创 2016-06-19 19:52:40 · 205 阅读 · 0 评论 -
leetcode 12. Integer to Roman
leetcode原创 2016-06-19 20:18:13 · 219 阅读 · 0 评论 -
leetcode 30. Substring with Concatenation of All Words
一个简单的通过next_permutation来进行字符串查找的函数,很遗憾,超时vector<int> findSubstring(string s, vector<string>& words) {vector<int> order; vector<int> ret; for(int i=0;i<words.size();i++)order.push_back(i); string _s = s原创 2016-06-21 18:22:25 · 348 阅读 · 0 评论