
LeetCode
文章平均质量分 64
xqn2017
大家好,我是一名目前在上海工作的入门码农,写博客是为自己的学习过程做个记录,同时也希望能认识更多的IT爱好者一起探讨技术或者生活琐事,有希望认识的同学可以加我QQ:380191204
展开
-
160. Intersection of Two Linked Lists
原文题目:160. Intersection of Two Linked Lists读题:给定两个无环链表,判断是否有交叉点,返回第一个交叉点解题思路:求出两个链表长度lenA和lenB,得到两者的差值,deltaLen = lenA - lenB,这里假设A长度大于B长度,让p指向A头结点,q指向B头结点,此时,让p先往前走deltaLen个节点,这个时候p和q开始后面的原创 2017-09-13 14:49:40 · 240 阅读 · 0 评论 -
217/219. Contains Duplicate /Contains Duplicate II
原文题目:217. Contains Duplicate219. Contains Duplicate II读题:217只要找出是否有重复值,219找出重复值,且要判断两者索引之差是否小于k//217. Contains Duplicate 46msclass Solution {public: bool containsDuplicate(vector&原创 2017-09-18 19:18:34 · 374 阅读 · 0 评论 -
102/107. Binary Tree Level Order Traversal/II
原文题目:102. Binary Tree Level Order Traversal107. Binary Tree Level Order Traversal II读题:102. 层序遍历二叉树,每一层作为一个数组,从上到下输出107.层序遍历二叉树,每一层作为一个数组,反过来从下到上输出两者只有最后一行的存储方式不一致class Solution(obje原创 2017-09-11 10:32:49 · 279 阅读 · 0 评论 -
108. Convert Sorted Array to Binary Search Tree
原文题目:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/description/读题:首先是个有序序列,从小到大排列,要转成一个高度平衡的二叉搜索树,那么有序序列的中间那个数就是根节点,该数左边的序列为左孩子,右边的为右孩子,用递归实现很简单:# Definition for a原创 2017-09-11 10:54:31 · 144 阅读 · 0 评论 -
110. Balanced Binary Tree
原文链接:110. Balanced Binary Tree读题:判断是否为平衡二叉树,平衡二叉树的定义是每个节点的左右子树的高度差不超过1,显然需要通过求高度,也就是树的深度差来判断。# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):#原创 2017-09-11 11:21:48 · 187 阅读 · 0 评论 -
111. Minimum Depth of Binary Tree
原文题目:111. Minimum Depth of Binary Tree读题:求最小深度,这和求树的最大深度差不多,只不过需要注意当左子树或者右子树为空时,最小深度并不为0,而是取决于非空子树的最小深度# Definition for a binary tree node.# class TreeNode(object):# def __init__(self,原创 2017-09-11 11:33:28 · 214 阅读 · 0 评论 -
112. Path Sum
原文题目:112. Path Sum读题:二叉树中是否存在给定和为给定数的路径,递归实现最简单# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None#原创 2017-09-11 15:57:58 · 352 阅读 · 0 评论 -
118/119. Pascal's Triangle/II
原文题目:118. Pascal's Triangle119. Pascal's Triangle II读题:杨辉三角问题'''118'''class Solution(object): def generate(self, numRows): """ :type numRows: int :rtype: Lis原创 2017-09-12 09:45:05 · 177 阅读 · 0 评论 -
125. Valid Palindrome
原文题目:125. Valid Palindrome读题:该题目就是给定一组字符串,然后只检查字符串中的字母和数字,并且忽略字母的大小写,然后判断是否为回文思路:解法一:循环遍历字符串,将非字母非数字的字符用''直接替换掉得到纯字母数字字符串,然后忽略大小写lower()或者upper()判断是否为回文该解法时间复杂度不符合leetcode的要求,运行时间超时解法二:给原创 2017-09-12 11:32:21 · 192 阅读 · 0 评论 -
8. String to Integer (atoi)
原文题目:8. String to Integer (atoi)读题:这个题目主要是判断输入,以及有符号数溢出情况,以下输入是合理的1) 输入" 12" 输出122)输入" -23a34" 输出-233)输入 "+010" 输出10以下是AC代码:#define MAXNUM 2147483647#define MINNUM -214748原创 2017-10-10 11:28:27 · 274 阅读 · 0 评论 -
204. Count Primes
原文题目:204. Count Primes读题:题目很简单,就是求小于n的质数的个数,注意是小于n,不等于n,也就是说n=2的时候,返回0,n=3时才是返回1一下列出两种方法,一种方法超时,另一种方法逐步优化到46ms//超时class Solution {public: int countPrimes(int n) { int count = 0;原创 2017-09-18 10:20:57 · 445 阅读 · 0 评论 -
101. Symmetric Tree
本题判断一个二叉树是否为对称树题目链接:https://leetcode.com/problems/symmetric-tree/description/# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x#原创 2017-09-08 14:51:59 · 209 阅读 · 0 评论 -
167. Two Sum II - Input array is sorted
原文题目:167. Two Sum II - Input array is sorted读题:给定一个升序序列,找到两个数加起来等于目标值,并输出索引,注意这里的索引是从1开始的解题思路:由于是升序,因此,可以用p指向第一个元素,用q指向最后一个元素,然后判断p和q所指的数加起来是否为目标值,找到则返回,若小于目标值,则p++,若大于目标值,则q++class Solu原创 2017-09-13 16:04:24 · 243 阅读 · 0 评论 -
168. Excel Sheet Column Title
原文题目:168. Excel Sheet Column Title读题:将整数转为EXCEL表格列标,实际上就是十进制转26进制class Solution {public: string convertToTitle(int n) { string result =""; char apha[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"原创 2017-09-13 16:44:00 · 353 阅读 · 0 评论 -
169. Majority Element
原文题目:169. Majority Element读题:这个是一道经典算法题,可以用摩尔投票算法(Moore voting algorithm),前提是一定有一个元素的个数超过总元素个数的一半。比如对于序列[1,1,1,1,1,1,2,2,3,3,4],此时设置一个count,由于前6个都相等为1,count的值累加依次是1,2,3,4,5,6,从第七个数开始就不等于1了,此原创 2017-09-14 16:11:27 · 204 阅读 · 0 评论 -
172. Factorial Trailing Zeroes
原文题目:172. Factorial Trailing Zeroes读题:求n!的末尾有多少个0。说实话,第一次看到这个题,有点懵,由于需要在O(logn)的复杂度内,当然不能去把n!计算出来,然后仔细想想,末尾0是哪里来的?只有当2*5时才会产生一个0,而在1-n中,2的个数明显要多于5的个数,因为2,4,6,8都含有2,所以只要找到5的个数就行了,但是同样的,比如25是包含5原创 2017-09-14 18:59:37 · 295 阅读 · 0 评论 -
189. Rotate Array
原文题目:189. Rotate Array读题:向右旋转数组,假设数组长度为Len,则旋转Len次后数组恢复到原始状态解题思路:方法一:将原始数组翻转,然后将前k个数翻转,然后将剩余的数翻转,得到最终的nums;方法二:就是将索引为Len-k开始的数组元素赋值到nums的前k的元素,然后将索引0-Len-k-1的元素赋值给剩下的nums元素//方法一class原创 2017-09-14 20:20:22 · 222 阅读 · 0 评论 -
202. Happy Number
原文题目:202. Happy Number读题:题目很简单,将整数的每位取平方相加看是否等于1,如果死循环那么就返回False//方法一class Solution {public: int getResult(int n) { int temp = n; int result = 0; while(temp) { result += (tem原创 2017-09-15 09:17:16 · 190 阅读 · 0 评论 -
203. Remove Linked List Elements
原文题目:203. Remove Linked List Elements读题:删除链表中节点的值与目标值相等的节点,这和单链表删除某个节点不一样的地方在于,可能需要删除多个节点。解法一是自己写的,利用两个指针p和q,如果p,q相等个,则将p = q->next解法二是AC代码里比较好的//方法一 42msclass Solution {public:原创 2017-09-15 14:45:18 · 215 阅读 · 0 评论 -
88. Merge Sorted Array
原文题目:Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.Note:You may assume that nums1 has enough space (size that is greater or equal to m + n) to原创 2017-09-08 09:50:12 · 234 阅读 · 0 评论 -
69. Sqrt(x)
原文题目:Implement int sqrt(int x).Compute and return the square root of x.读题:题目就是求x的开根号,很重要的一点是返回值是整数,而不是浮点数,因此这个开根号其实只是接近实际开根号的值的整数而已,并不是精确的开根号,因此可以采用二分法进行处理。class Solution(object):原创 2017-09-08 09:57:34 · 258 阅读 · 0 评论 -
70. Climbing Stairs
原文题目:You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?Note: Given n wil原创 2017-09-08 10:04:45 · 157 阅读 · 0 评论 -
15. 3Sum
原题目:15. 3Sum读题:任意三个数相加为0,但是不能是相同的三元组解题思路:先排序,然后遍历序列,如果遇到相同的数则跳过,指定一个num[i]后,剩下的就是要找到另外两个数A+B=-num[i],可以采用二分查找,begin = i+1;end = len -1;依次查找可以得到,以下是AC代码class Solution {public: vector>原创 2017-10-10 15:22:26 · 185 阅读 · 0 评论