数组
algsup
这个作者很懒,什么都没留下…
展开
-
[排序+哈希表]leetcode1331:数组序号转换(easy)
思路排序+hashmap。原创 2022-07-28 16:16:53 · 217 阅读 · 0 评论 -
[下一个排列]leetcode556:下一个更大元素 III(medium)
题目:题解:代码如下:原创 2022-07-03 17:35:20 · 186 阅读 · 0 评论 -
[数组]leetcode31:下一个排列(medium)
题目:题目:代码如下:原创 2022-07-03 17:30:14 · 1236 阅读 · 0 评论 -
[模拟][数组]leetcode498:对角线遍历(medium)
题目:题解:代码如下:原创 2022-06-14 16:09:03 · 148 阅读 · 0 评论 -
[数组[hashset]leetcode128:最长连续序列(medium)
题目:题解:思路的话,把题目意思读懂了,直接看代码就好了。关于此题的标签还有并查集,我本人还没有学过,先留坑,以后慢慢填吧。代码如下:class Solution {public: //题解1:动态规划,时间复杂度O(nlogn),空间复杂度O(n) //思路:利用sort先排序在去重,然后求解dp数组。状态转移方程:若nums[i-1]+1==nums[i],...原创 2020-01-29 20:25:32 · 502 阅读 · 1 评论 -
[数组]leetcode1701:平均等待时间(medium)
题目:题解:本题是 os 里面的一个调度机制,其实就是相当于算的是 各个进程的平均周转时间。思路:直接模拟即可,用 end 表示前一个顾客运行的完成时间,若当前顾客的到达时间大于等于 end,则我们更新 end 为该顾客的最终完成时间 end=c[0]+c[1];若当前顾客的到达时间小于 end,则该位顾客的完成时间 end 为 end+c[0],然后我们的 res 加上 end-v[0] 就是周转时间了。代码如下:class Solution {public: doubl原创 2021-02-24 15:54:24 · 469 阅读 · 0 评论 -
[数组]leetcode1752:检查数组是否经排序和轮转得到(easy)
题目:题解:不要看本题是个 easy 题,但是它的最优解法并不是那么好想的。思路1:纯暴力,按题目意思,排序、翻转,然后判断是否相等就行。时间复杂度O(n)O(n)O(n),空间复杂度O(n2)O(n^2)O(n2)思路2:扫描这个数组看看是存在是否存在多少段单调序列,若只有1个或2个单调序列,表明数组是排序好的数组经过轮转得到的,这个用脑子模拟一下就行了。若存在2个以上的单调序列,表明数组是否非排序好的数组轮转得到的。注意还要比较第一个元素和最后一个元素的大小,把它看成一个圈的话原创 2021-02-07 20:38:01 · 304 阅读 · 3 评论 -
[摩尔投票法万能模板]leetcode229:求众数 Ⅱ (medium)
题目:题解:摩尔投票法:由于众数的次数超过n/3,所以数组最多有两个众数(两个众数的次数大于2n/3)代码如下:class Solution {public: //题解1:暴力法 vector<int> majorityElement_1(vector<int>& nums) { map<int,int>...原创 2020-01-08 20:48:07 · 360 阅读 · 0 评论 -
[矩阵]leetcode73:矩阵置零(medium)
题目:题解:题解1:空间复杂度O(m*n),使用一个额外的二维数组记录每个0的索引下标i、j。再次遍历,将对应的行,列清零。题解2:空间复杂度O(m+n),将二维矩阵降维成一维数组,大小为m+n。前m个元素存放某行是否为0,若该行为0,那么此行全部元素都要变为0;后n个元素存放某列是否为0,若该列为0,那么此列所有元素都为0题解3:空间复杂度O(1),利用第一行和第一列当作解法二中的...原创 2019-12-20 16:40:35 · 208 阅读 · 0 评论 -
[快慢指针][数组]leetcode80:删除排序数组中的重复项 II (medium)
题目:80. 删除排序数组中的重复项 II题解:快慢指针代码如下:class Solution {public: //题解:快慢指针,sp表示慢指针,用来记录可以覆写数据的位置;fp表示快指针,用来遍历整个数组 int removeDuplicates(vector<int>& nums) { if(nums.size(...原创 2019-12-19 23:15:13 · 217 阅读 · 0 评论 -
[数组][二分法]leetcode74:搜索二维矩阵(medium)
题目:题解:题解1:暴力法,直接遍历寻找目标值题解2:缩小领域法,从数组左下角向右上角寻找目标值题解3:二分法,将二维矩阵拖为一维矩阵,然后利用标准的二分查找就好了,注意一下一维和二维坐标之间的转换就好代码如下:class Solution {public: //题解1:暴力法 bool searchMatrix_1(vector<vector<...原创 2019-12-18 15:18:03 · 216 阅读 · 0 评论 -
[数组]leetcode59:螺旋矩阵 II (medium)
题目:题解:54. 螺旋矩阵的代码结构一样的,确定上下左右四条边的位置,然后遍历就行了。代码如下:class Solution {public: vector<vector<int>> generateMatrix(int n) { if(n==0)return {}; vector<vector<in...原创 2019-12-16 22:02:41 · 186 阅读 · 0 评论 -
[数组][dp[]leetcode42:接雨水(hard)
题目:题解:思路:下雨后能达到的最大高度等于两边最大高度的较小值减去当前高度代码如下:class Solution {public: //思路:下雨后能达到的最大高度等于两边最大高度的较小值减去当前高度 int trap(vector<int>& height) { int n=height.size(); //l...原创 2019-12-06 15:32:39 · 195 阅读 · 0 评论 -
[数组]leetcode41:缺失的第一个正数(hard)
题目:题解:遍历一次数组把大于等于1的和小于数组大小的值放到原数组对应位置,然后再遍历一次数组查当前下标是否和值对应,如果不对应那这个下标就是答案,否则遍历完都没出现那么答案就是数组长度加1。代码如下:class Solution {public: int firstMissingPositive(vector<int>& nums) { ...原创 2019-12-04 20:37:37 · 191 阅读 · 0 评论 -
[数组]leetcode989:数组形式的整数加法(easy)
题目:989. 数组形式的整数加法题解:思路:将A的从低位与K相加,同时K每次都要丢弃个位数字,然后与A的下一个数字相加代码如下:class Solution {public: //思路:将A的从低位与K相加,同时K每次都要丢弃个位数字,然后与A的下一个数字相加 vector<int> addToArrayForm(vector<int>...原创 2019-12-04 11:35:19 · 95 阅读 · 0 评论 -
[数组]leetcode1275:找出井字棋的获胜者(easy)
题目:1275. 找出井字棋的获胜者题解:思路:暴力枚举(说实话我是笨蛋,再打比赛的时候这种小数据的枚举题都没做好,我是笨蛋)获胜的方式也就总共8种:三行、三列、两条对角线。然后把moves当成一维数组使用,注意二维数组与一维数组的转换(每行的个数*i+j)代码如下:class Solution {public: string tictactoe(vector&...原创 2019-12-02 21:45:18 · 600 阅读 · 0 评论 -
[树状数组]leetcode307:区域和检索 - 数组可修改(medium)
题目:题解:题解1:暴力法题解2:树状数组题解1:class NumArray{private: vector<int> nums;public: NumArray(vector<int>& nums) { this->nums=nums; } void update(int i...原创 2019-11-30 10:03:37 · 210 阅读 · 0 评论 -
[数组]leetcode31:下一个排列(medium)
题目:题解:题解1:直接调用STL算法next_permutation即可题解2:手动实现STL算法next_permutation代码如下:class Solution {public: //题解1:直接调用STL算法 void nextPermutation_1(vector<int>& nums) { next_permut...原创 2019-11-27 23:41:18 · 196 阅读 · 0 评论 -
[数组][对角线交换]leetcode48:翻转图像(medium)
题目:48. 旋转图像题解:解法1:找规律转换图像的本质就是着四个点(i,j) , (j, n-i-1), (n-i-1, n-j-1), (n -j-1, i)在两两交换,这里需要注意一下需要旋转的层数为n/2就好了。解法2:翻转旋转图像的本质就是先沿水平对角线翻转,然后再沿正对角线翻转,就得到最后结果了。代码如下:class Solution {publi...原创 2019-11-26 21:08:52 · 786 阅读 · 0 评论 -
[数组]leetcode5272:统计参与通信的服务器(medium)
题目:5272.统计参与通信的服务器题解:暴力题:因为没有用到一点点算法,就是阅读理解题。。思路一:遍历数组,若找到一个服务器,然后判断同行同列是否还存在服务器,若存在则此服务器可以参与通信思路二:分别统计每个服务器的行与列的数字和,若单个服务器的行与列的数字和都为1,那么这个服务器就不能通信代码如下:class Solution {public: //思路一:...原创 2019-11-24 16:32:42 · 320 阅读 · 0 评论 -
[数组]leetcode5263:二维网格迁移(easy)
题目:5263. 二维网格迁移题解:暴力法解法1(自己比赛写的):将二维数组拉伸为一个一维数组,将k之前的元素全部尾插到一维数组中,然后k之后的元素从最后面开始头插到一维数组中,然后重新赋值给新的二维数组就好了解法2(大佬的解法):直接把整个矩阵拉成一个数组,然后从n*m-k位置开始填充代码如下:class Solution {public: //题解1:自己打...原创 2019-11-17 23:20:22 · 276 阅读 · 0 评论 -
leetcode周赛158:5223. 可以攻击国王的皇后(medium)
题目:5223. 可以攻击国王的皇后题解:1)用8*8的二维数组来存放皇后的坐标2)对于本题,我们直接从国王的坐标出发沿8个方向找到最近的皇后添加到result中,注意一下方向数组的表示(这个也是我今天学到的嘻嘻)。代码如下:class Solution {public: vector<vector<int>> queensAttackth...原创 2019-10-13 22:44:26 · 306 阅读 · 0 评论 -
[数组]leetcode697:数组的度(easy)
题目:题解:利用hashmap来存放元素值和该元素值在数组中的下标集合,然后遍历hashmap来获得数组的度和度的最小子数组。代码如下:class Solution {public: int findShortestSubArray(vector<int>& nums) { unordered_map<int,vector<i...原创 2019-10-09 22:08:21 · 233 阅读 · 0 评论 -
[数组]leetcode152:乘积最大子序列(medium)
题目:题解:使用两个变量a、b,a用来记录以 nums[i-1] 结尾的乘积最小值,b用来记录以nums[i-1] 结尾的乘积最大值,Max每次取b与上次的Max中的最大值即可。代码如下:class Solution {public: int maxProduct(vector<int>& nums) { int n=nums.size(...原创 2019-10-09 15:05:24 · 281 阅读 · 0 评论 -
[数组]leetcode238:除自身之外数组的乘积(medium)
题目:题解:简单想法:对于例子[1,2,3,4]想求出1位置的结果,我们需要直到1左边的累乘和1右边的累乘。也就是当i=0时,result[0]*=left,此时的left为1表示其左边没有累乘,当i=3时,result[n-1-i]=result[0]*=right,此时的right为2*3*4=12表示其右边已经累乘完毕,至于其他位置的元素值,读者自行推算即可。注:在遍历的时候,下...原创 2019-10-08 22:16:41 · 171 阅读 · 0 评论 -
[数组]leetcode334:递增的三元子序列(medium)
题目:题解:用a、b、c来表示三元子序列的三个元素:其中用c来遍历数组,用a来始终记录最小的元素,用b来记录子序列中最大的元素。然后再遍历的时候,不断地更新a,同时也要保证b尽可能地小,如果遍历到的元素c大于a同时也大于b的话,表示找到三元组了,返回true。代码如下:class Solution {public: bool increasingTriplet(vector...原创 2019-10-08 20:27:35 · 319 阅读 · 0 评论 -
[洗牌算法]leetcode384:打乱数组(medium)
题目:题解:对于将数组元素的顺序按任意顺序打乱后返回概率相同的数组,我们应该使用经典的洗牌算法:在前n-1张牌洗好的情况下,第n张牌随机与前n-1张牌的其中一张牌交换,或者不换。代码如下:class Solution {private: vector<int> data;public: Solution(vector<int>& n...原创 2019-10-08 19:58:59 · 426 阅读 · 0 评论