【Leetcode 每日一题】3392. 统计符合条件长度为 3 的子数组数目
问题背景
给你一个整数数组 n u m s nums nums,请你返回长度为 3 3 3 的 子数组,满足第一个数和第三个数的和恰好为第二个数的一半。
子数组 指的是一个数组中连续 非空 的元素序列。
数据约束
- 3 ≤ n u m s . l e n g t h ≤ 100 3 \le nums.length \le 100 3≤nums.length≤100
- − 100 ≤ n u m s [ i ] ≤ 100 -100 \le nums[i] \le 100 −100≤nums[i]≤100
解题过程
遍历已经是最简单的做法了,需要注意的是除法会发生向下取整,将除法转化为乘法。
由于数据范围非常小,不必考虑溢出的问题。
具体实现
class Solution {public int countSubarrays(int[] nums) {int res = 0;for (int i = 2; i < nums.length; i++) {if ((nums[i] + nums[i - 2]) * 2 == nums[i - 1]) {res++;}}return res;}
}