数组
时长两年半的练习生
这个作者很懒,什么都没留下…
展开
-
数组-最佳观光组合(力扣1014)
题目链接 点我 思路 思路一 看到这种题,我们首先想到的就是暴力解法,双层循环遍历,求出对应的值,与最大值进行比较即可。 过程如下: 数据声明 (1)最大分数,用于比较和返回结果 (2)数组的长度,用于循环条件 双层循环,第一层循环从0开始,到len-1结束,第二层循环从1开始到len结束 每次循环计算出目标值与最大值进行比较更新 代码 class Solution { public: int maxScoreSightseeingPair(vector<int>&原创 2020-06-17 10:59:06 · 175 阅读 · 0 评论 -
数组-递减元素使数组呈锯齿状(力扣1144)
题目链接 点我 思路 题目要看清 每次操作只会将元素的值减少1 没有增加1的操作,只有对元素进行减少1的操作 思路一 自己一开始没有看清题目,误以为也可以递增1,所以想复杂了,虽然最后做出来了,但是与标准答案不沾边,这里记录一下。 锯齿数组的特点就是一增一减,怎么样才能更加直观的体现这种一增一减的大小变化呢,我想到了差分,相邻两个元素作减法的值不就更能直观的体现元素间的大小关系,所以通过给出的原数组可以得到一个体现相邻元素大小关系的正负数组,如果正负数组中,有连续的正值或者负值,则原数组不是锯齿数组。 对原创 2020-06-16 20:33:34 · 726 阅读 · 0 评论 -
数组-大小为 K 且平均值大于等于阈值的子数组数目(力扣 1343)
题目链接 点我 思路 基本概念要掌握 子数组:一个或多个连续原数组中元素组成子数组 子序列:在原序列中抽取一个或多个元素组成子序列 即子数组必须连续,子序列不一定连续 作者本人在第一次做题时没有思路就是没有搞清楚这两个概念。 思路一 在了解了子数组的概念后,不知道你有没有了思路?是否感觉题目瞬间简单了。 不就是在数组中找出所有的连续的k个元素的子数组,对于每个子数组求和,再除k与threshold比较。那么有以下几个问题: 如何找出一个数组所有的连续的k个元素的子数组? 以我们正常人的思维首先想到的就是原创 2020-06-14 19:49:44 · 491 阅读 · 0 评论 -
数组-最长连续序列(leetcode 128)
最长连续序列 题目描述: 思路: 一般碰到这种问题,我们首先想到的就是暴力解法: 遍历数组中的每一个元素,以此元素作为最长连续数列的第一个元素,然后对此元素不断加1,判断加1后的这些元素是否在数组中,从而得出“当以数组中每一个元素作为最长连续数列中第一个元素时的序列长度”取其中最大值即可。 但是这样显然不满足题目的时间复杂度要求,所以需要优化,我们可以使用hash来判断一个元素是否存在于数组中,从而不需要遍历数组去查找,使用hash查找元素复杂度变为O(1),另外当一个元素x的前一个数x-1如果在数组中,原创 2020-06-06 09:57:15 · 430 阅读 · 0 评论