自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 刷题笔记:只出现一次的数字

只出现一次的数字题目经验题目https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x21ib6/经验使用异或运算:使用异或运算,将所有值进行异或异或运算,相异为真,相同为假,所以 a^a = 0 ;0^a = a因为异或运算 满足交换律 aba = aab = b 所以数组经过异或运算,单独的值就剩下了。很妙。...

2022-03-15 16:30:12 121

原创 力扣刷题学习495. 提莫攻击(C++)

题目描述自己看解答首先我可以知道当没有中毒时,如果给上毒,那么此时中毒时间直接增加duration,同时更新中毒结束时间ex.如果被上毒时已经中毒,则此时中毒时间将加上time[i]+duration-ex,同时更新ex.class Solution {public: int findPoisonedDuration(vector<int>& timeSeries, int duration) { int ans = 0; int ex

2021-11-10 15:37:44 4680

原创 力扣刷题学习299. 猜数字游戏(C++)

题目描述题目描述较绕,直接看原文。解答首先公牛数量好算,只要看对应位置的值是否相同。而对于奶牛数量,是指可以通过改变位置后变成公牛的值,那么就是指两个数组中相同值的数量的最小值,也就是说当有多个相同值时,只有对应最少量的可以变成公牛。这里可以用计数数组来分别统计对应值的数量,然后取两个数组对应位置最小的值。class Solution {public: string getHint(string secret, string guess) { int bulls = 0

2021-11-08 09:57:33 3225

原创 力扣刷题学习598. 范围求和 II(C++)

题目描述给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。示例 1:输入:m = 3, n = 3operations = [[2,2],[3,3]]输出: 4解释:初始状态

2021-11-07 10:13:44 736

原创 力扣刷题学习268. 丢失的数字(C++)

题目描述给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。测试用例示例一:输入:nums = [3,0,1] 输出:2 解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2是丢失的数字,因为它没有出现在 nums 中。示例二:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。

2021-11-06 16:12:56 354

原创 力扣刷题学习1218. 最长定差子序列(C++)

题目描述给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列中相邻元素之间的差等于 difference 。子序列 是指在不改变其余元素顺序的情况下,通过删除一些元素或不删除任何元素而从 arr 派生出来的序列。测试用例示例一:输入:arr = [1,2,3,4], difference = 1输出:4解释:最长的等差子序列是 [1,2,3,4]。示例 二:输入:arr = [1,3,5,7], difference =

2021-11-05 15:54:15 128

原创 利扣刷题学习367. 有效的完全平方数(C++)

题目描述给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。测试用例示例 1:输入:num = 16输出:true示例2:输入:num = 14输出:false提示:1 <= num <= 2^31 - 1解答题目要求不能使用自带的库函数,那么我们首先分析如何得到平方数,当x处于1-num之间时,如果xx等于num,那x便是完全平方数。自然

2021-11-04 10:33:04 310

原创 力扣刷题学习407. 接雨水 II(C++)

题目描述直接上原链接看题吧解答首先可以明确能接雨水的方块特点不能是最外层方块周围一圈方块高度都比它高这里我们假设逐个方块注水,那么要从外往里逐个检查,因为最外层最低的方块决定了当前圈层的最低高度。首先我们每次遍历一遍当前最外层的方块,选择当前圈中最低的方块检查其周围的方块是否是访问过的,如果未访问过且高度比其低,则将其注水,且更新高度为注水后的高度,如此遍历完整个数组。typedef pair<int,int> pii;class Solution {public:

2021-11-03 16:32:55 177

原创 力扣刷题学习237. 删除链表中的节点

题目描述请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问要被删除的节点 。题目数据保证需要删除的节点 不是末尾节点 。测试用例示例一:输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:指定链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9示例二:输入:head = [4,5,1,9], node = 1输出:[4,5,9]

2021-11-02 09:45:01 98

原创 力扣刷题学习575. 分糖果(C++)

题目描述给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。测试用例示例一:输入: candies = [1,1,2,2,3,3]输出: 3示例二:输入: candies = [1,1,2,3]输出: 2提示:数组的长度为[2, 10,000],并且确定为偶数。数组中数字的大小在范围[-100,000, 100,000]内。解答思路一:首先因为是偶数个糖果,

2021-11-01 09:29:11 273

原创 力扣刷题学习500. 键盘行(C++)

题目描述给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。美式键盘 中:第一行由字符 “qwertyuiop” 组成。第二行由字符 “asdfghjkl” 组成。第三行由字符 “zxcvbnm” 组成。测试用例示例一:输入:words = [“Hello”,“Alaska”,“Dad”,“Peace”]输出:[“Alaska”,“Dad”]示例二:输入:words = [“omk”]输出:[]示例三:输入:words = [“ad

2021-10-31 15:02:42 175

原创 力扣刷题学习260. 只出现一次的数字 III(C++)

题目描述给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?测试用例实例1:输入:nums = [1,2,1,3,2,5]输出:[3,5]解释:[5, 3] 也是有效的答案。实例2:输入:nums = [-1,0]输出:[-1,0]实例3:输入:nums = [0,1]输出:[1,0]提示2 <=

2021-10-30 10:01:40 87

原创 力扣刷题学习335. 路径交叉(C++)

题目描述给你一个整数数组 distance 。从 X-Y 平面上的点 (0,0) 开始,先向北移动 distance[0] 米,然后向西移动 distance[1] 米,向南移动 distance[2] 米,向东移动 distance[3] 米,持续移动。也就是说,每次移动后你的方位会发生逆时针变化。判断你所经过的路径是否相交。如果相交,返回 true ;否则,返回 false 。测试用例示例 1:输入:distance = [2,1,1,2]输出:true示例2:输入:distan

2021-10-29 15:45:32 203

原创 力扣刷题学习869. 重新排序得到 2 的幂(C++)

题目描述给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。测试用例示例 1:输入:1输出:true示例 2:输入:10输出:false示例 3:输入:16输出:true提示:1 <= N <= 10^9解题思路此处有个重要知识点,即:如果两个十进制数从大到小重新排序后,其结果相同,则对于它们能否排列出2的幂,答案是相同的。由题意可知,

2021-10-28 15:18:12 157

原创 力扣刷题学习301. 删除无效的括号(C++)

问题描述给你一个由若干括号和字母组成的字符串 s,删除最小数量的无效括号,使得输入的字符串有效。返回所有可能的结果。答案可以按 任意顺序 返回。测试用例示例 1:输入:s = “()())()”输出:["(())()","()()()"]示例 2:输入:s = “(a)())()”输出:["(a())()","(a)()()"]示例 3:输入:s = “)(”输出:[""]解法第一天打卡就是困难题,直接愣住。5分钟后没有思路,选择直接看答案。思路:回溯 + 剪枝题

2021-10-27 18:23:08 130

空空如也

空空如也

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

TA关注的人

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