文章目录

  • 1. 题目
  • 2. 解题

1. 题目

如果一个数列由至少两个元素组成,且每两个连续元素之间的差值都相同,那么这个序列就是 等差数列 。更正式地,数列 s 是等差数列,只需要满足:对于每个有效的 i , s[i+1] - s[i] == s[1] - s[0] 都成立。

例如,下面这些都是 等差数列 :

1, 3, 5, 7, 9
7, 7, 7, 7
3, -1, -5, -9

下面的数列 不是等差数列 :

1, 1, 2, 5, 7

给你一个由 n 个整数组成的数组 nums,和两个由 m 个整数组成的数组 l 和 r,后两个数组表示 m 组范围查询,其中第 i 个查询对应范围 [l[i], r[i]] 。所有数组的下标都是 从 0 开始 的。

返回 boolean 元素构成的答案列表 answer 。如果子数组 nums[l[i]], nums[l[i]+1], ... , nums[r[i]] 可以 重新排列 形成 等差数列 ,answer[i] 的值就是 true;否则answer[i] 的值就是 false 。

示例 1:
输入:nums = [4,6,5,9,3,7], l = [0,0,2], r = [2,3,5]
输出:[true,false,true]
解释:
第 0 个查询,对应子数组 [4,6,5] 。可以重新排列为等差数列 [6,5,4] 。
第 1 个查询,对应子数组 [4,6,5,9] 。无法重新排列形成等差数列。
第 2 个查询,对应子数组 [5,9,3,7] 。可以重新排列为等差数列 [3,5,7,9] 。示例 2:
输入:nums = [-12,-9,-3,-12,-6,15,20,-25,-20,-15,-10],
l = [0,1,6,4,8,7], r = [4,4,9,7,9,10]
输出:[false,true,false,false,true,true]提示:
n == nums.length
m == l.length
m == r.length
2 <= n <= 500
1 <= m <= 500
0 <= l[i] < r[i] < n
-105 <= nums[i] <= 10^5

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/arithmetic-subarrays
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 取出来,排序,检查差是否都相等
class Solution {public:vector<bool> checkArithmeticSubarrays(vector<int>& nums, vector<int>& l, vector<int>& r) {vector<bool> ans(l.size(), false);for(int i = 0; i < l.size(); ++i){int L = l[i], R = r[i];vector<int> arr(nums.begin()+L, nums.begin()+R+1);sort(arr.begin(), arr.end());int d = arr[1] - arr[0];bool flag = true;for(int j = 1; j < arr.size(); ++j){if(arr[j] - arr[j-1] != d){flag = false;break;}}if(flag)ans[i] = true;}return ans;}
};

232 ms 25.4 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1630. 等差子数组相关推荐

  1. 【1630. 等差子数组】

    来源:力扣(LeetCode) 描述: 如果一个数列由至少两个元素组成,且每两个连续元素之间的差值都相同,那么这个序列就是 等差数列 .更正式地,数列 s 是等差数列,只需要满足:对于每个有效的 i ...

  2. 子数组(Subarray)

    Subarray 一.前缀和 1800.最大升序子数组和 525.连续数组 523.连续的子数组和 974.和可被K整除的子数组 ★560.和为K的子数组 1524.和为奇数的子数组数目 1695.删 ...

  3. LeetCode 581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)

    581. 最短无序连续子数组 581. Shortest Unsorted Continuous Subarray 题目描述 给定一个整型数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序 ...

  4. LeetCode 978. 最长湍流子数组(DP)

    1. 题目 当 A 的子数组 A[i], A[i+1], ..., A[j] 满足下列条件时,我们称其为湍流子数组: 若 i <= k < j,当 k 为奇数时, A[k] > A[ ...

  5. leetcode —— 209. 长度最小的子数组

    给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, num ...

  6. leetcode —— 523. 连续的子数组和

    给定一个包含非负数的数组和一个目标整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数. 示例 1: 输入: [23, ...

  7. Leetcode 930:和相同的二元子数组

    1.在由若干 0 和 1 组成的数组 A 中,有多少个和为 S 的非空子数组. 输入:A = [1,0,1,0,1], S = 2 输出:4 解释: 如下面所示,有 4 个满足题目要求的子数组: [1 ...

  8. 【LeetCode】【HOT】581. 最短无序连续子数组

    [LeetCode][HOT]581. 最短无序连续子数组 文章目录 [LeetCode][HOT]581. 最短无序连续子数组 package hot;public class Solution58 ...

  9. LeetCode 长度最小的子数组

    给定一个含有 n 个正整数的数组和一个正整数 target .找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr ...

最新文章

  1. 斩草除根-修复被剪断的鼠标引线
  2. 不通过寄存器确定数据的长度 + 案例
  3. C语言之连接Mysql数据篇
  4. php被替代,php 替代被弃用函数的
  5. python不能卸载原因_linux上python卸载不了是什么原因?
  6. java windows编程,以编程方式控制Windows媒体播放器,最好是从Java
  7. C#开发笔记之13-如何用C#分隔字符串并返回字符串数组?
  8. 如何从外网向内网传东西_鱼缸内出现气泡还会不断缓缓升起,是什么东西,如何处理和解决?...
  9. 探秘手淘高可用平台(三)——热修复和开发流程
  10. sql优化-项目实战
  11. Lucene的分析过程
  12. 在本地Windows系统下搭建Apollo配置中心
  13. ar机房查看html5,探秘5G“智慧机房”:5G+AR技术实现机房智能巡检
  14. 损失函数、代价函数、目标函数、适应度函数的区别与联系
  15. 2021宇哥八套卷总结—第三套试卷分析
  16. Excel求和公式的几种用法
  17. Android系统Audio框架介绍
  18. aws的eks平滑删除work节点实现降配
  19. 微信小程序 在tabBar某一项的右上角添加文本(购物车数量)
  20. IBM WebsPhere Jndi数据源

热门文章

  1. python 数字转化excel行列_Python实现excel的列名称转数字、26进制(A-Z)与10进制互相转换...
  2. webgl获取鼠标形状_三模无线搭配对称手型设计,游戏致胜利器,ROG烈刃2无线鼠标...
  3. php公钥模数,php – 如何从公共指数和RSA模数生成DER / PEM证书?
  4. GNU C 、ANSI C、标准C、标准c++区别和联系
  5. 使用ReflectionToStringBuilder实现toString方法
  6. sort和qsort函数
  7. combobox之下拉宽度自适应
  8. BZOJ 2822: [AHOI2012]树屋阶梯 [Catalan数 高精度]
  9. 【转载】世界各地对BI的应用状况
  10. 暴力字符匹配算法的C语言实现