![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
Liekkas_Javey
Fiat Lux
展开
-
LeetCode刷题笔记--008. 字符串转换整数 (atoi)
题目描述:请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字...原创 2019-02-15 21:35:00 · 190 阅读 · 0 评论 -
LeetCode刷题笔记--001.两数之和
题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。分析:可以内外循环两遍遍历nums数组,若他们的和为目标值target,则返回这两个数的下标索引。(暴力法)查找一个元素是否存在于数组中最快的方法是,使用哈希表。故可以首先遍历数组n...原创 2019-02-13 14:09:12 · 215 阅读 · 0 评论 -
LeetCode刷题笔记--102. 二叉树的层次遍历
题目描述:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[[3],[9,20],[15,7]]分析:一:宽度优先搜索。使用cur_level指代当前层,next_level指...原创 2019-02-18 21:24:50 · 234 阅读 · 0 评论 -
LeetCode刷题笔记--073. 矩阵置零
题目描述:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4...原创 2019-02-19 20:38:09 · 212 阅读 · 0 评论 -
LeetCode刷题笔记--098. 验证二叉搜索树
题目描述:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6...原创 2019-02-20 21:39:06 · 220 阅读 · 0 评论 -
LeetCode刷题笔记-003. 无重复子串
题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “...原创 2019-02-26 13:48:41 · 210 阅读 · 0 评论 -
LeetCode刷题笔记--771. 宝石与石头
题目描述:给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = "aA原创 2019-02-20 22:00:44 · 186 阅读 · 0 评论 -
LeetCode刷题笔记--022. 括号生成
题目描述:给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]分析:代码:执行用时: 60 ms, 在Generate Parentheses的Python3提交中击败了38.03% 的用户内存消耗: 13....原创 2019-02-26 19:44:05 · 221 阅读 · 0 评论 -
LeetCode刷题笔记--007. 整数反转
题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,231−1][−2^{31}, 2^{31} − 1][−231,231−1]。请根据这个假...原创 2019-02-26 21:10:21 · 227 阅读 · 0 评论 -
LeetCode刷题笔记--009.回文数
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶...原创 2019-02-26 21:24:54 · 239 阅读 · 0 评论 -
LeetCode刷题笔记--026. 删除排序数组中的重复项
题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定...原创 2019-02-27 22:16:08 · 190 阅读 · 0 评论 -
LeetCode刷题笔记--014. 最长公共前缀
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。分析:以第一个字符串为标准,遍历其余字符串的字符...原创 2019-02-27 21:44:29 · 190 阅读 · 0 评论 -
LeetCode刷题笔记--015. 三数之和
题目描述:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]分析:一、首先对数组nu...原创 2019-02-16 20:06:38 · 133 阅读 · 0 评论 -
LeetCode刷题笔记--020. 有效的括号
题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入...原创 2019-02-16 20:54:03 · 178 阅读 · 0 评论 -
LeetCode刷题笔记--021. 合并两个有序链表
题目描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4分析:一、维护一个当前节点cur,以及节点l1和l2。若l1和l2非空,如果l1的值小于l2的值,则将l1添加到cur原创 2019-02-16 22:09:23 · 307 阅读 · 0 评论 -
LeetCode刷题笔记--028. 实现strStr()
题目描述:实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle ...原创 2019-02-17 10:38:37 · 166 阅读 · 0 评论 -
LeetCode刷题笔记--070. 爬楼梯
题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 +...原创 2019-02-17 19:06:54 · 275 阅读 · 0 评论 -
LeetCode刷题笔记--088. 合并两个有序数组
题目描述:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2...原创 2019-02-17 19:59:18 · 205 阅读 · 0 评论 -
LeetCode刷题笔记--125. 验证回文串
题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false分析:设置两个指针i和j,i从头遍历到尾,j从尾遍历至头。若两者同为字母或数字,则进...原创 2019-02-17 20:29:50 · 211 阅读 · 0 评论 -
LeetCode刷题笔记--002. 两数相加
题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 ...原创 2019-02-17 21:27:31 · 282 阅读 · 0 评论 -
LeetCode刷题笔记--027. 移除元素
题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前...原创 2019-02-17 22:04:25 · 194 阅读 · 0 评论 -
LeetCode刷题笔记--003. 最长不重复子串
题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “...原创 2019-02-27 13:51:26 · 212 阅读 · 0 评论