首页 > 其他分享 >算术三元组的数目

算术三元组的数目

时间:2023-04-01 10:12:58浏览次数:33  
标签:nums 算术 len 三元组 int diff 数目

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

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

示例 1:

输入: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 。
示例 2:

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


提示:

  • 3 <= nums.length <= 200
  • 0 <= nums[i] <= 200
  • 1 <= diff <= 50
  • nums 严格 递增

题解

点击查看代码
class Solution {
    public int arithmeticTriplets(int[] nums, int diff) {
        int len = nums.length,a =0;
        for (int i = 0; i < len; i++) {
		//二分查找,检索元素是否存在
            int index1 = Arrays.binarySearch(nums,nums[i]+diff);
            if (index1 > 0) {
		//从检索元素的索引到结尾进行二分查找
                int index2 = Arrays.binarySearch(nums,index1,len,nums[i]+2*diff);
                if (index2 > 0) {
		    //记录算术三元组的数量
                    a++;
                }
            }
        }
        return a;
    }
}

标签:nums,算术,len,三元组,int,diff,数目
From: https://www.cnblogs.com/wuli-Zhang/p/17278146.html

相关文章

  • 0202 算术运算符
    隐式转换​ byte->short->int->long->float->double两种提升规则​ 1、取值范围小的和取值范围大的进行运算,小的会先提升为大的,再进行运算​ 2、byteshortchar三种类型的数据在运算时候。都会先提升成大的再进行运算,不论是否类型不同publicClassTeat{publicsta......
  • 递增三元组
    此题考查暴力,二分此题未AC用了两种方法解题dfsbinarySearchdfspackagelanqiao;importjava.util.Scanner;publicclassN172{staticint[][]m;......
  • 76.算术运算符
    算术运算符对大多数运算符来说,布尔类型的运算对象将被提升为int类型。当作用于算术类型的对象时,算术运算符+、一、*、/的含义分别是加法、减法、乘法和除法。整数相除结果还......
  • java中应用Stack进行算术运算
    java.util.stack,继承自VectorFILO,适合带有小括号的算术运算importjava.util.Stack;/***利用栈,进行四则运算的类*用两个栈来实现算符优先,一个栈用来保存需......
  • 递增三元组
    递增三元组[蓝桥杯2018省B]递增三元组题目描述给定三个整数数组\(A=[A_1,A_2,\cdots,A_N]\),\(B=[B_1,B_2,\cdots,B_N]\),\(C=[C_1,C_2,\cdots,C_N]\)。......
  • 构成回文串的数目
    #include<iostream>#include<map>#include<string>usingnamespacestd;constintN=1e5+10;typedeflonglongll;intn;map<int,int>mp;intsum[N];llans;......
  • 6352.美丽子集的数目-337
    美丽子集的数目给你一个由正整数组成的数组nums和一个正整数k。如果nums的子集中,任意两个整数的绝对差均不等于k,则认为该子数组是一个美丽子集。返回数组n......
  • 算术转换
    一、题目:求a,b,c的值ntmain(){inta,b,c;a=5;c=++a;//c=6,a=6b=++c,c++,++a,a++;//c=8,a=8,b=7b+=a+++c;//a=9,b=23,注意先使用后++printf("%a=......
  • 6317.统计美丽子数组的数目-336周赛
    统计美丽子数组的数目给你一个下标从0 开始的整数数组nums 。每次操作中,你可以:选择两个满足 0<=i,j<nums.length 的不同下标 i 和 j 。选择一个非负整数......
  • 基础算术运算符
    理解:不同数据类型的数进行运算,结果为容量高的。自增,自减,属于一元运算符。自增,自减,例如intb=a++intb=++a;当不进行赋值操作时。a都是自身++,也就是a=a+1操作。当进行......