LeetCode
goldcarpenter
这个作者很懒,什么都没留下…
展开
-
LeetCode——两数之和
暴力解:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { for (auto item = nums.begin(); item != nums.end(); item++) { for (auto ...原创 2018-09-15 18:22:45 · 155 阅读 · 0 评论 -
LeetCode——加一
vector<int> plusOne(vector<int>& digits) { int length = digits.size(); int focus = length - 1; digits[focus] += 1; while(digits[focus] == 1...原创 2018-10-07 15:45:54 · 135 阅读 · 0 评论 -
LeetCode——二进制求和
string addBinary(string a, string b) { int a_length = a.size(); int b_length = b.size(); if(a_length==0) return b; if(b_length==0) return a...原创 2018-10-07 16:34:07 · 259 阅读 · 0 评论 -
LeetCode——爬梯子
分析计算时候发现就是 斐波那契数列 ;每次只能爬1步或2步,爬到第n层的方法要么是从第n-1层1步上来的,要不就是从n-2层2步上来的。递归:【超时】 int climbStairs(int n) { if (n < 0) return 0; if (n == 1 | n == 0) ...原创 2018-10-26 16:56:55 · 2767 阅读 · 0 评论 -
LeetCode——对称二叉树
迭代法:bool Symmetric(TreeNode* left, TreeNode* right){ bool bo1, bo2; if(left == NULL & right ==NULL) return true; else if(left == NULL | right ==NULL) ...原创 2018-11-06 09:59:32 · 108 阅读 · 0 评论 -
LeetCode——二叉树的最大深度
迭代法: int maxDepth(TreeNode* root) { int maxleft = 0, maxright = 0, maxnum; if (root == NULL) return 0; maxleft = maxDepth(root->left) + 1; ...原创 2018-11-06 11:49:47 · 97 阅读 · 0 评论 -
LeetCode——验证回文串
bool isPalindrome(string s) { int lenght = s.size(); bool i_is_char; bool j_is_char; bool i_is_num; bool j_is_num; int i = 0; ...原创 2018-11-07 22:05:03 · 106 阅读 · 0 评论 -
LeetCode——相同的树
使用递归算法bool isSameTree(TreeNode* p, TreeNode* q) { bool p1, p2; if(p == NULL & q == NULL) return true; else if (p == NULL | q == NULL) ...原创 2018-11-05 22:36:31 · 103 阅读 · 0 评论 -
LeetCode——只出现一次的数字
感谢:只出现一次的数字 [ LeetCode ]线性时间复杂度:时间复杂度最高为O(n)不使用额外空间:空间复杂度最高为O(1)方法一:异或法(所有数字在二进制下相与结果为落单的数字) int singleNumber(vector<int>& nums) { int num = 0; for (int ...原创 2018-11-08 14:26:46 · 173 阅读 · 0 评论 -
LeetCode——环形链表
链表成环不仅仅包括 收尾成环 还可以 中间成环方法一(快慢指针):bool hasCycle(ListNode *head) { if (head == NULL || head->next == NULL) return false; ListNode *slow = head; ...原创 2018-11-08 15:42:19 · 130 阅读 · 0 评论 -
LeetCode——最后一个单词的长度
方法一:反向迭代器int lengthOfLastWord(string s) { int count = 0; for(auto item = s.rbegin(); item != s.rend(); item++) { if(*item == ' ') { ...原创 2018-10-07 14:57:16 · 171 阅读 · 0 评论 -
LeetCode——最大子序和
方法一【提交超时】——设计起点、终点、个数【O(n^3)】int maxSubArray(vector<int>& nums) { int max = nums[0]; for(int i = 0; i < nums.size(); ++i) { for (int j = i; j <...原创 2018-10-07 11:46:15 · 131 阅读 · 0 评论 -
LeetCode——实现 strStr()【KMP算法实现】
写在前面的话:不知道为啥LeetCode会分类到简单题,深坑题。网上KMP算法代码在LeetCode存在各种问题,dubug了两天。在理论层面分为两种KMP算法:①string[0]为字符串长度——《大话数据结构》②string[0]为第一个元素——本文代码//Javaclass Solution { public int strStr(String haystac...原创 2018-09-28 14:26:23 · 861 阅读 · 1 评论 -
LeetCode——两数相加
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *l3 = new ListNode(0); ListNode *l4 = l3; int carry = 0, x, y; while(l1 || l2) { ...原创 2018-09-17 16:34:02 · 182 阅读 · 0 评论 -
LeetCode——回文数
暴力解: bool isPalindrome(int x) { if(x < 0) return false; vector<int> vec; int number = x; int item = x % 10, rex = 0; while(x != 0) { vec.push_bac...原创 2018-09-17 16:14:41 · 170 阅读 · 0 评论 -
LeetCode——移除元素
双指针法: int removeElement(vector<int>& nums, int val) { auto p1_head = nums.begin(); auto p2_head = p1_head; for(; p1_head != nums.end(); ++p1_head) ...原创 2018-09-17 17:33:26 · 146 阅读 · 0 评论 -
LeetCode——有效的括号
使用容器适配器——Stack如果为左括号就进栈,否则就判断栈顶元素是否与string内容相同。bool isValid(string s) { stack<char> mm; for(char &item : s) { if(item == '(' ) mm.push(')');...原创 2018-09-17 20:59:26 · 87 阅读 · 0 评论 -
LeetCode——删除排序数组中的重复项
双指针法: int removeDuplicates(vector<int>& nums) { if(nums.size() < 2) return nums.size(); auto nn = nums.begin(); for(auto mm = nums.begin(...原创 2018-09-17 21:46:06 · 138 阅读 · 0 评论 -
LeetCode——报数
string countAndSay(int n) { string str = "1"; for (int i = 1; i < n; ++i) { string str_new{""}; for (int j = 0, count = 1; j < str.size()...原创 2018-10-01 10:54:15 · 524 阅读 · 0 评论 -
LeetCode——合并两个有序链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode...原创 2018-10-01 11:56:40 · 96 阅读 · 0 评论 -
LeetCode——最长公共前缀
string longestCommonPrefix(vector<string>& strs) { int count = 0; string newstring = ""; if (strs.empty()) return ""; if(strs.size() == 1) ...原创 2018-10-01 14:56:14 · 96 阅读 · 0 评论 -
LeetCode——反转整数
int reverse(int x) { int i=0; while (x!=0) { int n=i*10+x%10; x=x/10; if(n/10!=i)return 0; i=n; } return i;}原创 2018-10-01 15:25:37 · 93 阅读 · 0 评论 -
LeetCode——搜索插入位置
int searchInsert(vector<int>& nums, int target) { int pos = -1; if (target > *(nums.end() - 1)) return pos = nums.size() ; if (target < *nums.be...原创 2018-09-27 10:24:06 · 177 阅读 · 0 评论 -
LeetCode——最小栈
方法一:使用了两个栈(有些投机:P) class MinStack {public: /** initialize your data structure here. */ MinStack() {} void push(int x) { s1.push(x); if (s2.empty() || s1.to...原创 2018-11-20 22:55:13 · 77 阅读 · 0 评论