自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P172阶乘后的零

//给定一个整数 n,返回 n! 结果尾数中零的数量。 //// 示例 1: //// 输入: 3//输出: 0//解释: 3! = 6, 尾数中没有零。 //// 示例 2: //// 输入: 5//输出: 1//解释: 5! = 120, 尾数中有 1 个零. //// 说明: 你算法的时间复杂度应为 O(log n) 。 // Related Topics 数学 // ???? 384 ???? 0package leetcode.editor.cn;//Ja

2020-12-28 11:17:20 128

原创 【leetcode】P172阶乘后的零

//给定一个整数 n,返回 n! 结果尾数中零的数量。 //// 示例 1: //// 输入: 3//输出: 0//解释: 3! = 6, 尾数中没有零。 //// 示例 2: //// 输入: 5//输出: 1//解释: 5! = 120, 尾数中有 1 个零. //// 说明: 你算法的时间复杂度应为 O(log n) 。 // Related Topics 数学 // ???? 384 ???? 0package leetcode.editor.cn;//Ja

2020-12-04 17:01:17 145

原创 KMP算法

问题KMP算法解决的是两个字符串中一个是否在另外一个中是否存在以及存在位置的索引的问题常规思路遍历长串中的每个位置,从该位置开始与短串匹配,对上了返回结果,直到遍历完长串的所有字符KMP算法首先,通过一个辅助数组,记录短串每个位置字符前面的子串的前缀和后缀中相同的前缀和后缀串的最长的长度,挺绕的前缀和后缀:字符串中从前(后)往后(前)取部分构成的子串即字符串的前(后)缀,需要说明的是,前后缀长度小于字符串总长,意味着前缀和后缀不能是原字符串前缀和后缀相同:然后,定义两个指针a,b,分别

2020-12-04 14:20:58 165

原创 【leetcode】P171Excel表列序号

//给定一个Excel表格中的列名称,返回其相应的列序号。 //// 例如, //// A -> 1// B -> 2// C -> 3// ...// Z -> 26// AA -> 27// AB -> 28 // ...// //// 示例 1: //// 输入: "A"//输出: 1// //// 示例 2: //// 输入: "AB"//输出: 28// ///

2020-12-01 17:03:10 84

原创 【leetcode】P123买卖股票的最佳时机 III——最多交易两次

//给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 //// 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 //// 注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 //// 示例 1: //// 输入: [3,3,5,0,0,3,1,4]//输出: 6//解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。// 随后,在

2020-12-01 16:15:08 243

原创 P169多数元素

//给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 //// 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 //// //// 示例 1: //// 输入: [3,2,3]//输出: 3 //// 示例 2: //// 输入: [2,2,1,1,1,2,2]//输出: 2// // Related Topics 位运算 数组 分治算法 // ???? 806 ???? 0package leetco

2020-12-01 10:41:53 62

原创 P168Excel表列名称

//给定一个正整数,返回它在 Excel 表中相对应的列名称。 //// 例如, //// 1 -> A// 2 -> B// 3 -> C// ...// 26 -> Z// 27 -> AA// 28 -> AB // ...// //// 示例 1: //// 输入: 1//输出: "A"// //// 示例 2: //// 输入: 28//输出: "AB"// //

2020-11-30 17:03:03 73

原创 P167两数之和II——有序数组

//给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 //// 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 //// 说明: //// // 返回的下标值(index1 和 index2)不是从零开始的。 // 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 // //// 示例: //// 输入: numbers = [2, 7, 11, 15], target = 9/

2020-11-30 14:10:55 68

原创 【leetcode】P136只出现一次的数

容易想的,往HashMap里存,再遍历一遍//给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 //// 说明: //// 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? //// 示例 1: //// 输入: [2,2,1]//输出: 1// //// 示例 2: //// 输入: [4,1,2,1,2]//输出: 4 // Related Topics 位运算 哈希表 // ???? 1594

2020-11-27 16:48:37 72

原创 【leetcode】P125验证回文串

