算法
GeekPower极客力量
GeekPower极客力量,全网同名。
展开
-
【leetcode】9. 回文数
题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。思路:这是一道常规的回文数题目,按照常规的方法即可——不断%10取末位数,将其末位数放入result的最低位,再原创 2021-06-23 13:55:31 · 133 阅读 · 0 评论 -
【leetcode】面试题17.10. 主要元素
题目:数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-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说明:你有办法在时间复杂度为 O(N),空间复杂度为 O(1) 内完成吗?思路:这道题的解法非常巧妙,将其排序后从数组首位到中间位置对其nums[i]与nums[i+length/2]进行验证,若存在相等情况,则存在“主...原创 2021-06-23 13:54:29 · 156 阅读 · 0 评论 -
【leetcode】867. 转置矩阵
题目:给定一个矩阵 A, 返回 A 的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]提示:1 <= A.length <= 10001 <= A[0].length <= 1000思路:新建空二维数组,将A[i][j]原创 2021-06-23 13:53:16 · 144 阅读 · 0 评论 -
【leetcode】696. 计数二进制子串
题目:给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。另外,“00110011”不是有效的子串,因为所有的0(和1)没有组合在一起。示例 2 :输入: "1010原创 2021-06-22 14:56:49 · 238 阅读 · 0 评论 -
【leetcode】66. 加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]提示:1 <= digit.原创 2021-06-22 14:55:21 · 82 阅读 · 0 评论 -
【leetcode】290. 单词规律
给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2:输入:pattern = "abba", str = "dog cat cat fish"输出: false示例 3:输入: pattern = "aaaa原创 2021-06-22 14:54:12 · 148 阅读 · 0 评论 -
【leetcode】739. 每日温度
请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。思路:维护一个单调栈,该栈中的元素从栈底到原创 2021-06-22 14:52:17 · 96 阅读 · 0 评论 -
【leetcode】59. 螺旋矩阵 II
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]思路:这是《算法竞赛 入门经典》里的例题:蛇形填数,方法十分套路。定义行row,列col指定当前位置,定义count指定此时的数量。最外层的循环条件为count<pow(n,2)。内层有四个并列的循环,分别是从左向右,从上至下,从右到左,从下到上。每完成一次操作后count++并将此...原创 2021-06-22 14:50:55 · 149 阅读 · 0 评论 -
【leetcode】647. 回文子串
给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"提示:输入的字符串长度不会超过 1000 。思路:这是一道出现过多次的题目,首先可以用动态规划的方式,新建一个二维数组dp[i][j],用来原创 2021-06-22 14:48:49 · 81 阅读 · 0 评论 -
【leetcode】1528. 重新排列字符串
给你一个字符串 s 和一个 长度相同 的整数数组 indices 。请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。返回重新排列后的字符串。示例 1:输入:s = "codeleet", indices = [4,5,6,7,0,2,1,3]输出:"leetcode"解释:如图所示,"codeleet" 重新排列后变为 "leetcode" 。示例 2:输入:s = "abc", indices = [0,1,2]输出:"abc"解释:重.原创 2021-06-22 14:47:33 · 117 阅读 · 0 评论 -
【leetcode】746. 使用最小花费爬楼梯
题目:数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。示例 1:输入:cost = [10, 15, 20]输出:15解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15 。示例 2:输入:cost = [.原创 2021-06-22 14:45:12 · 103 阅读 · 0 评论 -
【leetcode】面试题 10.01. 合并排序的数组
题目:给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。初始化 A 和 B 的元素数量分别为 m 和 n。示例:输入:A = [1,2,3,0,0,0], m = 3B = [2,5,6], n = 3输出: [1,2,2,3,5,6]说明:A.length == n + m思路:方法1:将B全部搬运到A的尾部,再对其进行sort排序。但时间复杂度为nlogn。方法2:新建数组C,对三个数组各...原创 2021-06-22 14:42:49 · 151 阅读 · 0 评论 -
【LeetCode】第7题:整数反转
题目:给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:-231 <= x <= 231 - 1思路:...原创 2021-06-22 14:37:07 · 131 阅读 · 0 评论