leetcode
带你刷题
小齐不怕小韩
学习、努力、改变
展开
-
LeetCode 870. 优势洗牌
给定两个大小相等的数组 nums1 和 nums2,nums1 相对于 nums 的优势可以用满足 nums1[i] > nums2[i] 的索引 i 的数目来描述。来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/advantage-shuffle。返回 nums1 的任意排列,使其相对于 nums2 的优势最大化。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2022-10-08 11:02:55 · 196 阅读 · 0 评论 -
leetcode 5. 最长回文子串
给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:“aba” 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"提示:1 <= s.length <= 1000s 仅由数字和英文字母组成思路:枚举中心点位置当回文子串长度为奇数时,以i为中心开始往两边扩散,直到s[l]!=s[r],此时所得即为以i为中心的最长回文子串当回文子串长度为偶数时,以i和i+1为中心开始往两边扩散,直到s原创 2022-04-22 17:28:37 · 1062 阅读 · 0 评论 -
leetcode 396. 旋转函数
给定一个长度为 n 的整数数组 nums 。假设 arrk 是数组 nums 顺时针旋转 k 个位置后的数组,我们定义 nums 的 旋转函数 F 为:F(k) = 0 * arrk[0] + 1 * arrk[1] + … + (n - 1) * arrk[n - 1]返回 F(0), F(1), …, F(n-1)中的最大值 。生成的测试用例让答案符合 32 位 整数。示例 1:输入: nums = [4,3,2,6]输出: 26解释:F(0) = (0 * 4) + (1 * 3)原创 2022-04-22 11:30:20 · 943 阅读 · 0 评论 -
两数相加
两数相加给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序 的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.写法一:/** * Definition for singly-linked list. * struct ListNode { *原创 2021-10-25 19:22:46 · 85 阅读 · 0 评论 -
leetcode342题 4的幂
leetcode342题 4的幂给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4^x示例 1:输入:n = 16输出:true示例 2:输入:n = 5输出:false示例 3:输入:n = 1输出:trueclass Solution {public: bool isPowerOfFour(int n) { if(n<=0原创 2021-05-31 19:00:18 · 145 阅读 · 0 评论 -
leetcode 231题 2 的幂
leetcode 231. 2 的幂给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2^x ,则认为 n 是 2 的幂次方。解析:一个数 n 是 2 的幂,当且仅当 n 是正整数,并且 n 的二进制表示中仅包含 1 个 1。因此我们可以考虑使用位运算,将 n 的二进制表示中最低位的那个 1 提取出来,再判断剩余的数值是否为 0 即可。示例 1:输入:n = 1输出:true解释:20 = 1原创 2021-05-31 09:53:27 · 225 阅读 · 0 评论 -
leetcode第7题 整数反转
int占4字节32位,根据二进制编码的规则,INT_MAX = 2^31-1=2147483647INT_MIN= -2^31=-2147483648C/C++中,所有超过该限值的数,都会出现溢出,出现warning,但是并不会出现error。如果想表示的整数超过了该限值,可以使用长整型long long 占8字节64位。...原创 2021-05-05 14:17:26 · 128 阅读 · 0 评论 -
leetcode477题 汉明距离总和
leetcode477. 汉明距离总和两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。计算一个数组中,任意两个数之间汉明距离的总和。示例:输入: 4, 14, 2输出: 6解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系) 所以答案为:HammingDistance(4, 14) + HammingDistance(4, 2) +HammingDistance(14, 2)= 2 + 2 + 2 = 6.原创 2021-05-28 21:12:17 · 93 阅读 · 0 评论 -
leetcode343题 整数拆分
整数拆分给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/integer-break著作原创 2021-04-10 21:18:28 · 137 阅读 · 0 评论 -
leetcode190题 颠倒二进制位
颠倒二进制位颠倒给定的 32 位无符号整数的二进制位。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 2 中,输入表示有符号整数 -3,输出表示有符号整数-1073741825。进阶:如果多次调用这个函数,你将如何优化你的算法?示例 1:输入原创 2021-04-10 16:47:41 · 155 阅读 · 6 评论 -
leetcode第80题 删除有序数组中的重复项 II
删除有序数组中的重复项 II给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝 int len = rem原创 2021-04-10 16:10:58 · 257 阅读 · 0 评论 -
leetcode566题 重塑矩阵
leetcode566:重塑矩阵在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入:nums =[[1,2],[3,4]]r = 1, c = 4输出:[[1,2原创 2021-02-17 10:08:39 · 110 阅读 · 0 评论