首页 > 其他分享 >Leetcode37-和相等的子数组(2395)

Leetcode37-和相等的子数组(2395)

时间:2024-09-02 13:52:35浏览次数:12  
标签:false temp nums int 2395 数组 Leetcode37 true

1、题目

给你一个下标从 0 开始的整数数组 nums ,判断是否存在 两个 长度为 2 的子数组且它们的 和 相等。注意,这两个子数组起始位置的下标必须 不相同 。

如果这样的子数组存在,请返回 true,否则返回 false 。

子数组 是一个数组中一段连续非空的元素组成的序列。

示例 1:

输入:nums = [4,2,4]
输出:true
解释:元素为 [4,2] 和 [2,4] 的子数组有相同的和 6 。
示例 2:

输入:nums = [1,2,3,4,5]
输出:false
解释:没有长度为 2 的两个子数组和相等。
示例 3:

输入:nums = [0,0,0]
输出:true
解释:子数组 [nums[0],nums[1]] 和 [nums[1],nums[2]] 的和相等,都为 0 。
注意即使子数组的元素相同,这两个子数组也视为不相同的子数组,因为它们在原数组中的起始位置不同。

提示:

2 <= nums.length <= 1000
-109 <= nums[i] <= 109

2、解

    bool findSubarrays(vector<int> & nums)
    {
        unordered_map<int, int> sumTimes;
        for(int i = 0; i < nums.size() - 1 ; i++)
        {
            int temp = 0;
            temp = nums[i] + nums[i + 1];
            sumTimes[temp] ++;
        }
        for(auto& [sum, times] : sumTimes){
            if(times > 1) return true;
        }
        return false;
    }

进阶版

    bool findSubarraysA(vector<int>& nums)
    {
        unordered_set<int> sumTims;
        for(int i = 0; i < nums.size() - 1 ; i++)
        {
            int temp = nums[i] + nums[i + 1];
            if(sumTims.count(temp)) {
                return true;
            }
            sumTims.insert(temp);
        }
        return false;
    }

标签:false,temp,nums,int,2395,数组,Leetcode37,true
From: https://blog.csdn.net/qq_37346140/article/details/141818115

相关文章

  • ReactJs:使用映射函数后我的父数组得到更新
    在React中,使用映射函数后父数组得到更新是正常的行为。映射函数会创建一个新的数组,其中包含了原始数组中每个元素经过映射操作后的结果。如果你希望在映射函数中修改原始数组,你可以使用forEach方法来遍历数组,并在遍历过程中修改元素。以下是一个示例:constparentArray=[1,2,......
  • 将新对象添加到特定现有数组名称内,并使用索引值进行保存
    你可以使用JavaScript的数组方法来实现这个功能。以下是一个示例代码:letarray=[{id:1,name:'John'},{id:2,name:'Jane'},{id:3,name:'Jack'}];letnewObject={id:4,name:'Jill'};array[array.length]=newObject;c......
  • 一维数组的使用和存储
    数组下标C语言中规定数组是有下标的,从0开始,假设数组有n个元素,则最后一个元素的下标为n-1。下标相当于数组元素的编号。在C语言中数组的访问提供了一个操作符[],叫作下标引用操作符。数组元素的打印与输入#include<stdio.h>intmain(){intarr[10]={1,2,3,4,5,6......
  • 一维数组
    数组一组相同类型元素的集合。数组中存放的是一个或多个数据,数据类型相同。数组的创建//typearr_name[常量值]存放在数组的值称为数组的元素,创建时可指定数组的大小和元素类型。type指定的是元素类型,可以是char、short、int等,也可以是自定义的类型;arr_name指的是数组的......
  • 使用 ...new Set 在 filtred 数组中添加计数重复值
    你可以使用newSet和filter方法来计算数组中重复值的数量。以下是一个示例代码:constarr=[1,2,2,3,3,3,4,4,4,4];constfilteredArr=arr.filter((item,index,self)=>self.indexOf(item)===index);constset=newSet(filteredArr);constcount=fil......
  • Prop效验与Prop默认值用法及循环遍历数组
    Prop效验与使用在HBuilderX里面你把组件传过去,向之前的那样的写法是没有默认值的,写了才有值,否则为空,所以我们可以用另一种方法,写法如下虽然这样写了但是不是完全体的,我们可以给他定个默认值和类型,就像那个String一样,可以约束对象只能是这个的类型这样子另一个页面......
  • 581. 最短无序连续子数组
    581.最短无序连续子数组给你一个整数数组nums,你需要找出一个连续子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的最短子数组,并输出它的长度。示例1:输入:nums=[2,6,4,8,10,9,15]输出:5解释:你只需要对[6,4,8,10,9]......
  • Shell编程:一篇讲透数组全知识点
    文章目录数组数组参数的使用$*$@$#数组展开示例数组定义方法数组包含的数据类型获取数组长度读取特定索引的值数组遍历数组切片数组替换删除数组追加数组元素插入数组元素向函数传递数组参数数组在Bash脚本中,数组是一种存储多个元素的变量结构,可以使用不同的......
  • Java语言 数组定义与赋值 类型总结
    总结1.定义:数据类型[]数组名;2. 赋值(长度): 数组名=new数据类型[数组的长度];3.数据类型[]数组名=new数据类型[数组的长度]4.赋值(初始化)(第四点详细的看下面具体分析)   数据类型[]数组名=new数据类型[数组的长度]{元素1,元素2......}     ......
  • 数组更加深入的学习
    1.浅了解java数组原理可以形象的认为java中有“栈”和“堆”这两个东西,栈用于存放声明的数组,而堆则用于存放数组的赋值刚声明完的数组没有任何作用,必须要对其赋值才有意义2.数组的三种初始化静态初始化:将数组的值在声明时提前写好并且值固定不变动态初始化:声明并创建完数组......