![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 225 阅读 · 0 评论 -
217/219. Contains Duplicate /Contains Duplicate II
原文题目: 217. Contains Duplicate 219. Contains Duplicate II 读题: 217只要找出是否有重复值, 219找出重复值,且要判断两者索引之差是否小于k //217. Contains Duplicate 46ms class Solution { public: bool containsDuplicate(vector&原创 2017-09-18 19:18:34 · 359 阅读 · 0 评论 -
102/107. Binary Tree Level Order Traversal/II
原文题目: 102. Binary Tree Level Order Traversal 107. Binary Tree Level Order Traversal II 读题: 102. 层序遍历二叉树,每一层作为一个数组,从上到下输出 107.层序遍历二叉树,每一层作为一个数组,反过来从下到上输出 两者只有最后一行的存储方式不一致 class Solution(obje原创 2017-09-11 10:32:49 · 262 阅读 · 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 · 132 阅读 · 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 · 175 阅读 · 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 · 200 阅读 · 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 · 334 阅读 · 0 评论 -
118/119. Pascal's Triangle/II
原文题目: 118. Pascal's Triangle 119. Pascal's Triangle II 读题: 杨辉三角问题 '''118''' class Solution(object): def generate(self, numRows): """ :type numRows: int :rtype: Lis原创 2017-09-12 09:45:05 · 163 阅读 · 0 评论 -
125. Valid Palindrome
原文题目: 125. Valid Palindrome 读题: 该题目就是给定一组字符串,然后只检查字符串中的字母和数字,并且忽略字母的大小写,然后判断是否为回文 思路: 解法一:循环遍历字符串,将非字母非数字的字符用''直接替换掉得到纯字母数字字符串,然后忽略大小写lower()或者upper()判断是否为回文 该解法时间复杂度不符合leetcode的要求,运行时间超时 解法二:给原创 2017-09-12 11:32:21 · 178 阅读 · 0 评论 -
8. String to Integer (atoi)
原文题目: 8. String to Integer (atoi) 读题: 这个题目主要是判断输入,以及有符号数溢出情况,以下输入是合理的 1) 输入" 12" 输出12 2)输入" -23a34" 输出-23 3)输入 "+010" 输出10 以下是AC代码: #define MAXNUM 2147483647 #define MINNUM -214748原创 2017-10-10 11:28:27 · 252 阅读 · 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 · 419 阅读 · 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 · 196 阅读 · 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 · 224 阅读 · 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 · 338 阅读 · 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 · 187 阅读 · 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 · 272 阅读 · 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 · 201 阅读 · 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 · 175 阅读 · 0 评论 -
203. Remove Linked List Elements
原文题目: 203. Remove Linked List Elements 读题: 删除链表中节点的值与目标值相等的节点,这和单链表删除某个节点不一样的地方在于,可能需要删除多个节点。 解法一是自己写的,利用两个指针p和q,如果p,q相等个,则将p = q->next 解法二是AC代码里比较好的 //方法一 42ms class Solution { public:原创 2017-09-15 14:45:18 · 190 阅读 · 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 · 223 阅读 · 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 · 237 阅读 · 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 · 143 阅读 · 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 · 169 阅读 · 0 评论