自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode只出现一次的数字算法与分析

@Leetcode只出现一次的数字看到题面笔者十分兴奋啊,容易啊!但是笔者只看到了第一句,看到第二局就蒙了,也请各位看官瞧一瞧,请看题干:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1...

2019-10-27 23:37:21 170 1

原创 Leetcode验证回文串算法与分析

@Leetcode验证回文串笔者的记忆中,不久前曾经有一道回文数的题,笔者想了想回顾了一下,然而对于回文串的处理可不止回文数的算法而已。请看题干:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:...

2019-10-25 18:14:08 188

原创 Leetcode买卖股票的最佳时机Ⅱ算法与分析

@Leetcode买卖股票的最佳时机Ⅱ第二道炒股的题,这次可以真正的”炒“股了!请看题干:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:示例 2:示例 3:拿到一看,和第一道买卖股票的最大区别...

2019-10-24 12:11:12 219

原创 Leetcode买卖股票的最佳时机算法与分析

@Leetcode买卖股票的最佳时机来到一道比较基础的题,那么问题来了,你会用什么方法求解呢?请看题干:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:...

2019-10-20 02:41:39 179

原创 Leetcode杨辉三角Ⅱ算法与分析

@Leetcode杨辉三角Ⅱ趁热打铁,前两天刚刚接触了dp求杨辉三角的小白笔者,今天为大家带来详细的求一行杨辉三角的分析。请看题干:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。示例:输入: 3输出: [1,3,3,1]所谓一行杨辉三角,顾名思义,就是知道行数,求那一行的解,当然,你大可以把之前的整个二维数组中的最后一部分取出来做为答案交上去,但同时开辟二维...

2019-10-16 20:16:26 319

原创 Leetcode杨辉三角算法与分析

@Leetcode杨辉三角似乎不再是树类型的题目了,今天我们来看一下最简单的动态规划,也就是大佬们所说的dp问题,请看题干:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。示例:杨辉三角属于动态规划类型题中最为简单易懂好理解的一个。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不...

2019-10-14 12:15:49 570

原创 Leetcode路径总和算法与分析

@Leetcode路径总和当经历过这么数个树类型的题目时,拿到这道题目,你心中是否已经有一个想法了呢?没错,小白笔者的确有一个想法,虽然认真写了一会之后就觉得这个想法不靠谱哈哈。废话少说,请看题干:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22...

2019-10-11 21:33:45 182 1

原创 Leetcode二叉树的最小深度算法与分析

@Leetcode二叉树的最小深度之前有一个求最大深度的问题,似乎与本题十分相像?于是想耍小聪明的笔者决定借鉴一下之前的思路。果不其然,还真的挺像哦。请看题干:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最小深度 2.题目简...

2019-10-09 21:40:16 136

原创 Leetcode平衡二叉树算法与分析

@Leetcode平衡二叉树树类型的典型题之一,废话少说,直接来题干:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]返回true。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]返回false。...

2019-10-07 21:00:00 234

原创 Leetcode将有序数组转换为二叉搜索树算法与分析

@Leetcode将有序数组转换为二叉搜索树又是一个让笔者看到就如临大敌的题目,看了半天数据结构的书也没找到好的思路,经过高人点拨,知道了一个叫中序遍历必然有序的二叉搜索树的概念。请看题干:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:当你真正想明白,玩清楚这个题目和一些二叉...

2019-09-30 11:07:18 146

原创 Leetcode二叉树的最大深度算法与分析

@Leetcode二叉树的最大深度又是一道二叉树结构的基础题,与之前的相同树和对称树有几分相似也有几分不同,请看题干:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。笔者拿到题的第一反应,递归肯定是可以完成的,只要不...

2019-09-26 23:51:04 232 1

原创 Leetcode二叉树的层序遍历Ⅱ算法与分析

@Leetcode二叉树的层序遍历Ⅱ当笔者对各种二叉树的题目有点小小自信的时候,就又被这道简单题给打败了,脑袋一片空白开始看题:

2019-09-26 14:09:22 498

原创 Leetcode对称二叉树算法与分析

@Leetcode对称二叉树作为一道稍有进阶的数据结构经典题,对称二叉树的使用着实费了小白笔者不少脑筋。我一直在想能不能用先序后序遍历的方法解决,即在一棵树上做出判断,然而实际上解法并非如此。卖个关子,请看题干:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:说明:...

2019-09-11 15:08:02 331

原创 Leetcode相同的树算法与分析

@Leetcode相同的树许久不曾动笔,上来是一道基础的数据结构题,本题和在数据结构的初学的某些题有一些相像,请看题干:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:这里是引用...

2019-09-08 22:56:24 177

原创 Leetcode合并两个有序数组算法与分析

@Leetcode合并两个有序数组

2019-08-19 22:09:05 167

原创 Leetcode删除排序链表中的重复元素算法与分析

@Leetcode删除排序链表中的重复元素相比之前的在排序数组中删除重复项的题,这题的思路明显要明晰了许多,就看各位coder的手法如何了!请看题干:

2019-08-18 19:32:39 156 1

原创 Leetcode爬楼梯算法与分析

@Leetcode爬楼梯上楼梯经典问题,解法可谓是千奇百怪,但是几个最为人所熟知的方法还是依旧十分基础,说起来更是朗朗上口。不多说了,请看题干:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1.1 阶 + 1 阶2.2...

2019-08-16 23:53:07 1189

原创 Leetcodex的平方根算法与分析

