自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

didihan

慢慢发展

  • 博客(23)
  • 问答 (2)
  • 收藏
  • 关注

原创 面试题 01.06. 字符串压缩(关于String和StringBuilder)

字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:“aabcccccaaa”输出:“a2b1c5a3”示例2:输入:“abbccd”输出:“abbccd”解释:“abbccd"压缩后为"a1b2c2d1”,比原字符串长度更长。提示:字符串长度在[0, 50000]范围内。题意十分的清晰,看看实

2020-07-31 15:42:42 184

原创 面试题 01.05. 一次编辑

字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。示例 1:输入:first = “pale”second = “ple”输出: True示例 2:输入:first = “pales”second = “pal”输出: False简单的看一下就是对删除插入和替换的判断而已,也就是对三种状态的分析,挺简单的,代码如下:class Solution { public boolean oneEdi

2020-07-31 14:44:15 91

原创 面试题 01.03. URL化

URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)示例1:输入:“Mr John Smith “, 13输出:“Mr%20John%20Smith”示例2:输入:” “, 5输出:”%20%20%20%20%20”提示:字符串长度在[0, 500000]范围内。题意呢就是把空格改成%20,至于最后的空格是留出

2020-07-29 16:26:27 174

原创 面试题 01.02. 判定是否互为字符重排

给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。示例 1:输入: s1 = “abc”, s2 = “bca”输出: true示例 2:输入: s1 = “abc”, s2 = “bad”输出: false说明:0 <= len(s1) <= 1000 <= len(s2) <= 100题意呢就是判断s1和s2中的字符数量是否相同,只要创建一个数组记录他们的数量就好了,s1++,s2–;最后判断数组是否都为

2020-07-29 15:55:53 105

原创 面试题 01.01. 判定字符是否唯一(包括一些逻辑运算)

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。示例 1:输入: s = “leetcode”输出: false示例 2:输入: s = “abc”输出: true限制:0 <= len(s) <= 100如果你不使用额外的数据结构,会很加分。这题的题意就是判断是否有重复的字符,单单按照这个去做的话确实很简单,但是他说如果不使用额外的数据结构会很加分,那我们就要去从不用额外的数据结构的方向去做了,实在是是想不出什么好的方法了,不创的话就只有暴力法,还有我脑子里的交换

2020-07-29 15:31:21 199

原创 关于刷题

昨天结束刚刚把做过的题全部给发布到csnd了,所以呢今天就要开始真正的刷题了,而且呢是从面试题开始刷

2020-07-29 14:14:04 75

原创 9. 回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?这题还有一个进阶,其实从这个进阶就知道了可以用转换字符串的方法去完成这一题了,

2020-07-28 15:50:40 114

原创 8. 字符串转换整数 (atoi)

请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有效整数字

2020-07-28 15:35:31 132

原创 7. 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。逆向输出,也就是整除后在除一下,一个循环就做完了,如果就这样那就上当了,我就是没看完题目,还有一个注意,反转之后数字可能超模,超模后为0,这就涉

2020-07-28 14:18:42 111

原创 6. Z 字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s = “LEET

2020-07-28 13:49:36 82

原创 5. 最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: "bb"暴力法很轻松就可以做完,从首个字符开始判断,定义指针从s.length()处开始向左移动判断,但是这就违背的初心,我在暴力法上改良了一下,由字符开始向两边扩散的寻找,这样就减少了一些运算量但是时间复杂度还是一样的,至于我的代码有点乱和长,而且我在官方的解析处看到了相同思路的

2020-07-26 15:47:36 68

原创 4. 寻找两个正序数组的中位数

给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5这题的主要难点在与时间复杂度,如果没有时间复杂度上的要去,做题十分简单,只要定义两

2020-07-26 14:32:10 83

原创 3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。暴力法解决肯定很

2020-07-25 15:19:18 81

原创 关于刷题

突然发现leetcode下面还有面试题这种题目,所以我先刷面试题去了,以前做的题目会慢慢 放出来,但是最远的题目就先到这了

2020-07-23 16:16:06 64

原创 2.两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807这是一道链表的题目,这个可折磨死我了,思路倒是挺简单的,就是小问题一堆,本来是想

2020-07-23 16:10:33 94

原创 1.两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]很明显的滑动窗口做的,应该说是经典题目吧,就是下标要注意,因为返回的不是值还是下标,我是复制了一边这个数组找到值之后去复制的数组内寻找的,占用的空间

2020-07-23 14:27:40 55

原创 10.正则表达式匹配

第一次写文章,创建这个重要也是为了激励自己不要混了,明年大四了,再混就没了先从刷题开始写吧,顺便充当一下自己的学习记录leetcode10:给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:

2020-07-23 13:33:19 173

原创 11.盛最多水的容器

第11题,盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。方法1,首先想到的肯定是暴力算法也是最简单的,两个for就搞定了也不敲代码了方法2,一种暴力算法的改良版,但也是for套for,我用的是类似期望的想法。​ 因为柱子i如果要得到他的最大面

2020-07-23 13:33:13 56

原创 12.旋转罗马数字

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

2020-07-23 13:33:06 230

原创 13.逆转罗马数字

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

2020-07-23 13:32:55 141

原创 14.最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。首先看这题没想到什么特殊的方法去解决,就是一个个字符进行匹配,看了官方的解析就是我的方法是纵向扫描,也就是最普通的方法了,还有一种类似的横向扫描就是从左到右,这个我倒是也想到了,但是没打就打了从上向下的方法一:纵向扫

2020-07-23 13:32:27 71

原创 16.最接近的三数之和

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。正常人的思路就是滑动窗口吧,我反正就是这个思路,先固定一个数字,剩下的两个数字利用滑动窗口来寻找,感觉和寻找目标值是一样的就是这个是最接近的数字多了一个和值的比较而已

2020-07-23 13:30:46 194

原创 15.三数之和

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。示例: 给定数组 nums = [-1, 0, 1,2, -1, -4],满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]一般这种找值的都是滑动窗口解决的(我认为奥),而滑动窗口要建立在排序的基础上,代入了一下滑动窗口的思维确实可以解答,比如上述的例题,先.

2020-07-05 10:36:17 91

空空如也

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

TA关注的人

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