自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术更新每天

女猿一枚 希望多多交流

原创 算法修炼之路——【字符串】Leetcode 824 山羊拉丁文

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定一个由空格分隔单词的句子s。每个单词只包含大写或小写字母。我们要将句子转换为Goat Latin(一种类似于猪拉丁文-Pig Latin的虚构语言)。山羊拉丁文的规则如下:如果单词以元音开头(a, e, i, o, u),在单词后添加"ma";如单词apple变为applema;如果单词以辅音字母开头,移出第一个字符并将它放到末尾,之后再添加"ma"; 如单词goat变为oatgma;根据单词在句子中的索引,在单词最后添

2020-05-31 20:43:24 77

原创 算法修炼之路——【字符串】Leetcode 819 最常见的单词

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定一个段落(paragraph)和一个禁用单词列表(banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案不唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。示例1:输入: paragraph = “Bob hit a ball, the hit BALL flew far after it was hit.” , banned =

2020-05-30 13:07:26 79

原创 源码探索—【go 线程池】ants笔记 1 (真正的小白学源码)
原力计划

文章目录项目选择初期的迷惑项目选择关于开源项目或者源码学习,对于我们从事IT行业的同道人或者程序员们都是难以避开的一个话题。这里就来记录一下笔者对于开源项目学习的心得以及体会,此过程中由于没有前导师傅且是一个人的学习,所以思考以及叙述过程有所偏颇,还请观者见谅,并通过留言或者私信等不吝赐教~~笔者属于不聪明但是愿意花时间的“牛型”学习者,有时候习惯思考问题找到一个解决办法就好,先用着;对于“源码学习”这个话题,在网上(百度,知乎,以及一些更知名的程序员交流网站均有查阅)并没有找到笔者想要了解的知识,无

2020-05-23 21:32:31 807

原创 算法修炼之路—【字符串】Leetcode 783 二叉搜索树节点最小距离
原力计划

文章目录题目描述思路分析解题代码复杂度分析小结Github源码题目描述给定一个二叉搜索树的根节点root,返回树中任意两节点的差的最小值。示例1:输入: root = [4, 2, 6, 1, 3, null, null]输出: 1解释: 注意,root是树节点对象(TreeNode object),而不是数组。给定的树可表示为下图:最小的差值为1,它是节点1和节点2的差值,也是节点3和节点2的差值。注意:二叉树的大小范围在2到100;二叉树总是有效的,每个节点的值都是整数,且不

2020-05-23 12:09:51 163

原创 算法修炼之路—【字符串】Leetcode 709 转换成小写字母

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述实现函数ToLowerCase(),该函数接收一个字符串参数str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例1:输入: “Hello”输出: “hello”示例2:输入: “here”输出: “here”示例3:输入: “Lovely”输出: “lovely”思路分析题目难度为简单 ,这里需要的就是遍历字符串,判定大写字母字符并转换成小写字母字符,这里唯一需要注意的一点是ASCII

2020-05-22 11:11:50 93

原创 算法修炼之路—【树】Leetcode 100 相同的树

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: [1, 2, 3], [1, 2, 3]输出: true示例2:输入: [1, 2], [1, null, 2]输出: false示例3:输入: [1, 2, 1], [1, 1, 2]输出: false思路分析题目难度为简单 ,关于树这个数据结构的算法解用递归方式很容

2020-05-20 20:09:22 76

原创 算法修炼之路—【字符串】Leetcode 696 计数二进制子串

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定一个字符串s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例1:输入: s = “00110011”输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011”和“01”注意: 一些重复出现的子串要计算它们出现的次数。另外,“00110011”不是有效的子串,因为所有的0(和

2020-05-19 17:00:20 82

原创 算法修炼之路—【字符串】Leetcode 686 重复叠加字符串匹配
原力计划

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定两个字符串A和B,寻找重复叠加字符A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回-1.示例:输入: A = “abcd”, B = “cdabcdab”输出: 3解释: A重复叠加三遍后为"abcdabcdabcd",此时B是其子串; A 重复叠加两边后为“abcdabcd”,B并不是其子串。注意: A与B字符串的长度在1和10000区间范围内。思路分析题目难度为简单 ,这里简化题目意思就是输

2020-05-17 09:52:43 144

原创 算法修炼之路—【字符串】Leetcode 680 验证回文字符串 II

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例1:输入: “aba"输出: True示例2:输入: “abca"输出: True解释: 你可以删除c字符。注意: 字符串只包含a-z的小写字母。字符串的最大长度是50000。思路分析题目难度为简单 ,这里的难点在判断删除字符后的判断,这里我们可以直接参考LeetCode125来参考简单回文字符串的判定;这里我们需要当检测到不等的字符串对时判

2020-05-15 11:51:55 57

原创 算法修炼之路—【字符串】Leetcode 657 机器人能否返回原点

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述在二维平面上,有一机器人从原点(0,0)开始。给出它的移动顺序,判断这个机器人在完成移动后是否在(0,0)处结束。移动顺序由字符串表示。字符move[i] 表示其第i次移动。机器人的有效动作有R(右),L(左),U(上)和D(下)。如果机器人在完成所有动作后返回原点,则返回true。否则,返回false。注意: 机器人“面朝”的方向无关紧要。"R"将始终使机器人向右移动一次,"L"将始终使机器人向左移动等。此外,假设每次移动机器人的移

2020-05-15 10:29:15 55

原创 算法修炼之路—【字符串】Leetcode 606根据二叉树创建字符串
原力计划

文章目录题目描述思路分析递归迭代解题代码1. 递归2. 迭代复杂度分析Github源码题目描述你需要采用前序遍历的方式,讲一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号"()"表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例1:输入: 二叉树:[1, 2, 3, 4]输出: “1(2(4))(3)”解释: 原本将是“1(2(4)())(3())”,在省略不必要的空括号之后,它将是"1(2(4))(3)"。示例2:输入: 二叉

2020-05-14 12:19:04 78

原创 算法修炼之路—【字符串】Leetcode 557 反转字符串中的单词 II

文章目录题目描述思路分析解题代码1复杂度分析Github源码题目描述给定一个字符来,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入: s= “Let’s take Leetcode contest”输出: “s’teL ekat edocteeL tsetnoc”注意: 在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。思路分析难度是简单 ,我们需要对输入字符串进行至少一次的遍历,来完成一下功能:根据空字符来分片,每一片为一个单

2020-05-13 10:29:45 69

原创 算法修炼之路—【字符串】Leetcode 551 学生出勤记录 I
原力计划

文章目录题目描述思路分析解题代码1复杂度分析解题代码2进阶复杂度分析Github源码题目描述给定一个字符来代表一个学生的出勤记录,这个记录仅包含以下三个字符:A : Absent, 缺勤;L : Late,迟到;P : Present,到场;如果一个学生的出勤记录中不超过一个A 并且不超过两个连续的L(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否会被奖赏。示例1:输入: s= “PPALLP”输出: True示例1:输入: s= “PPALLL”输

2020-05-12 10:04:27 100 2

原创 算法修炼之路—【字符串】Leetcode 541 反转字符串II

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定一个字符和一个整数k,你需要对从字符开头算起的每个2k个字符的前k个字符反转。如果剩余少于k个字符,则将剩余的所有全部反转;如果有小于2k但大于等于k个字符,则反转前k个字符,并将剩余的字符保持原样。示例1:输入: s= “abcdefg”, k = 2输出: “bacdfeg”要求:该字符串只包含小写的英文字母;给定字符串的长度和k在[1, 10000]范围内;思路分析难度是简单 ,这道题感觉没有什么营养,

2020-05-11 11:00:16 45

原创 算法修炼之路—【字符串】Leetcode 521 最长特殊序列I

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给你两个字符串,请你从这两个字符串中找出最长的特殊序列。最长特殊序列 定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)子序列 可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。输入为两个字符串,输出最长特殊序列的长度。如果不存在,则返回-1.示例1:输入: a = “aba”, b = “cdc”输出: 3解释: 最长特殊序列可

2020-05-10 11:20:47 57

原创 算法修炼之路—【字符串】Leetcode 520 检测大写字母

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是否正确:全部字母都是大写,比如“USA”;单词中所有字母都不大写,比如"leetcode";如果单词不只含有一个字母,只有首字母大写,比如"Google";否则,我们定义这个单词没有正确使用大写字母。示例1:输入: “USA”输出: True示例2:输入: “FlaG”输出: False注意:输入是由大写和小写拉丁

2020-05-09 11:28:43 66

原创 算法修炼之路—【字符串】Leetcode 459 重复的子字符串

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定一个非空的字符串,判定它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不会超过10000。示例1: :输入: “abab”输出: True解释: 可由子字符串“ab”重复两次构成。示例2: :输入: “aba”输出: False示例3: :输入: “abcabcabc...

2020-05-08 10:39:19 60

原创 算法修炼之路—【字符串】Leetcode 434 字符串中的单词数

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例: :输入: “Hello, my name is John”输出: 5解释: 这里的单词是指连续的不是空格的字符,所以“Hello,”算作一个单词。思路分析难度是简单 ,我们直接遍历即可,这里...

2020-05-07 10:45:47 66

原创 算法修炼之路—【字符串】Leetcode 415 字符串相加

文章目录题目描述思路分析数据结构选择字符前后的确定解题代码复杂度分析Github源码题目描述给定两个字符串形成的非负整数num1 和 num2,计算它们的和。注意: :num1 和 num2 的长度都小于5100;num1 和 num2 都质保函数字0-9;num1 和 num2 都不包含任何前导零;你不能使用任何BigInteger库,也不能直接将输入的字符转换为整数形式;案...

2020-05-06 11:45:07 39

原创 算法修炼之路—【字符串】Leetcode 387 字符串中的第一个唯一字符

文章目录题目描述思路分析数据结构选择字符前后的确定解题代码复杂度分析Github源码题目描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回-1.案例:s = “leetcode”返回0s = “loveleetcode”返回0注意: 字符中均为小写字母。思路分析难度是简单 ,这里需要遍历并保存遍历足迹,由于历史足迹保存,则需要对辅助容器进行选...

2020-05-05 10:24:21 166

原创 算法修炼之路—【字符串】Leetcode 383 赎金信

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定一个赎金信(ransom)字符串和一个杂志字符串,判断第一个字符串能不能由第二个字符串里面的字符构成。如果可以构成,返回true;否则返回false;题目说明:为了不暴露赎金信自己,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符中使用一次。注意: 你可以假设两个字符串均含有小写字...

2020-05-04 19:05:22 56

原创 算法修炼之路—【字符串】Leetcode 345 反转字符串中的元音字母

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例1:输入: s = “hello”输出: “holle”示例2:输入: s = “leetcode”输出: “leotcede”思路分析难度是简单 ,我们首先要明确元音字母的涵盖范围{a, e, i, o, u},之后就是常规的条件判断是否为元...

2020-05-03 11:32:25 70

原创 算法修炼之路—【字符串】Leetcode 344 反转字符串

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组,使用O(1)的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。示例1:输入: arrC = [“h”, “e”, “l”, “l”, “o”...

2020-05-02 20:35:37 655

原创 算法修炼之路—【字符串】Leetcode 67 二进制求和
原力计划

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给你两个二进制字符,返回它们的和(用二进制表示)。输入为非空 字符串,且只包含数字1 和 0。示例1:输入: a = “11”, b = “1”输出: “100”示例2:输入: a = “1010”, b = “1011”输出: “10101”提示:每个字符串仅由字符0或1组成;1 <= a....

2020-05-01 11:05:42 77

原创 算法修炼之路—【字符串】Leetcode 58 最后一个单词的长度

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述给定一个仅包含字母(不限大小写)和空格' '的字符串s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回0。说明: 一个单词是指仅由字母组成、不包含任何空格字符的最大子字符串。示例:输入: s = “Hello World”输出: 5思路分析...

2020-04-30 12:12:10 90

原创 随笔——【读书笔记】读书带给我的改变与思考
原力计划

文章目录缘分使然阅读使得自己蜕变早期对小说的看法书里是许多人的世界阅读伊始第一阶段:个数至上第二阶段:自我发散缘分使然在2020年这场突如其来的疫情之前,笔者是一名及其普通的院校研究生,没有突出的科研成果也没有特别娴熟的计算机类技能,平淡如水,平凡似尘。笔者一直认为(其实也就是一两个月,哈哈哈哈)2020是自己发生蜕变的一年,在此之前,既没有清晰的人生规划,也没有爱好(如果看动漫算的话,那就...

2020-04-29 21:39:12 1293 4

原创 算法修炼之路—【字符串】Leetcode 38 外观数列
原力计划

文章目录题目描述思路分析解题代码拓展复杂度分析Github源码题目描述外观数列 是一个整数序列,从数字1开始,序列中的每一项都是对前一项的描述,前五项如下:1112112111112211被读作“one 1”("一个一"), 即11.11被读作“two 1s”("两个一"), 即21.21被读作“one 2”, “one 1”("一个二", “一个一”), 即1211....

2020-04-29 19:26:11 106

原创 算法修炼之路—【字符串】Leetcode 20 有效的括号

文章目录题目描述思路分析解题代码拓展复杂度分析Github源码题目描述实现strStr()函数。给定一个haystack字符串和一个needle字符串,在haystack字符串中找出needle字符串出现的第一个位置(从0开始)。如果不存在,则返回-1.示例1:输入: haystack = “hello”, needle = “ll”输出: 2示例2:输入: haystack...

2020-04-28 11:28:42 101

原创 算法修炼之路—【字符串】Leetcode 20 有效的括号

文章目录题目描述思路分析解题代码心得分享复杂度分析Github源码题目描述给定一个只包括(, ), [, ], {, }的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合;左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例1:输入: s = “()”输出: true示例2:输入: s = “()[]{}”输出: tru...

2020-04-27 11:58:14 109

原创 算法修炼之路—【字符串】Leetcode 14 最长公共前缀

文章目录题目描述思路分析解题代码心得分享复杂度分析Github源码题目描述编写一个函数来查找字符串数组中的最长公共前缀。如不存在公共前缀,返回空字符串“”。示例1:输入: arrStr = [“flower”, “flow”, “flight”]输出: “fl”示例2:输入: arrStr = [“dog”, “racecar”, “car”]输出: “”说明: 所有...

2020-04-26 10:40:29 100

原创 算法修炼之路—【字符串】Leetcode 13 罗马数字转整数

文章目录题目描述思路分析解题代码复杂度分析Github源码题目描述罗马数字包含以下七种字符:I, V, X, L, C, D 和M 。字符数值I :1V: 5X:10L:50C:100D :500M:1000例如,罗马数字2写作II,即为两个并列的I。12写作XII,即为X + II。 27写作XXVII,即为XX + V + II.通常情况下,罗马数字中小的数字在大的...

2020-04-25 10:31:46 592

原创 算法修炼之路—【字符串】Leetcode 125 验证回文串

文章目录题目描述思路分析解题代码复杂度分析常用技巧小结Github源码题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明: 本题中,我们将空字符串定义为有效的回文串。示例1:输入: s = “a man, a plan, a canal: Panama”输出: true示例2:输入: s = “race a car”输出: fal...

2020-04-24 12:00:02 65

原创 算法修炼之路—【字符串】Leetcode 3 无重复字符的最长子串
原力计划

文章目录题目描述题目描述给定一个字符串,请你找出其中不含重复字符的最长子串的长度。示例1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字串的最长子串是“abc”,所以其长度为 3.示例2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是“b”,所以其长度为1.示例3:输入: s = “bbbbb”输出: 1解释:...

2020-04-23 15:57:16 63

原创 生产力工具—【GoLand】真正实现单窗口多项目同时打开

文章目录环境介绍问题驱动解决办法问题延伸环境介绍硬件:笔记本系统:Win10IDE:JetBrain GoLang 2019.2.3问题驱动最近学习开源项目,需要在IDE下同时打开多个项目project,但是当打开的时候默认总是询问是在一个窗口下打开,还是另一个窗口,还是作为附属:图1第一次见到attach时候,有点云里雾里的,只选择过This window和New window...

2020-04-21 22:09:51 743

原创 算法修炼之路—算法学习心得及【链表】小结(持续更新)

文章目录引言算法修炼之路阶段经验总结引言从第一篇Leetcode141链表类型题目的总结,到目前为止已经近20天了,也有一点经验与总结需要进一步的梳理和细化,这也是想先写一部分关于链表类型的小结的初衷。经过3周的链表题目联系与思考,接下来计划对字符串题目“下手”了,再暂时转战另一题型前对链表进行简单的梳理。算法修炼之路阶段我将算法的学习分为三个阶段:入门,初级、中级与高级:入门阶段...

2020-04-21 11:24:02 69

原创 随笔 — 【生活】疫情期间,我的一天是这么度过的

文章目录一天下来的拆分清晨背诵语言学习上午下午晚上关于作息和饮食作息饮食总结一天下来的拆分一天的24小时被我拆分成了四份,清晨,上午,下午,晚上,其中包含了可变与基本固定的地方。清晨清晨我关注的是背诵 以及语言学习 两个部分,这两项安排花费时间约为1小时:背诵渠道纸质书本 + 微信读书APP具体实施这里我每天背诵的书籍是《老子》,是的,就是那本铲除名句“道可道,非常道”的国学经典...

2020-04-18 21:19:08 550

原创 算法修炼之路——【链表】Leetcode 23 合并K个有序链表

文章目录题目描述思路分析解题步骤解题代码复杂度分析GitHub源码题目描述合并K个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例1:输入: lists = {listA, listB, listC}, listA= [1, 4, 5], listB = [1, 3, 4], listC = [2, 6]输出: [1, 1, 2, 3, 4, 4, 5, 6]思路分...

2020-04-18 11:47:55 63

原创 算法修炼之路——【链表】Leetcode 21合并两个有序链表

文章目录题目描述思路分析解题步骤解题代码复杂度分析GitHub源码题目描述将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入: listA= [1, 2, 4], listB = [1, 3, 4]输出: [1, 1, 2, 3, 4, 4]思路分析这道题目为简单难度,我们可以设置一哨兵节点dummyHead,两个遍历链表的...

2020-04-18 10:10:21 79

原创 算法修炼之路——【链表】Leetcode 430 扁平化多级双向链表

文章目录题目描述思路分析解题步骤解题代码复杂度分析GitHub源码题目描述多级双向链表中,除了指向下一个节点和前一个接待你指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子链表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有节点出现在单极双链表中。示例1:输入: head = [1, 2, 3,...

2020-04-17 10:52:21 62

原创 算法修炼之路——【链表】Leetcode 328 奇偶链表
原力计划

文章目录题目描述思路分析解题步骤解题代码复杂度分析GitHub源码题目描述给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为O(1),时间复杂度应为O(nodes),nodes为节点总数。示例1:输入: head = [1, 2, 3, 4, 5]输出...

2020-04-17 08:50:22 84

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