自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Google大神

Google插件,一网打尽!

  • 博客(16)
  • 收藏
  • 关注

原创 大数打印的小 trick,一文 get

前几天的内容大家可能会觉得比较散。这是因为我目前正在筹划背包系列和贪心系列两个主题的内容,所以时间比较紧张,就拿出了之前写的一些题解凑凑数。不过呢,今天我将为大家开启一个新的篇章 - 字符串匹配系列篇,文章写得很用心,相信大家定有所获。01、实现 strStr()字符串匹配类型的题目,是字符串类型中占比很大的一个支类。题目:实现 strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 .

2020-09-30 19:51:10 139

原创 如何找出字符串中的第一个唯一字符?

01、题目分析第387题:字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1 。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2. 注意事项: 您可以假定该字符串只包含小写字母。常考题目,建议自行思考 1-2 分钟先~02、题目图解题目不难,直接进行分析。由于字母共有 26 个,所以我们可以声明一个 26 个长度的数组(该种方法在本类题型很常用)因为字符串

2020-09-29 21:34:35 1217

原创 反转字符串,我会了!

01、题目分析第344题:反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]02、题目图解

2020-09-28 10:42:08 99

原创 专业小偷,打家劫舍

在前两篇中,我们分别学习了 “三角形最小路径和” 以及“矩形最小路径和” 的问题,相信已经掌握了这类题型的解题方式。我们只要明确状态的定义,基本上都可以顺利求解。在本节中,我们将回归一道简单点的题目,目的是剖析一下状态定义的过程,并且举例说明如果状态定义错误,会对我们带来多大困扰!希望大家不要轻视!01、题目分析第198题:打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同.

2020-09-24 18:17:20 284

原创 m x n 网格中的最小路径和

在上一篇中,我们通过分析,顺利完成了“三角形最小路径和”的动态规划题解。在本节中,我们继续看一道相似题型,以求能完全掌握这种“路径和”的问题。话不多说,先看题目:01、题目分析第64题:最小路径和给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总.

2020-09-23 12:38:31 1190

原创 数组表示的三角形,自顶向下的最小路径和

在上一篇中,我们通过题目**“最长上升子序列” 以及 “最大子序和”,学习了DP(动态规划)在线性关系**中的分析方法。这种分析方法,也在运筹学中被称为“线性动态规划”,具体指的是 “目标函数为特定变量的线性函数,约束是这些变量的线性不等式或等式,目的是求目标函数的最大值或最小值”。这点大家作为了解即可,不需要死记,更不要生搬硬套!在本节中,我们将继续分析一道略微区别于之前的题型,希望可以由此题与之前的题目进行对比论证,进而顺利求解!01、题目分析第120题:三角形最小路径和给定.

2020-09-18 09:59:12 830

原创 图解动态规划:最长上升子序列

最长上升子序列(300)在上一篇中,我们了解了什么是DP(动态规划),并且通过DP中的经典问题 “最大子序和”,学习了状态转移方程应该如何定义。在本节中,我们将沿用之前的分析方法,通过一道例题,进一步巩固之前的内容!01、题目分析第300题:最长上升子序列给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种

2020-09-14 22:01:05 1693 1

原创 整数数组的最大子序和

在上一篇文章动态规划:爬楼梯中,我们讲解了DP的概念并且通过示例了解了什么是动态规划。本篇中,我们将继续通过1道简单题型,进一步学习动态规划的思想。01、题目分析第53题:最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。拿到题目请不要直接看下方题解,先自行思考2-3分钟….

2020-09-11 13:35:31 303

原创 爬楼梯,有多少种方式到楼顶?

01、概念讲解关于动态规划的资料很多,官方的定义是指把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。概念中的各阶段之间的关系,其实指的就是状态转移方程。很多人觉得DP难(下文统称动态规划为DP),根本原因是因为DP跟一些固定形式的算法不同(比如DFS、二分法、KMP),它没有实际的步骤规定第一步、第二步来做什么,所以准确来说,DP其实是一种解决问题的思想。这种思想的本质是:一个规模比较大的问题(可以用两三个参数表示的问题),可以通过若干规模较小的问题的结果来得到的(通常会寻求到一

2020-09-10 00:13:37 1307

原创 两数相加,两个非空链表表示的整数相加

01、题目示例各数据结构中的“加减乘除”都是很爱考察的内容。第2题:两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

2020-09-08 19:03:37 522

原创 环形链表,检测链表成环

今天为大家带来,链表检测成环的经典题目。如果你觉得你会了,请你不妨耐心些认真看下去,我相信会有一些不一样的收获!还是先从一道题目开始哟,准备好了吗? Let’ s go !01、题目分析第141题:环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表.

2020-09-07 19:35:27 542 2

原创 无痛合并两个有序链表

01、题目分析第21题:合并两个有序链表将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4首先我们拿到题目乍眼一看,类似这种链表的合并问题。基本上马上可以想到需要设置一个哨兵节点,这可以在最后让我们比较容易地返回合并后的链表。(不懂哨兵节点的同学,可以先移驾到 哨兵节点:删除链表倒数第N个节点

2020-09-06 13:08:23 102

原创 哨兵节点:删除链表倒数第N个节点

01、哨兵节点在链表的题目中,十道有九道会用到哨兵节点,所以我们先讲一下什么是哨兵节点。哨兵节点,其实就是一个附加在原链表最前面用来简化边界条件的附加节点,它的值域不存储任何东西,只是为了操作方便而引入。比如原链表为a->b->c,则加了哨兵节点的链表即为x->a->b>c,如下图:那我们为什么需要引入哨兵节点呢?举个例子,比如我们要删除某链表的第一个元素,常见的删除链表的操作是找到要删元素的前一个元素,假如我们记为 pre。我们通过: pre.Next = pr

2020-09-03 20:56:41 3292 1

原创 Z字形变化,字节一面面试题

今天为大家分享一道让很多人头疼过的题目 - Z字形变化。01、题目示例额。。。不知道是不是我瞎,明明是N么(杠精勿扰,只是说说)第6题:Z 字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRET.

2020-09-01 22:15:53 261

原创 加一进位是个什么鬼?

看到这个标题,大家肯定会觉得,不就是“加1”嘛,这么简单的问题我可以!但是就是这么简单的“加1”可是面试的高频题哦,所以我们就一起来看看吧。按照往例,我们还是从一道LeetCode题开始吧。01、题目分析第66题:加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数.

2020-09-01 13:44:27 585

原创 三数之和,程序员才懂的 Three Sum !

今天给大家讲解一道经典鹅厂面试题,有一定难度。大家认真看哦。建议先回顾一下前面关于该题简化版,二数之和。两数之和(1)01、题目示例该题为 二数之和 的进阶版本,当然还有一个进阶版本为 四数之和。我们将会一一进行分析!第15题:三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [

2020-09-01 00:00:53 562 1

空空如也

空空如也

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

TA关注的人

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