![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
qq_34860720
这个作者很懒,什么都没留下…
展开
-
leetcode 50 Pow(x, n)
double myPow(double x, long n) { long temp = n; if((x <= -100.0)&&(x >= 100)) return 0; if((temp<INT_MIN)||(temp>INT_MAX)) return 0;// if(temp<0) { x...原创 2019-04-04 21:14:16 · 73 阅读 · 0 评论 -
leetcode 1008. Construct Binary Search Tree from Preorder Traversal
这题和701.Insert into a Binary Search Tree 解体思路一样。/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) :...原创 2019-06-14 01:41:38 · 236 阅读 · 0 评论 -
leetcode104. Maximum Depth of Binary Tree
// 从叶子节点考虑,叶子节点子节点为null,所以叶子节点return 1,也就是叶子节点深度为1,从叶子节点往上数树的max深度int maxDepth(TreeNode* root) { if (root == NULL) return 0; int left = 0; int right = 0; left += maxDepth(root...原创 2019-06-14 10:42:31 · 91 阅读 · 0 评论 -
leetcode 110. Balanced Binary Tree
关于平衡二叉树的定义:给个网上链接,感谢这位博主的简书,收益颇丰https://www.jianshu.com/p/fdb3c8c331f1/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;...原创 2019-06-14 14:44:03 · 86 阅读 · 0 评论 -
leetcode559. Maximum Depth of N-ary Tree
/*// Definition for a Node.class Node {public: int val; vector<Node*> children; Node() {} Node(int _val, vector<Node*> _children) { val = _val; childre...原创 2019-06-14 15:36:21 · 143 阅读 · 0 评论 -
leetcode897Increasing Order Search Tree
//这种方法返回的是vector,代码量多,第二种方法返回void,传入的是vector<>,运行快,代码量少。vector<int> getnode(TreeNode* root) { vector<int> vec; vector<int> tmp; if (root == NULL) return vec; ...原创 2019-06-14 17:29:03 · 78 阅读 · 0 评论 -
leetcode 102. Binary Tree Level Order Traversal
每一层我们末尾放入一个标记,碰到标记表示一层遍历完毕,最后叶子节点左右孩子为NULL,所以这次碰到标记则表示已经将叶子层遍历完毕,整棵树已经遍历完毕。vector<vector<int> > levelOrder(TreeNode* root) { queue<TreeNode*> que; vector<vector<int&g...原创 2019-06-17 11:10:49 · 67 阅读 · 0 评论 -
Leetcode103. Binary Tree Zigzag Level Order Traversal
遇到一个mark表示读到一行/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL)...原创 2019-06-17 12:24:14 · 79 阅读 · 0 评论 -
Leetcode 414. Third Maximum Number
// 要求时间复杂度为O(n),所以不能进行排序int thirdMax(vector<int>& nums) { if (nums.size() == 0) return -1; long one = LONG_MIN;// 这么写的原因是因为int的最小值INT_MIN,如果将one写成 int one = INT_MIN // ,那么如果nums里面第三个数是I...原创 2019-06-17 16:12:27 · 66 阅读 · 0 评论 -
leetcode 647. Palindromic Substrings
字符串长度 ni 表示子串最后一个一个字符索引j 表示子串第一个字符索引int dp[n][n]注: 01 == 1表示s[0] ==s[1], 01 == 0 表示s[0] != s[1]?loop 1: i = 0 j<=i 11(表示同一个字符)那么一定是回文子串loop 2:i = 1; ? ?01,11 (i-j<2)loop 3:i = 2;...原创 2019-07-07 16:16:58 · 89 阅读 · 0 评论 -
leetcode Two Sum
/*给定一个vector<int> nums,找到两个数等于一个target方法:采用map<int,int> // value ,index1 2, 7, 9,target 9mp.count(target-nums[0])等于0,放入 mp[nums[i]]mp.count(target-nums[1])等于0,放入 mp[nums[i]]所以2,要去找...原创 2019-07-06 15:50:51 · 71 阅读 · 0 评论 -
leetcode 103. Binary Tree Zigzag Level Order Traversal
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */cla...原创 2019-07-07 13:23:59 · 84 阅读 · 0 评论 -
中文leetcode 338 比特位计数
方法1:正整数 ii&(i-1) 是去掉 i二进制表示序列 从左往右第一个1.所以说i+1也不会发生进位,那么我们只要统计i&(i-1) 里面1的个数,在加上1,就是 i 的二进制表示中 1的个数。i&(i-1) 的结果比 i小,所以只要将 比 i小的整数的1的个数 存放在数组里面,在计算整数 i中 1的个数的时候,可以用到 前面部分的数组。---------...原创 2019-09-09 20:15:03 · 128 阅读 · 0 评论 -
中文 leetcode 191 位1的个数
比较下面两种代码效率:class Solution {public: int hammingWeight(uint32_t n) { int _cnt = 0; while(n>0){ _cnt ++; n = n&(n-1); } return _cnt;...原创 2019-09-09 20:48:29 · 108 阅读 · 0 评论 -
leetcode700 Search in a Binary Search Tree
//递归/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*...原创 2019-06-14 01:18:46 · 75 阅读 · 0 评论 -
leetcode654 leetcode654 最大二叉树(利用vector创建)
[3,2,1,6,0,5]stk is emptypush 32<3 3->(right)2 push 2stk 3 21<2 2->(right)1 push 1stk 3 2 16现在是最大的,拿6和stk里面的各个元素进行比较,将小于6的作为左孩子。stk里面的元素已经存在了树结构关系。6>1 6->(left)1 pop ...原创 2019-06-13 22:35:37 · 192 阅读 · 0 评论 -
Leetcode15 3Sum
这里提供两种方法第一中非常的耗时,没有经过优化bool equalto(vector<vector<int>>num1, vector<int> num2){ //if (num2.size() == 0) //{ // return false; //} sort(num2.begin(), num2.e...原创 2019-04-15 21:16:30 · 86 阅读 · 0 评论 -
leetcode 16 3Sum closest
int threeSumClosest(vector<int> &nums,int &target){ int result; int gap = INT_MAX; int len = nums.size(); if (len <= 2) return gap; sort(nums.begin(),nums.end...原创 2019-04-16 11:22:41 · 84 阅读 · 0 评论 -
leetcode 61 Rotate list
struct ListNode { int val; ListNode *next; ListNode(ListNode* tmp) { val = tmp->val; next = tmp->next; };};ListNode *head = NULL;void ctL(vector<int&...原创 2019-04-17 16:35:29 · 116 阅读 · 0 评论 -
leetcode 21 merge-two-sorted-lists
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/class Solution {public: ListNode* me...原创 2019-04-17 20:40:23 · 74 阅读 · 0 评论 -
leetcode 23 merge-k-sorted-lists
第一种想法:第一个链表和第二个合并成一个新链表,将新链表与第三个链表合并,以此类推。代码如下/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}...原创 2019-04-17 21:34:27 · 87 阅读 · 0 评论 -
leetcode 20. Valid Parentheses
bool isValid(string s) { stack<char> stck; for (int i = 0; i < s.length(); i++) { if ((s[i] == '(') || (s[i] == '{') || (s[i] == '[')) stck.push(s[i]);...原创 2019-04-17 21:39:12 · 64 阅读 · 0 评论 -
leetcode 78 subsets
想法:举个例子:给定{1,3}{}也是子集A = {{}}首先拿到 1,放入到A的各个元素中,然后添加到AA = {{},{1}}拿到3,放入到A的各个元素中,然后添加到AA = {{},{1},{3},{1,3}}代码:class Solution {public: vector<vector<int>> subsets(...原创 2019-04-18 00:44:11 · 94 阅读 · 0 评论 -
leetcode 90 Subsets II
第一种方法:class Solution {public: vector<vector<int>> subsetsWithDup(vector<int>& nums) { vector<vector<int>> vec({ {} }); int length = nums.size(); if...原创 2019-04-18 01:12:06 · 66 阅读 · 0 评论 -
leetcode 19. Remove Nth Node From End of List
做关于链表类的题目,经常提示 空指针 ,导致每次写程序,都会写if()去判断/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/c...原创 2019-04-18 19:42:59 · 67 阅读 · 0 评论 -
leetcode 445. Add Two Numbers II
链表从后面开始加起,所以要考虑用容器去作为中介,stack是先进后出,非常的合适。/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*...原创 2019-04-18 20:16:47 · 63 阅读 · 0 评论 -
leetcode 143. Reorder List
举个例子:用例子给出方法的基本思想1->2->3放入stack<ListNode*> 为 (为了方便,这里简单的用val去表示)3(栈顶)21(栈底)current = head根据 current->next 取到 2,,用 tmp = 2(这里2 还有后面的next ,即为 3)head->next = 3将3 出栈...原创 2019-04-18 22:03:48 · 181 阅读 · 0 评论 -
leetcode 24. Swap Nodes in Pairs
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/class Solution {public: ListNode* sw...原创 2019-04-19 00:44:09 · 116 阅读 · 0 评论 -
leetcode 949
bool isAlienSorted(vector<string> &words, string order) { int map[26]; for (int i = 0; i < 26; i++) map[order[i] - 'a'] = i; for (string &w : w...原创 2019-05-13 00:53:18 · 248 阅读 · 0 评论 -
413. 等差数列划分
i>2时:A[i]构成等差只与A[i-1]有关。而且以A[i]结尾的等差数列个数会比A[i-1] 多一个。class Solution {public: int numberOfArithmeticSlices(vector<int>& A) { int dp = 0; int sum = 0; for (...原创 2019-09-16 17:01:25 · 183 阅读 · 0 评论