随笔分类 - LeetCode
LeetCode题解
摘要:题目 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] 示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2] 提示: 链表长度在[0, 20000]范围内。 链表元素在[0, 20000]范围内
阅读全文
摘要:题目 编写一种算法,若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,
阅读全文
摘要:题目 字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。 示例 1: 输入: first = "pale" second = "ple" 输出: True 示例 2: 输入: first = "pales" sec
阅读全文
摘要:题目 写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负
阅读全文
摘要:题目 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不
阅读全文
摘要:题目 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一
阅读全文
摘要:题目 请实现一个函数用来匹配包含'. '和''的正则表达式。模式中的字符'.'表示任意一个字符,而''表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。 示例
阅读全文
摘要:题目 给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。 对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖
阅读全文
摘要:题目 数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。 示例 1: 输入:[1,2,5,9,5,9,5,5,5] 输出:5 示例 2: 输入:[3,2] 输出:-1 示例 3: 输入:[2,2,1,1,1,2,2] 输出:2 说明:你有办法在时间复杂度为
阅读全文
摘要:题目 字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。 示例1: 示例2: 提示:字符串长度在[0, 100000]范围内。 说明: 你能只调用一次检查子串的方法吗? 思路 如为旋转,则s2一定在s1
阅读全文
摘要:题目 我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例: 说明: 1 是丑数。 n 不超过1690。 思路一:暴力(超时) 依次判断每个数是否是丑数。 代码
阅读全文
摘要:题目 在一个 m n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物? 示例 1: 提示: 0 & grid) { if
阅读全文
摘要:题目 给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 'a','e','i','o','u' ,在子字符串中都恰好出现了偶数次。 示例 1: 示例 2: 示例 3: 提示: 1 pos(1 << 5, 1); pos[0] = 0; for (int i = 0;
阅读全文
摘要:题目 给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 示例 1: 示例 2: 注意: 字符串只包含从 a z 的小写字母。字符串的最大长度是50000。 思路 头尾双指针,从两边向中间检查头尾指针指向字符是否相等,如果不相等,则跳过头指针或尾指针,继续判断中间字符字符串是否满足
阅读全文
摘要:题目 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 示例 1: 提示:0 = 2),当i = 1,则dp[1] =
阅读全文
摘要:题目 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 示例 2: 提示: 0 & nums) { string res; sort(nums.begin(), nums.end(), cmp); for (auto a : nums) { r
阅读全文
摘要:题目 数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。 请写一个函数,求任意第n位对应的数字。 示例 1: 示例 2: 限制:0 <= n < 2^31 思路 从具体例子来分析,比如求第
阅读全文
摘要:题目 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。 示例: 本题同 "【剑指Offer】面试题43. 1~n整数中1出现的次数" 思路 通过一个例子来找到规律,比如数字21345,我们把1 21345分为两部分,一段是1 1345,另一段是1346 21345。 对于1
阅读全文
摘要:题目 输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。 例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。 示例 1: 示例 2: 限制:1 0) return 1; int numFirst = 0; if (first 1) numFir
阅读全文
摘要:题目 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例: 限制:1 st; public: vector permutation(string s) { vector res; if (s.empty()) return res; d
阅读全文

浙公网安备 33010602011771号