- 博客(15)
- 收藏
- 关注
原创 面试题01.08. 零矩阵
题目:编写一种算法,若M * N矩阵中某个元素为0,则将其所在的行与列清零。 示例1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输出: [ [1,0,1], [0,0,0], [1,0,1] ] 示例2: 输入: [ [0,1,2,0], [3,4,5,2], [1,3,1,5] ] 输出: [ [0,0,0,0], [0,4,5,0], ...
2021-11-13 16:26:56
456
原创 面试题01.07. 旋转矩阵
题目:给你一幅由N * N矩阵表示的图像,其中每个像素的大小为4字节。请你设计一种算法,将图像旋转90度。 不占用额外内存空间能否做到? 示例1: 给定matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例2: 给定matrix = [ [5,1,9,11], [2,4,8,10], ...
2021-11-10 15:34:54
486
原创 415. 字符串相加
题目:给定两个字符串形式的非负整数num1和num2,计算它们的和并同样以字符串形式返回。 你不能使用任何内建的用于处理大整数的库(比如BigInteger),也不能直接将输入的字符串转换为整数形式。 示例1: 输入:num1 = "11",num2 = "123" 输出:“134” 示例2: 输入:num1 = "456",num2 = "77" 输出:“533” 示例3: 输入:num1 = "0",num2 = "0" 输出:“0” 提示: 1 <= num1.leng.
2021-11-04 16:11:02
309
原创 49. 字母异位词分组
题目:给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。 字母异位词是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次。 示例1: 输入:strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出:[["bat"], ["nat", "tan"], ["ate", "eat", "tea"]] 示例2: 输入:strs = [""] 输出:[[""]] 示例3: 输入:strs = ["a"].
2021-11-03 16:03:36
231
原创 68. 文本左右对齐
题目:给定一个单词数组和一个长度maxWidth,重新排版单词,使其成为每行恰好有maxWidth个字符,且左右两端对齐的文本。 你应该使用“贪心算法”来放置给定的单词:也就是说,尽可能多地往每行中放置单词。必要时可用空格填充,使得每行恰好有maxWidth个字符。 要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。 文本的最后一行应为左对齐,且单词之间不插入额外的空格。 说明: 单词是指由非空格字符组成的字符序列。 每个单词的长度大.
2021-11-02 21:11:00
179
原创 1249. 移除无效的括号
题目:给你一个由"("、“)”和小写字母组成的字符串s。 你需要从字符串中删除最少数目的“(”或者“)”(可以删除任意位置的括号)。使得剩下的[括号字符串]有效。 请返回任意一个合法字符串。 有效[括号字符串]应当符合以下任意一条要求: 空字符串或只包含小写字母的字符串 可以被写作AB(A连接B)的字符串,其中A和B都是有效[括号字符串] 可以被写作(A)的字符串,其中A是一个有效的[括号字符串] 示例1: 输入:s = "lee(t(c)o)de)" 输出:“lee(t(c)o)de” .
2021-10-31 14:14:16
399
原创 22. 括号生成
题目:数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。 有效括号组合需满足:左括号必须以正确的顺序闭合。 示例1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例2: 输入:n = 1 输出:["()"] 提示:1 <= n <= 8 1. 思考 生成所有可能且有效的括号组合,首先想到可以采用递归,在前一个结果的基础上,加一个括号。当知道f(n - 1)括号..
2021-10-26 10:04:08
199
原创 20. 有效的括号
题目:给定一个只包含‘(',')','{','}','[',']'的字符串s,判断字符串是否有效。 有效字符串需满足: 1. 左括号必须用相同类型的右括号闭合。 2. 左括号必须以正确的顺序闭合。 示例1: 输入:s = "()" 输出:true 示例2: 输入:s = “()[]{}” 输出:true 示例3: 输入:s = "(]" 输出:false 示例4: 输入:s = "([)]" 输出:false 示例5: 输入:s = "{[]}" 输出:true 提示.
2021-10-23 17:03:51
139
原创 273. 整数转换英文表示
题目:将非负整数num转换为其对应的英文表示。 示例1: 输入:num = 123 输出:“One Hundred Twenty Three” 示例2: 输入:num = 12345 输出:“Twelve Thousand Three Hundred Forty Five” 示例3: 输入:num = 1234567 输出:“One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven” 示例4: 输入:n.
2021-10-22 09:47:01
509
原创 3. 无重复字符的最长子串
题目:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入:s = "abcabcbb" 输出:3 解释:因为无重复字符的最长子串是"abc",所以其长度为3。 示例2: 输入:s = "bbbbb" 输出:1 解释:因为无重复字符的最长子串是"b",所以其长度为1。 示例3: 输入:s = "pwwkew" 输出:3 解释:因为无重复字符的最长子串是"wke",所以长度为3。 示例4: 输入:s = "" 输出:0 1. 思考 解决思路很简..
2021-10-19 21:28:53
280
原创 937. 重新排列日志文件
题目:给你一个日志数组logs。每条日志都是以空格分隔的字串,其第一个字为字母与数字混合的标识符。 有两种不同类型的日志: 字母日志:除标识符之外,所有字均由小写字母组成 数字日志:除标识符之外,所有字均由数字组成 请按下述规则将日志重新排序: 所有字母日志都排在数字日志之前。 字母日志在内容不同时,忽略标识符后,按内容字母顺序排序;在内容相同时,按标识符排序。 数字日志应该保留原来的相对顺序。 返回日志的最终顺序。 示例1: 输入:logs = ["dig1 8 1 5 1", "let.
2021-10-18 15:56:14
202
原创 5. 最长回文子串
题目:给你一个字符串s,找到s中最长的回文子串。 示例1: 输入:s = "babad" 输出:"bab" 解释:"aba"同样是符合题意的答案。 示例2: 输入:s = "cbbd" 输出:"bb" 示例3: 输入:s = "a" 输出:"a" 示例4: 输入:s = "ac" 输出:"a" 1. 思考 首先考虑回文串的特性,即正、反两个方向读都一致,比如ABBA、ABA。 回文串有个特性,对于长度大于2的回文串,比如ABCBA,去掉首尾字符后,剩下的字符仍构成回文串..
2021-10-17 15:01:18
231
原创 面试题01.05. 一次编辑
题目:字符串有三种编辑操作,插入一个字符、删除一个字符或者替换一个字符。给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。 示例1: 输入: first = "pale" second = "ple" 输出:True 示例2: 输入: first = "pales" second = "pal" 输出:False 1. 思考 先分析允许进行的操作: 1. 插入一个字符:当两个字符串长度只相差1的时候可能满足,稍短的字符串将某个字符往后的字符数组平移一位后,剩..
2021-10-15 16:47:34
403
原创 面试题01.04. 回文排列
题目:给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。 回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。 回文串不一定是字典当中的单词。 示例1: 输入:"tactcoa" 输出:true(排列有"tacocat"、"atcocta"等等) 1. 思考 判断一个字符串是否是回文串的排列之一,可以先思考回文串的特性: 回文串就是正,反两个方向读都一致的字符串,比如ABBA、ABCBA。 可以发现: 1. 偶数个字符,所有字符出现偶数次,即没有字符出现奇..
2021-10-14 09:50:19
512
原创 面试题01.01. 判定字符是否唯一
题目:实现一个算法,确定一个字符串s的所有字符是否全都不同。 示例1: 输入:s = "leetcode" 输出:false 示例2: 输入:s = “abc” 输出:true 限制: 0 <= len(s) <= 100 如果你不使用额外的数据结构,会很加分 1. 思考 判断一个集合中(该题中字符串相当于字符的集合)是否所有元素都不相同,首先想到一个快速校验方案:该集合中元素个数是否超过了元素种类个数?如果超过了元素种类个数,那么直接有结论,该集合中元素必定存在重复..
2021-10-12 10:21:14
399
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