自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 1748. 唯一元素的和

1748. 唯一元素的和——2021.03.08题目思路题目给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。请你返回 nums 中唯一元素的 和 。示例 1:输入:nums = [1,2,3,2]输出:4解释:唯一元素为 [1,3] ,和为 4 。示例 2:输入:nums = [1,1,1,1,1]输出:0解释:没有唯一元素,和为 0 。示例 3 :输入:nums = [1,2,3,4,5]输出:15解释:唯一元素为 [1,2,3,4,5] ,和为

2021-03-08 10:48:49 161

原创 1773. 统计匹配检索规则的物品数量

1773. 统计匹配检索规则的物品数量——2021.03.04题目思路题目给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型、颜色以及名称。另给你一条由两个字符串 ruleKey 和 ruleValue 表示的检索规则。如果第 i 件物品能满足下述条件之一,则认为该物品与给定的检索规则 匹配 :ruleKey == “type” 且 ruleValue == typei 。ruleKey == “color” 且 ru

2021-03-04 12:27:50 302 1

原创 867. 转置矩阵

867. 转置矩阵——2021.02.25题目思路题目给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:matrix = [[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]思路直接利用模拟法即可class Solu

2021-02-25 10:57:41 202

原创 1768. 交替合并字符串

1768. 交替合并字符串——2021.02.24题目思路题目给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回 合并后的字符串 。示例 1:输入:word1 = “abc”, word2 = “pqr”输出:“apbqcr”解释:字符串合并情况如下所示:word1: a b cword2: p q r合并后: a p b q c r

2021-02-24 11:04:05 432

原创 (Latex参考文献引用问题)

Latex参考文献引用问题BibTex的使用最近因为在写论文,考虑用Latex排版,之前没用过Latex,算是新手小白,第一次用花了很多时间,记录一下参考文献相关的问题。BibTex的使用这一部分的使用,网上已经有很多教程了,具体可以参考[https://blog.csdn.net/caiandyong/article/details/70258670]需要说明一下几点:\usepackage{cite}:这个包的作用,是让你引用多个文献时,比如引用了[1][2][3],三篇文献时,会自动压缩

2021-02-10 13:00:37 1774

原创 389. 找不同

389. 找不同——2021.01.27题目思路题目给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例 1:输入:s = “abcd”, t = “abcde”输出:“e”解释:‘e’ 是那个被添加的字母。示例 2:输入:s = “”, t = “y”输出:“y”示例 3:输入:s = “a”, t = “aa”输出:“a”示例 4:输入:s = “ae”, t = “aea”输

2021-01-27 10:43:16 58

原创 169. 多数元素

169. 多数元素——2021.01.21题目思路题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2思路利用哈希表,统计出现的次数即可。class Solution {public: int majorityElement(vector<int>&

2021-01-21 16:47:12 63

原创 628. 三个数的最大乘积

628. 三个数的最大乘积——2021.01.20题目思路题目给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24思路对数组进行排序,由于可能出现负数,但要使得负数乘积最大,那么必须是负数 * 负数 * 正数,也就是排序后最小的前两个数和最后一个数的乘积;还有另一种最大的乘积可能是排序后最后三个数的乘积,即正数 * 正数 * 正数class Solution {public

2021-01-20 19:40:17 103

原创 1704. 判断字符串的两半是否相似

1704. 判断字符串的两半是否相似——2021.01.19题目思路题目给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半,前一半为 a ,后一半为 b 。两个字符串 相似 的前提是它们都含有相同数目的元音(‘a’,‘e’,‘i’,‘o’,‘u’,‘A’,‘E’,‘I’,‘O’,‘U’)。注意,s 可能同时含有大写和小写字母。如果 a 和 b 相似,返回 true ;否则,返回 false 。示例 1:输入:s = “book”输出:true解释:a = “bo” 且 b = “ok”

2021-01-19 10:00:47 148

原创 1018. 可被 5 整除的二进制前缀

1018. 可被 5 整除的二进制前缀——2021.01.14题目思路题目给定由若干 0 和 1 组成的数组 A。我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。返回布尔值列表 answer,只有当 N_i 可以被 5 整除时,答案 answer[i] 为 true,否则为 false。示例 1:输入:[0,1,1]输出:[true,false,false]解释:输入数字为 0, 01, 011;也就是十进制中的 0, 1,

2021-01-14 20:41:19 55

原创 1688. 比赛中的配对次数

1688. 比赛中的配对次数——2021.01.13题目思路题目给你一个整数 n ,表示比赛中的队伍数。比赛遵循一种独特的赛制:如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮。如果当前队伍数为 奇数 ,那么将会随机轮空并晋级一支队伍,其余的队伍配对。总共进行 (n - 1) / 2 场比赛,且产生 (n - 1) / 2 + 1 支队伍进入下一轮。返回在比赛中进行的配对次数,直到决出获胜队伍为止。示例 1:输入:n

2021-01-13 10:34:21 80

原创 1720. 解码异或后的数组

1720. 解码异或后的数组——2021.01.12题目思路题目未知整数数组 arr 由 n 个非负整数组成。经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。给你编码后的数组 encoded 和原数组 arr 的第一个元素 first(arr[0])。请解码返回原数组 arr 。可以证明答案存在并且是唯一的。示

2021-01-12 15:26:40 121

原创 228. 汇总区间

228. 汇总区间——2021.01.10题目思路题目给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:“a->b” ,如果 a != b“a” ,如果 a == b示例 1:输入:nums = [0,1,2,4,5,7]输出:[“0->2”,“4->5

2021-01-10 17:49:43 75

原创 1. 两数之和

1. 两数之和——2021.01.08题目思路题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2

2021-01-08 16:23:37 59

原创 189. 旋转数组

189. 旋转数组——2021.01.08题目思路题目给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释:

2021-01-08 16:03:35 60

原创 面试题 16.01. 交换数字

面试题 16.01. 交换数字——2021.01.07题目思路题目编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。示例:输入: numbers = [1,2]输出: [2,1]思路直接交换两个数字即可class Solution {public:vector swapNumbers(vector& numbers) {vector ans;ans.push_back(numbers[1]);ans.push_back(numbers[0])

2021-01-07 11:24:57 76

原创 1678. 设计 Goal 解析器

1678. 设计 Goal 解析器——2021.01.06题目思路题目请你设计一个可以解释字符串 command 的 Goal 解析器 。command 由 “G”、"()" 和/或 “(al)” 按某种顺序组成。Goal 解析器会将 “G” 解释为字符串 “G”、"()" 解释为字符串 “o” ,"(al)" 解释为字符串 “al” 。然后,按原顺序将经解释得到的字符串连接成一个字符串。给你字符串 command ,返回 Goal 解析器 对 command 的解释结果。示例 1:输入:comm

2021-01-06 20:33:12 236

原创 605.种花问题

605.种花问题——2021.01.06题目思路题目假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。示例 1:输入:flowerbed = [1,0,0,0,1], n = 1输出:true示例 2:

2021-01-06 17:13:05 90

原创 830. 较大分组的位置

830. 较大分组的位置——2021.01.05题目思路题目在一个由小写字母构成的字符串 s 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 s = “abbxxxxzyy” 中,就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的一些分组。分组可以用区间 [start, end] 表示,其中 start 和 end 分别表示该分组的起始和终止位置的下标。上例中的 “xxxx” 分组用区间表示为 [3,6] 。我们称所有包含大于或等于三个连续字符的分组为 较大分组

2021-01-05 15:55:04 64

原创 509. 斐波那契数

509. 斐波那契数——2021.01.04题目思路题目斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1示例 2:输入:3输出:2解释:F(3) = F(2)

2021-01-04 10:20:40 75

原创 1046. 最后一块石头的重量

1046. 最后一块石头的重量——2020.12.31题目思路题目有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。示例:输入:[2,7,4,1,8,

2020-12-31 10:14:01 62

原创 1207. 独一无二的出现次数

1207. 独一无二的出现次数——2020.12.30题目思路题目给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。示例 1:输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。示例 2:输入:arr = [1,2]输出:false示例 3:输入:arr = [-3,0,1,-3,1,1

2020-12-30 11:07:49 54

原创 852. 山脉数组的峰顶索引

852. 山脉数组的峰顶索引)——2020.12.28题目思路题目山脉数组的峰顶索引我们把符合下列属性的数组 A 称作山脉:A.length >= 3存在 0 < i < A.length - 1 使得A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < … A[i-1] < A[i] &

2020-12-28 10:12:04 46

原创 387. 字符串中的第一个唯一字符

387. 字符串中的第一个唯一字符——2020.12.27题目思路题目给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode”返回 0s = “loveleetcode”返回 2思路采用哈希表。注意,在搜寻哈希键值为1的时候,外层循环需要为数组长度,因为题目要求的是返回第一个不重复字符的索引。class Solution {public:int firstUniqChar(string s) {unordered_ma

2020-12-27 17:13:40 113

原创 455. 分发饼干

455. 分发饼干——2020.12.27题目思路题目假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1:输入: g = [1,2,3], s = [1,1]输出: 1解释

2020-12-27 17:02:31 73

原创 922. 按奇偶排序数组 II

922. 按奇偶排序数组 II——2020.12.25题目思路题目给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。思路采用两次循环,分别筛选出奇偶数,并创建新的vector来存储。class Solu

2020-12-25 17:00:13 61

原创 1475. 商品折扣后的最终价格

1475. 商品折扣后的最终价格——2020.12.25题目思路题目给你一个数组 prices ,其中 prices[i] 是商店里第 i 件商品的价格。商店里正在进行促销活动,如果你要买第 i 件商品,那么你可以得到与 prices[j] 相等的折扣,其中 j 是满足 j > i 且 prices[j] <= prices[i] 的 最小下标 ,如果没有满足条件的 j ,你将没有任何折扣。请你返回一个数组,数组中第 i 个元素是折扣后你购买商品 i 最终需要支付的价格。示例 1:输

2020-12-25 16:05:50 130

原创 1374. 生成每种字符都是奇数个的字符串

1374. 生成每种字符都是奇数个的字符串——2020.12.25题目思路结果题目给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 。返回的字符串必须只含小写英文字母。如果存在多个满足题目要求的字符串,则返回其中任意一个即可。示例 1:输入:n = 4输出:“pppz”解释:“pppz” 是一个满足题目要求的字符串,因为 ‘p’ 出现 3 次,且 ‘z’ 出现 1 次。当然,还有很多其他字符串也满足题目要求,比如:“ohhh” 和 “love”。

2020-12-25 15:42:07 96

原创 349. 两个数组的交集

349. 两个数组的交集——2020.12.23题目思路解法结果题目给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]思路解法暴力比较两个数组,然后利用set容器元素不重复的特性进行存储。class Solution {public:vector intersection(vector&

2020-12-23 15:38:39 53

原创 557. 反转字符串中的单词 III

557. 反转字符串中的单词 III——2020.12.22题目思路解法题目给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:“Let’s take LeetCode contest”输出:“s’teL ekat edoCteeL tsetnoc”思路解法参考了官方解答:class Solution {public:string reverseWords(string s) {string ret;int length = s.leng

2020-12-22 14:24:48 77

原创 只出现一次的数字

136.只出现一次的数字——2020.12.21题目思路解法题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路解法最开始想到的是用hash表,写出来发现错了、题目要求要具有线性时间复杂度,参考官方解答,只需要进行异或操作即可。因为异或操作具有以下性质class

2020-12-21 10:07:51 45

原创 191.位1的个数

191.位1的个数——2020.12.20题目思路解法题目编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 3 中,输入表示有符号整数 -

2020-12-20 16:24:26 46

原创 反转字符串

344. 反转字符串题目思路解法题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”

2020-12-18 19:27:11 187 2

原创 二进制中1的个数

剑指 Offer 15. 二进制中1的个数题目解题思路题目请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:0000000000000000000000

2020-12-18 17:00:46 121 1

原创 自除数

自除数——2020.12.14题目思路解法题目自除数 是指可以被它包含的每一位数除尽的数。例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。还有,自除数不允许包含 0 。给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。示例 1:输入:上边界left = 1, 下边界right = 22输出: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]思路解法第一想到

2020-12-14 16:05:36 1270

原创 替换空格

替换空格——2020.12.10题目思路解法1解法2题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”思路解法1这题第一想到的应该就是replace函数,先用find函数找到空格,在替换,主要空格可能不止一个,需要循环找出。class Solution {public:string replaceSpace(string s) {while(s.find(" “)!=-1)

2020-12-10 16:52:38 60

原创 转换成小写字母

转换成小写字母——2020.12.08题目思路解法题目实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例 1:输入: “Hello”输出: “hello”示例 2:输入: “here”输出: “here”示例 3:输入: “LOVELY”输出: “lovely”思路解法根据ASCII表进行转换大写字母与小写字母之间差值为32于是class Solution {public:string

2020-12-08 09:32:58 111

原创 6和9组成的最大数字

6和9组成的最大数字——2020.12.07题目思路解法题目给你一个仅由数字 6 和 9 组成的正整数 num。你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。请返回你可以得到的最大数字。示例 1:输入:num = 9669输出:9969解释:改变第一位数字可以得到 6669 。改变第二位数字可以得到 9969 。改变第三位数字可以得到 9699 。改变第四位数字可以得到 9666 。其中最大的数字是 9969 。示例 2:输入:num = 9996输出:9

2020-12-07 10:19:11 1003

原创 唯一摩尔斯密码词

唯一摩尔斯密码词——2020.12.04题目思路解法题目国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-”, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",".–.","–.-",".-.","…","-","…-",

2020-12-04 10:34:56 102

原创 打印从1到最大的n位数

打印从1到最大的n位数——2020.12.03题目思路题目输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]思路利用pow函数即可class Solution {public:vector printNumbers(int n) {vector ans;if(n==0)return ans;for(int i=1;i<pow

2020-12-03 17:17:28 96

空空如也

空空如也

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

TA关注的人

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