c++
文章平均质量分 87
qq_33843251
这个作者很懒,什么都没留下…
展开
-
刷题第九天(深搜)
565. 数组嵌套索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到最大的集合S并返回其大小,其中 S[i] = {A[i], A[A[i]], A[A[A[i]]], … }且遵守以下的规则。假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]… 以此类推,不断添加直到S出现重复的元素。示例 1:输入: A = [5,4,0,3,1,6,2]输出: 4解释:A[0] = 5, A[1] = 4, A[2] = 0, A[原创 2021-01-28 10:31:15 · 189 阅读 · 0 评论 -
刷题第八天(贪心加前缀和,待更新)
#508. 两人过河题目描述 有 n 个人希望在晚上通过一座桥。在任何时刻,最多只能有两个人在桥上,并且必须要带着手电筒才能过桥。现在只有一个手电筒,所以必须安排某种顺序,使得手电筒可以被带回去让更多的人过桥。每个人都有不同的过桥时间,两个人一起过桥所用的时间等于其中较慢的一个人的过桥时间。现求所有人过桥的最短时间。输入 第一行一个整数 n。(1≤n≤1000) 接下来 n 行,每行一个整数表示第 i 人的过桥时间 Ti。(1≤Ti≤100)输出 输出所有人过桥的最短时间。样例输入原创 2021-01-21 10:59:37 · 575 阅读 · 0 评论 -
刷题第七天(最大正方形与矩形)问题(单调栈与动态整理,待补充)
221. 最大正方形在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。示例 1:输入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]输出:4示例 2:输入:matrix = [[“0”,“1”],[“1”,“0”]]输出:1示例 3:输入:matrix = [[“0”]]输出:0//每一个下标原创 2021-01-18 17:03:27 · 229 阅读 · 0 评论 -
2021-01-13
451. 根据字符出现频率排序给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。示例 2:输入:“cccaaa”输出:“cccaaa”解释:'c’和’a’都出现三次。此外,"aaaccc"也是有效的答案。注意"cacaca"是不正确的,因为相同的字母必须放在一起。示例 3:输入:“Aabb原创 2021-01-14 15:54:14 · 127 阅读 · 0 评论 -
刷题第六天
1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次方法1:利用和 计算1-1000的和,然后计算数组的和,差值是出现两次元素的值方法二;利用异或先把1-1000异或,然后和数组里面的所有元素进行异或int num(vector<int> array){ int re = 0; for(int i=1;i<=1000;i++) re ^= i; for(int i=0;i<=1000;i++)原创 2021-01-13 11:26:39 · 106 阅读 · 0 评论 -
刷题第五天(优先队列,待补充)
1705. 吃苹果的最大数目有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果。在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i + days[i] 天时)腐烂,变得无法食用。也可能有那么几天,树上不会长出新的苹果,此时用 apples[i] == 0 且 days[i] == 0 表示。你打算每天 最多 吃一个苹果来保证营养均衡。注意,你可以在这 n 天之后继续吃苹果。给你两个长度为 n 的整数数组 days 和 apples ,返原创 2021-01-12 11:35:50 · 124 阅读 · 0 评论 -
刷题第四天(股票问题专项)
121. 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股原创 2021-01-11 09:49:15 · 183 阅读 · 0 评论 -
刷题第三天
189. 旋转数组给定一个数组,将数组中的元素向右移动 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]解释:向右旋转 1 步: [99,-1,-原创 2021-01-09 11:01:49 · 110 阅读 · 0 评论 -
刷题第二天
42. 接雨水思路:当前位置存水量等于左边最大值与右边最大值的最小值减去当前值;```cppclass Solution {public: int trap(vector<int>& height) { if(height.size()==0) return 0; vector<int> left(height.size(),0); vector<int> right(height.size(),0);原创 2021-01-08 11:03:02 · 221 阅读 · 0 评论 -
***刷题第一天***
刷题第一天力扣 1694给你一个字符串形式的电话号码 number 。number 由数字、空格 ’ '、和破折号 ‘-’ 组成。请你按下述方式重新格式化电话号码。首先,删除 所有的空格和破折号。其次,将数组从左到右 每 3 个一组 分块,直到 剩下 4 个或更少数字。剩下的数字将按下述规定再分块:2 个数字:单个含 2 个数字的块。3 个数字:单个含 3 个数字的块。4 个数字:两个分别含 2 个数字的块。最后用破折号将这些块连接起来。注意,重新格式化过程中 不应该 生成仅含 1 个原创 2021-01-07 10:17:04 · 382 阅读 · 0 评论