双指针//给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 //// 说明:本题中,我们将空字符串定义为有效的回文串。 //// 示例 1: //// 输入: "A man, a plan, a canal: Panama"//输出: true// //// 示例 2: //// 输入: "race a car"//输出: false// // Related Topics 双指针 字符串 // ???? 293 ???? 0packa

2020-11-27 13:51:12 90

原创 【leetcode】P122买卖股票的最佳时机II——不限交易次数

贪心思想,既然交易次数不受限,那么将交易限制在间隔一天内,即昨天买进今天卖出,只要能赚钱就交易,那么遍历数组,只要price比昨天大,就累加//给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 //// 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 //// 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 //// //// 示例 1: //// 输入: [7,1,5,3,6,4]//输出: 7.

2020-11-11 16:54:37 202

原创 【leetcode】P119杨辉三角II

//给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 //// //// 在杨辉三角中,每个数是它左上方和右上方的数的和。 //// 示例: //// 输入: 3//输出: [1,3,3,1]// //// 进阶: //// 你可以优化你的算法到 O(k) 空间复杂度吗? // Related Topics 数组 // ???? 195 ???? 0package leetcode.editor.cn;import java.util.ArrayL

2020-11-11 09:08:48 80

原创 【leetcode】P121买卖股票的最佳时机

先来个遍历,O(n^2)+O(1)//给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 //// 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 //// 注意:你不能在买入股票前卖出股票。 //// //// 示例 1: //// 输入: [7,1,5,3,6,4]//输出: 5//解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。.

2020-11-10 21:02:46 81

原创 【leetcode】P118杨辉三角

//给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 //// //// 在杨辉三角中,每个数是它左上方和右上方的数的和。 //// 示例: //// 输入: 5//输出://[// [1],// [1,1],// [1,2,1],// [1,3,3,1],// [1,4,6,4,1]//] // Related Topics 数组 // ???? 373 ???? 0package leetcode.editor.cn;

2020-11-10 19:55:27 73

原创 【leetcode】P112查找二叉树路径和是否存在

广搜,且通过两个队列辅助,一个用作广度搜索二叉树,一个用作存放当前节点的sum值,如果遍历到等于给定的值那么结束//给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 //// 说明: 叶子节点是指没有子节点的节点。 //// 示例: //给定如下二叉树,以及目标和 sum = 22, //// 5// / \// 4 8// /.

2020-11-10 19:35:04 112

原创 【leetcode】P111二叉树最小深度

深搜,整颗二叉树的最小高度等于左子树最小高度和右子树最小高度中更小那个加1,而最右子树的最小高度显然和题目是一个问题//给定一个二叉树,找出其最小深度。 //// 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 //// 说明:叶子节点是指没有子节点的节点。 //// //// 示例 1: //// //输入:root = [3,9,20,null,null,15,7]//输出:2// //// 示例 2: //// //输入:root = [2,null.

2020-11-10 17:25:42 76

原创 【leetcode】P110平衡二叉树的判断

//给定一个二叉树,判断它是否是高度平衡的二叉树。 //// 本题中,一棵高度平衡二叉树定义为: //// // 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 // //// //// 示例 1: //// //输入:root = [3,9,20,null,null,15,7]//输出:true// //// 示例 2: //// //输入:root = [1,2,2,3,3,null,null,4,4]//输出:false// ////

2020-11-10 16:23:30 132

原创 【leetcode】P108有序数组转平衡二叉树

//将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 //// 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 //// 示例: //// 给定有序数组: [-10,-3,0,5,9],////一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树://// 0// / \// -3 9// / /// -10 5// // Related T

2020-11-09 16:55:43 72

原创 【leetcode】P107二叉树的层序遍历II

//给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) //// 例如: //给定二叉树 [3,9,20,null,null,15,7], //// 3// / \// 9 20// / \// 15 7// //// 返回其自底向上的层次遍历为: //// [// [15,7],// [9,20],// [3]//]// // Related Topics 树 广度优先搜

2020-11-09 16:29:42 82

原创 【leetcode】P102二叉树的层序遍历

