leetcode
因为爱,所以喜欢
一生很长,要和有趣的人在一起
展开
-
(LeetCode)70. 爬楼梯
假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶...原创 2019-08-29 10:02:50 · 90 阅读 · 0 评论 -
(LeetCode) 20. 有效的括号
给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:输...原创 2019-08-29 10:22:27 · 88 阅读 · 0 评论 -
(LeetCode)21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists...原创 2019-08-29 10:31:08 · 100 阅读 · 0 评论 -
(LeetCode) 26. 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:...原创 2019-08-29 10:45:41 · 99 阅读 · 0 评论 -
(LeetCode)38. 报数 & 67. 二进制求和 & 88. 合并两个有序数组 & 100. 相同的树 & 101. 对称二叉树 & 104. 二叉树的最大深度
(LeetCode)38. 报数报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211被读作"one 1"("一个一") , 即11。11 被读作"two 1s"("两个一"), 即21。21 被读作"one 2", "one...原创 2019-08-29 11:04:58 · 259 阅读 · 1 评论 -
(LeetCode)53. 最大子序和
给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-subarray ...原创 2019-08-29 12:36:14 · 98 阅读 · 0 评论 -
(LeetCode) 58. 最后一个单词的长度 & 69. x 的平方根 & 98. 验证二叉搜索树
给定一个仅包含大小写字母和空格' '的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/length-of-last-word ...原创 2019-08-29 13:06:49 · 150 阅读 · 0 评论 -
(LeetCode) 83. 删除排序链表中的重复元素 66. 加一
(LeetCode) 83. 删除排序链表中的重复元素给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/p...原创 2019-08-30 00:19:07 · 123 阅读 · 0 评论 -
(LeetCode)108. 将有序数组转换为二叉搜索树 & 105. 从前序与中序遍历序列构造二叉树 & 106. 从中序与后序遍历序列构造二叉树
(LeetCode)108. 将有序数组转换为二叉搜索树将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 ...原创 2019-08-30 00:18:02 · 161 阅读 · 0 评论 -
110. 平衡二叉树
110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,...原创 2019-08-30 23:50:50 · 133 阅读 · 0 评论 -
已知先序遍历序列和中序遍历序列,求后序遍历序列
回顾一下二叉树的三种遍历先序: 根->左->右中序:左->根->右后序:左->右->根只要我们知道中序和先序或着后序 那么我们就可以根据已知的两种遍历序列求出剩下的另一种遍历序列例:已知该二叉树的先序遍历序列为:A-B-D-E-G-C-F,中序遍历序列为:D-B-G-E-A-C-F。求该二叉树后序遍历序列第一步:找根 先...原创 2019-08-31 21:55:30 · 10870 阅读 · 2 评论 -
136. 只出现一次的数字 & 167. 两数之和 II - 输入有序数组 & 141. 环形链表 & 160. 相交链表&169. 求众数 & 168. Excel表列名称
136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接:https://leetcod...原创 2019-09-01 00:27:20 · 203 阅读 · 0 评论 -
31. 下一个排列 & 145. 二叉树的后序遍历 & 1171. 从链表中删去总和值为零的连续节点
31. 下一个排列实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1来源:力扣(LeetCode)...原创 2019-09-01 20:02:15 · 205 阅读 · 0 评论 -
203. 移除链表元素 & 234. 回文链表 & 198. 打家劫舍
203. 移除链表元素删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5/** * Definition for singly-linked list. * public class ListNode { * ...原创 2019-09-02 18:09:03 · 219 阅读 · 0 评论 -
389. 找不同 & 179. 最大数
41. 缺失的第一个正数给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。来源:力扣(LeetCode)链接:https://lee...原创 2019-09-03 14:51:01 · 278 阅读 · 0 评论 -
二叉树求最大最小叶子节点距离
题目描述:有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的叶节点到权值最小的叶节点的距离。二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。给定二叉树的根节点root,请返回所求距离。思路:先求最大最小叶子节点,再求两节点的LCA(最近公共祖先),求两节点到LCA距离。首先得先明白如何求LCA(LCA属于比较经典的一类考点...原创 2019-09-18 11:50:02 · 2298 阅读 · 0 评论 -
(LeetCode)35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0来...原创 2019-08-29 09:47:39 · 111 阅读 · 0 评论 -
(LeetCode)28. 实现 strStr()
实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = ...原创 2019-08-29 09:38:56 · 104 阅读 · 0 评论 -
[LeetCode] Best Time to Buy and Sell Stock II 买股票的最佳时间之二
Say you have an array for which theithelement is the price of a given stock on dayi.Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy o...原创 2019-06-19 16:15:18 · 98 阅读 · 0 评论 -
rotate-image
问题:The gray code is a binary numeral system where two successive values differ in only one bit.Given a non-negative integer n representing the total number of bits in the code, print the sequence ...原创 2019-06-20 22:52:20 · 1014 阅读 · 0 评论 -
[LeetCode] Intersection of Two Arrays 两个数组相交
Given two arrays, write a function to compute their intersection.Example:Givennums1=[1, 2, 2, 1],nums2=[2, 2], return[2].Note:Each element in the result must be unique. The result can b...原创 2019-06-25 09:42:17 · 121 阅读 · 0 评论 -
[LeetCode] Heaters 加热器
Winter is coming! Your first job during the contest is to design a standard heater with fixed warm radius to warm all the houses.Now, you are given positions of houses and heaters on a horizontal li...原创 2019-06-25 13:15:00 · 153 阅读 · 0 评论 -
计算到达18岁生日所经过的总天数
Problem DescriptionGardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。Input一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03...原创 2019-06-30 23:12:17 · 2117 阅读 · 0 评论 -
拼多多
import java.util.ArrayList;import java.util.HashMap;import java.util.Scanner;public class Pin { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = ...原创 2019-07-30 10:14:25 · 547 阅读 · 0 评论 -
字符串的最大公因子
1. 5076 字符串的最大公因子(简单)描述:对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。返回字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。示例 1:输入:str1 = “ABCABC”, str2 = “ABC”输出:“ABC”示例 2:输入:str1 ...原创 2019-07-28 10:16:49 · 84 阅读 · 0 评论 -
数字和为sum的方案数
数字和为sum的方法数给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。 输入5 155 5 10 2 3输出4import java.util.Scanner;public class KK { public static void main(String[...原创 2019-07-28 10:42:00 · 668 阅读 · 0 评论 -
瓜子2019/08/26(LeetCode 962. 最大宽度坡 520. 检测大写字母)
给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写,比如"Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: "FlaG"...原创 2019-08-26 19:43:28 · 226 阅读 · 2 评论 -
(Leetcode)8. 字符串转换整数 (atoi)
请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可...原创 2019-08-27 15:16:24 · 167 阅读 · 0 评论 -
(LeetCode)9. 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。来源:...原创 2019-08-27 15:19:21 · 113 阅读 · 0 评论 -
(Leetcode)5. 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-subst...原创 2019-08-27 16:27:29 · 150 阅读 · 0 评论 -
(LeetCode)1. 两数之和
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(...原创 2019-08-27 17:23:53 · 75 阅读 · 0 评论 -
(LeetCode)2. 两数相加
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...原创 2019-08-27 18:21:51 · 212 阅读 · 0 评论 -
最长不含重复字符的子字符串
动态规划,用f(i)表示以i个字符结尾不包含重复子字符串的最长长度,从左向右扫描1、若第i个字符在之前没出现过,则 f(i) = f(i-1) + 1;2、若第i个字符在之前出现过,计算第i个字符距离上次出现之间的距离为d(a)若d <= f(i-1),则说明第i个字符上次出现在f(i-1)对应的不重复字符串之内,那么这时候更新 f(i) = d(b)若d > f(...原创 2018-04-10 22:51:47 · 233 阅读 · 0 评论 -
(LeetCode) 7. 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-integerpackage demo4.huaw...原创 2019-08-28 23:48:40 · 65 阅读 · 0 评论 -
(LeetCode)27. 移除元素
给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中...原创 2019-08-29 00:19:18 · 74 阅读 · 0 评论 -
(LeetCode 135) Candy N个孩子站成一排,给每个人设定一个权重
题目:N个孩子站成一排,给每个人设定一个权重(已知)。按照如下的规则分配糖果: (1)每个孩子至少分得一颗糖果 (2)权重较高的孩子,会比他的邻居获得更多的糖果。问:总共最少需要多少颗糖果?请分析算法思路,以及算法的时间,空间复杂度是多少。思路:假设每个孩子分到的糖果数组为A[N],初始化为{1},因为每个人至少分到一颗糖。方法一:1、与前面的邻居比较,前向遍历...原创 2019-03-22 11:49:18 · 1114 阅读 · 0 评论