自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 LeetCode365. Water and Jug Problem(找规律)

题目链接找规律题,z是x和y最大公因数的倍数(前提z小于等于x与y的和)就可以,要注意一些边界的判断。class Solution {public: bool canMeasureWater(int x, int y, int z) { if(z == 0)return true; if(z > x+y) return false; if(x

2016-12-30 11:09:05 178

原创 LeetCode278. First Bad Version(二分)

题目链接二分本身很好理解,但是放在不同题目中,就有很多细节要处理和注意,要根据题意来二分。// Forward declaration of isBadVersion API.bool isBadVersion(int version);class Solution {public: int firstBadVersion(int n) { int L = 1, R =

2016-12-30 11:08:52 143

原创 LeetCode129. Sum Root to Leaf Numbers

题目链接二叉树中每个叶节点所在路径作为数字的每一位,求所有数字的和。(1->2->3为123)class Solution {public: int sumNumbers(TreeNode* root) { return dfs(root, 0); } int dfs(TreeNode* root, int a){ if(root==NULL)

2016-12-30 11:08:38 133

原创 LeetCode235. Lowest Common Ancestor of a Binary Search Tree

题目链接求二叉搜索树的最近公共祖先(LCA)。class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { while(1){ if(root->val > max(p->val, q->val)) root = r

2016-12-30 11:08:23 167

原创 LeetCode110. Balanced Binary Tree

题目链接判断是否为平衡二叉树。class Solution {public: bool isBalanced(TreeNode* root) { if(root == NULL) return 1; int l1 = getDepth(root->left); int l2 = getDepth(root->right); i

2016-12-30 11:08:04 122

原创 LeetCode104. Maximum Depth of Binary Tree

题目链接输出二叉树的最大深度。class Solution {public: int maxDepth(TreeNode* root) { return dfs(root); } int dfs(TreeNode* root){ if(root == NULL) return 0; return 1+max(dfs(root-

2016-12-30 11:07:50 147

原创 LeetCode101. Symmetric Tree

题目链接判断一个二叉树是否对称。class Solution {public: bool isSymmetric(TreeNode* root) { return judge(root, root); } bool judge(TreeNode* root1, TreeNode* root2){ if(!root1 && !root2) retu

2016-12-30 11:07:31 155

原创 LeetCode100. Same Tree

题目链接判断两个二叉树是否一样。class Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if(q==NULL && p==NULL) return 1; if((q==NULL && p!=NULL) || (p==NULL && q!=NULL))return 0;

2016-12-30 11:07:12 112

原创 LeetCode3. Longest Substring Without Repeating Characters

题目链接输出最长不重复子串的长度。一开始觉得是dp,转移方程写了半天没写出来。。看了下tag是双指针,用i和j维护不重复的子串端点。class Solution {public: int lengthOfLongestSubstring(string s) { int len = s.length(); int a[300]; memset(

2016-12-30 11:06:57 108

原创 LeetCode257. Binary Tree Paths(dfs)

题目链接输出dfs二叉树路径。刚刷leetcode,跟ACM提交方式不一样,适应中。。。class Solution {public: vector<string> binaryTreePaths(TreeNode* root) { vector<string> ans; if(root == NULL) return ans; dfs(an

2016-12-30 11:06:40 134

原创 LeetCode160. Intersection of Two Linked Lists

题目链接输出两个链表开始相交的节点。为了保证长度一致,可以把两个链表连接起来,构成两个长度一样的链表。class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if(!headA || !headB) return NULL; ListN

2016-12-30 11:06:24 113

原创 LeetCode141. Linked List Cycle

题目链接题意:判断链表中有无环,不使用额外的存储空间。这个题很有意思,把链表想象成一条公路的话,一辆车和一个人从起点同时出发,如果有环的话他们一定会相遇。这里用两个指针代表车和人,车的速度是2,人的速度是1。class Solution {public: bool hasCycle(ListNode *head) { ListNode *a = head, *b = hea

2016-12-30 11:06:08 199

原创 LeetCode2. Add Two Numbers

题目链接用链表反向代表数字的每一位,求和。开始蠢到用数字代表每个表然后加一起,最后再转换成链表,后来发现这么出题就是在解高精度呀!从链表的开始就是个位,之后每位记录下进位就可以了。class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *H = new Li

2016-12-30 11:05:51 142

原创 LeetCode75. Sort Colors

题目链接题意:nums由0、1、2组成,将其排序,不允许使用库函数,一次遍历。如果两次遍历的话很简单,第一次记录0、1、2的个数,第二次返回/输出,这样的时间复杂度也是O(n)的,所以如果是在ACM中是不会有这类要求的…那么如何一次遍历完成排序呢?题中由3个数组成,为了找到普遍规律,我们可以先看两个数的,也就是只有0和1。假设输入为0, 1, 0 ,用a、b分别记录0和1的最近出现位置(a、b初始都

2016-12-30 11:05:30 207

原创 LeetCode338. Counting Bits(位运算+DP)

题目链接题意:输入num,给出[0, num]中每个数字二进制中1的个数,返回vector。O(n)方法,可以写出两种状态转移方程(也许更多)。i中1的个数比i&(i-1)中多一个。class Solution {public: vector<int> countBits(int num) { vector<int> ans; ans.push_back

2016-12-30 11:04:45 177

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除