//给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 //// //// 示例: //二叉树:[3,9,20,null,null,15,7], //// 3// / \// 9 20// / \// 15 7// //// 返回其层次遍历结果: //// [// [3],// [9,20],// [15,7]//]// // Related Topics 树 广度优先搜索 // ?

2020-11-09 16:16:24 103

原创 【leetcode】P101对称二叉树

递归,求一个二叉树是否对称,即是求左右子树是否堆成,由此可以构建一个递归过程,以左右节点为参数,判断是否堆成,要求左右节点值相等并且左右节点的孩子节点互为镜像对称节点//给定一个二叉树,检查它是否是镜像对称的。 //// //// 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 //// 1// / \// 2 2// / \ / \//3 4 4 3// //// //// 但是下面这个 [1,2,2,null,3,null,3] 则不是.

2020-11-07 21:33:38 106

原创 【leetcode】P88合并有序数组

好好做个API caller,System数组copy函数+Arrays工具类sort函数//给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 //// //// 说明: //// // 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。 // 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 // //// //// 示例: .

2020-11-05 19:08:19 77

原创 【leecode】P69x的平方根

先来个简单粗暴无脑遍历//实现 int sqrt(int x) 函数。 //// 计算并返回 x 的平方根,其中 x 是非负整数。 //// 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 //// 示例 1: //// 输入: 4//输出: 2// //// 示例 2: //// 输入: 8//输出: 2//说明: 8 的平方根是 2.82842..., // 由于返回类型是整数,小数部分将被舍去。// // Related Topics .

2020-11-05 17:26:03 158

原创 【leetcode】P100相同的树

//给定两个二叉树,编写一个函数来检验它们是否相同。 //// 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 //// 示例 1: //// 输入: 1 1// / \ / \// 2 3 2 3//// [1,2,3], [1,2,3]////输出: true //// 示例 2: //// 输入: 1 1//

2020-11-04 20:29:59 85

原创 【leetcode】P67二进制求和

投机的解法//给你两个二进制字符串,返回它们的和(用二进制表示)。 //// 输入为 非空 字符串且只包含数字 1 和 0。 //// //// 示例 1: //// 输入: a = "11", b = "1"//输出: "100" //// 示例 2: //// 输入: a = "1010", b = "1011"//输出: "10101" //// //// 提示: //// // 每个字符串仅由字符 '0' 或 '1' 组成。 // 1 <= a.

2020-11-04 15:58:42 160

原创 【leetcode】P83去除有序链表重复元素

//给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 //// 示例 1: //// 输入: 1->1->2//输出: 1->2// //// 示例 2: //// 输入: 1->1->2->3->3//输出: 1->2->3 // Related Topics 链表 // ???? 417 ???? 0package leetcode.editor.cn;//Java:删除排序链表中的重复元素publi

2020-11-03 20:03:15 95

原创 【leetcode】P70爬楼梯

//假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 //// 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? //// 注意:给定 n 是一个正整数。 //// 示例 1: //// 输入: 2//输出: 2//解释: 有两种方法可以爬到楼顶。//1. 1 阶 + 1 阶//2. 2 阶 //// 示例 2: //// 输入: 3//输出: 3//解释: 有三种方法可以爬到楼顶。//1. 1 阶 + 1 阶 + 1 阶//2. 1 阶

2020-11-03 17:39:19 65

原创 【leetcode】P66加1

优解,只要求数组加1,那么从末尾开始,当前位加1,如果不超过10,则结束了,如果超过10,当前为变成0,前一位加一,循环到第1位,如果循环结束了,说明第一位还要进位,则扩充数组,首位为1,后面全为0//给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 //// 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 //// 你可以假设除了整数 0 之外,这个整数不会以零开头。 //// 示例 1: //// 输入: [1,2,3]//输出: [1,2,4].

2020-11-03 15:42:11 75

原创 【leetcode】P38外观数列

递推//给定一个正整数 n ,输出外观数列的第 n 项。 //// 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。 //// 你可以将其视作是由递归公式定义的数字字符串序列: //// // countAndSay(1) = "1" // countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。 // //// 前五项如下: //// //1. 1//2. 11//3.