@Leetcodex的平方根简单的数学问题,这并不是一道考验思路的题,而是考验算法运用的问题,怎么更快的解决才是王道!请看题干:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.828...

2019-08-14 18:26:44 475

原创 Leetcode二进制加法算法与分析

@Leetcode二进制加法这是一道不需要看题干就知道在问啥的题,a+b的二进制版本,来看题干:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”首先在落笔之前,请每个小白co...

2019-08-13 18:55:11 663

原创 Leecode加一算法与分析

@Leecode加一class Solution {public:    vector<int> plusOne(vector<int>& digits) {            int m=digits.size()...

2019-08-11 21:31:33 167

原创 Leetcode最后一个单词的长度算法与分析

@Leetcode最后一个单词的长度讲道理,这是一道简单题,也是一道有无数种方法解决的问题,但也就是这道简单题,让笔者一整天茶饭不思debug,那么他到底简单在哪呢?请看题干:给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: “Hello World”...

2019-07-21 12:12:32 102

原创 Leetcode最大子序和算法与分析

@Leetcode最大子序和最大子序和,以其经典、有教育性为很多人所数值,江湖或称“最大子段和”、“最长子段和”说的都是他,方法简单要用脑,编写清晰要小心,请看题干:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。示例:输入: [-2,1,-3,4,-1,...

2019-07-19 23:08:20 215

原创 Leetcode报数算法与分析

@Leetcode报数这题是到目前为止,第一个有点意思的需要脑子的题。说句实话,笔者思考许久,最多写了4个循环,最终还是被自己菜到,卑微地去向大佬们学习借鉴了一下思路,发现本题需要一个“逆向思维”,具体玄妙请看下文分解。废话少说,上题干:报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1、 12、 11.3、 214、 1211...

2019-07-18 21:58:52 308

原创 Leetcode搜索插入位置算法与分析

@Leetcodec搜索插入位置首先不要慌张朋友,无论你是一个久经沙场的大佬,还是一个刚入门的萌新,这道题,都是很简单的,那么在简单之上我们怎样取得较高的完成度,才是我们要考虑的。先看题干:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素示例 1:输入: [1,3,5,6], 5输出: 2...

2019-07-18 12:16:40 144

原创 Leetcode实现strStr()算法设计与分析

@Leetcode实现strStr()

2019-07-16 14:53:24 169

原创 Leetcode移除元素算法与分析

@Leetcode移除元素这道题怎么看上去和删除数组中的重复元素好像啊?诶?移除元素,看看看看,只要移除数组中指定的元素?这不是好办的很,刚刚还要移除所有重复元素来着,现在好了,少了很多工作咯?先别高兴地太早,来看题干:...

2019-07-15 19:48:17 150

原创 Leetcode删除排序数组中的重复项算法与分析

@Leetcode删除排序数组中的重复项这是个很经典的入门题,需要你在不开辟新的数组空间的情况下将数组中重复的单元删除并返回数组的新长度,废话少说,让我们来看看题干:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = ...

2019-07-15 14:11:50 262

原创 Leetcode合并两个有序链表算法与分析

@Leetcode合并两个有序链表想必每一个接触过链表这种数据结构的coder都会对链表的合并有所了解,而两个有序链表的合并则是其中较为简单的一部分,不多说,来看题干:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4-&...

2019-07-14 21:30:45 306

原创 Leetcode有效的括号算法与分析

@Leetcode有效的括号相信有效的括号对于大多数的小白coder并不陌生,每个人在学习数据结构的栈的这一章节时都会接触到或者至少了解到这一问题。本题是使用栈结构的一个标志性的题因为栈结构先进后出的特性十分符合括号一层包一层的关系。废话少说,来看题干:...

2019-07-12 22:23:03 359

原创 Leetcode最长公共前缀算法与分析

@Leetcode最长公共前缀看到最长公共前缀,相信大多数的小白coder肯定和我一样,联想到最长公共子序列算法。但是那个算法和今天的最长公共前缀有很大的区别,究竟区别在哪呢,让我们先看题干:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。说明:所有输入只包含小写字母 a-z 。示例 1:输入: [“flower”,“flow”,“flight”...

2019-07-11 16:26:48 198

原创 Leetcode罗马数字转整数算法与分析

@Leetcode罗马数字转整数罗马数字在生活中的使用一直是十分广泛的(虽然用在标题比较多),但其编排方法之独特,始终耐人寻味。今天让我们探寻一下罗马数字编程实现的奥秘,先看题干:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。...

2019-07-10 16:22:57 177

原创 Leetcode回文数算法与分析

@Leetcode回文数回文一直是很诗意的艺术形式,我们可以看到诸如 “雪映梅花梅映雪,莺宜柳絮柳宜莺” 这样的回文对联,在算法分析中,回文数的写法同样是极富有诗意的。先看题干:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。能不将整数转为字符串来解决这个问题吗?(进阶要求)示例如下:输入: 121输出: true输入: -121输出:...

2019-07-08 20:30:15 268 1

原创 Leetcode整数反转算法与分析

@Leetcode整数反转先看题干:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。输入: 123输出: 321相信每一位拿到整数反转这道题的小白coder,都会认为取模再乘以取模次数即可拿下本题,诚然这是一种...

2019-07-07 23:05:47 130

原创 Leetcode两数之和算法与分析

@leetcode两数之和算法开门见山欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:...

2019-07-06 16:34:45 182

空空如也

空空如也

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

TA关注的人

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