2395. 和相等的子数组(详解+代码)

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

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

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/find-subarrays-with-equal-sum

题目给出的三个例子 

 

 

这两个子数组起始位置的下标必须 不相同 

 那我们怎么用代码实现呢??

 注意题中的一句话: 子数组 是一个数组中一段连续非空的元素组成的序列。

                                   这两个子数组起始位置的下标必须 不相同  (所以j = i + 1)

重点是连续的,从这里入手

 我们利用两个循环

第一组(第一个数和第二个数)相加和 和 后面一组一组比较

然后第二组(第二个数和第三个数)………

画个图

 

 代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
char findSubarrays(int nums[], int num)
{
	int i = 0;
	for (i = 0; i < num; i++)
	{
		int j = 0;
		for (j = i + 1; j < num - 1; j++)
		{
			if ((nums[i] + nums[i + 1]) == (nums[j] + nums[j + 1]))
			{
				return true;
			}
		}
	}
	return false;
}

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年4月5日
下一篇 2023年4月5日

相关推荐