2020-11-03 11:11:57 42

原创 【leetcode】P58最后一个单词的长度

优解//给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 //// 如果不存在最后一个单词,请返回 0 。 //// 说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。 //// //// 示例: //// 输入: "Hello World"//输出: 5// // Related Topics 字符串 // ???? 251 ???? 0package lee

2020-11-02 20:56:27 42

原创 【leetcode】P35搜索插入位置

//给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 //// 你可以假设数组中无重复元素。 //// 示例 1: //// 输入: [1,3,5,6], 5//输出: 2// //// 示例 2: //// 输入: [1,3,5,6], 2//输出: 1// //// 示例 3: //// 输入: [1,3,5,6], 7//输出: 4// //// 示例 4: //// 输入: [1,

2020-11-02 11:40:18 92

原创 【leetcode】P28实现Strstr

//实现 strStr() 函数。 //// 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如//果不存在,则返回 -1。 //// 示例 1: //// 输入: haystack = "hello", needle = "ll"//输出: 2// //// 示例 2: //// 输入: haystack = "aaaaa", needle = "bba"//输出: -1/

2020-11-02 11:39:26 130

原创 【leetcode】P27移除元素

//给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 //// 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 //// 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 //// //// 示例 1: //// 给定 nums = [3,2,2,3], val = 3,////函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。////你不需要考虑数

2020-11-02 11:38:24 54

原创 【leetcode】P26删除有序数组重复项

//给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 //// 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 //// //// 示例 1: //// 给定数组 nums = [1,1,2], ////函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 ////你不需要考虑数组中超出新长度后面的元素。 //// 示例 2: //// 给定

2020-11-02 11:37:44 56

原创 【leetcode】P21合并两个有序链表

思路:参考两个有序数组的合并过程,遍历两个链表:值相同,把两个链表当前节点加到结果链表,同时后移值不同,那个值小加那个,同时后移时间复杂度O(m+n),空间复杂度O(m+n)//将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 //// //// 示例: //// 输入:1->2->4, 1->3->4//输出:1->1->2->3->4->4// // Related Top.

2020-11-02 11:36:02 102

原创 【leetcode】P20有效的括号

//给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 //// 有效字符串需满足: //// // 左括号必须用相同类型的右括号闭合。 // 左括号必须以正确的顺序闭合。 // //// 注意空字符串可被认为是有效字符串。 //// 示例 1: //// 输入: "()"//输出: true// //// 示例 2: //// 输入: "()[]{}"//输出: true// //// 示例 3: //// 输入

2020-11-01 20:28:08 46

原创 【leetcode】P14最长公共前缀

//编写一个函数来查找字符串数组中的最长公共前缀。 //// 如果不存在公共前缀,返回空字符串 ""。 //// 示例 1: //// 输入: ["flower","flow","flight"]//输出: "fl"// //// 示例 2: //// 输入: ["dog","racecar","car"]//输出: ""//解释: 输入不存在公共前缀。// //// 说明: //// 所有输入只包含小写字母 a-z 。 // Related Topics 字符串

2020-11-01 19:29:45 205 1

原创 【leetcode】P13罗马数字转整数

优解//罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 //// 字符 数值//I 1//V 5//X 10//L 50//C 100//D 500//M 1000 //// 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27

2020-11-01 17:54:20 61

原创 【leetcode】P9回文数

优解//判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 //// 示例 1: //// 输入: 121//输出: true// //// 示例 2: //// 输入: -121//输出: false//解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。// //// 示例 3: //// 输入: 10//输出: false//解释: 从右向左读, 为 01 。因此它不是一个回文数。/

2020-11-01 17:51:11 76

原创 【leetcode】P7整数反转

优解//给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 //// 示例 1: //// 输入: 123//输出: 321// //// 示例 2: //// 输入: -123//输出: -321// //// 示例 3: //// 输入: 120//输出: 21// //// 注意: //// 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回

2020-11-01 17:46:45 86

空空如也

空空如也

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

TA关注的人

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