leetcode2367算术三元组的数目

  1. 题目描述
  2. 示例
  3. 实现逻辑
  4. 联系作者
    1. 微信公众号
    2. QQ群

题目描述

给你一个下标从 0 开始、严格递增 的整数数组 nums 和一个正整数 diff 。如果满足下述全部条件,则三元组 (i, j, k) 就是一个 算术三元组 :

  • i < j < k ,
  • nums[j] - nums[i] == diff 且
  • nums[k] - nums[j] == diff
    返回不同 算术三元组 的数目。

示例

输入:nums = [0,1,4,6,7,10], diff = 3
输出:2
解释:
(1, 2, 4) 是算术三元组:7 - 4 == 3 且 4 - 1 == 3 。
(2, 4, 5) 是算术三元组:10 - 7 == 3 且 7 - 4 == 3 。

实现逻辑

用Set存下数组中的每个元素,然后依次遍历,看nums[i]+diff 及nums[i]+diff+diff是否在set中存在即可。

import java.util.HashSet;
import java.util.Set;

public class Solution2367 {
    public static int arithmeticTriplets(int[] nums, int diff) {
        Set set = new HashSet();
        for(int i=0; i<nums.length; i++){
            set.add(nums[i]);
        }
        int result = 0;
        for(int i=0; i<nums.length; i++){
            if(set.contains(nums[i]+diff) && set.contains(nums[i]+diff+diff)){
                result++;
            }
        }
        return result;
    }

    public static void main(String[] args) {
        int nums[]= new int[]{4,5,6,7,8,9};
        int result = arithmeticTriplets(nums,2);
        System.out.println(result);
    }
}

联系作者

微信公众号

xiaomingxiaola
(BossLiu)

QQ群

58726094


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 384276224@qq.com

×

喜欢就点赞,疼爱就打赏

日记本 网文世界