Leetcode18-算术三元组的数目(2367)

这篇具有很好参考价值的文章主要介绍了Leetcode18-算术三元组的数目(2367)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、题目

给你一个下标从 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 严格 递增。

2、解

对nums进行遍历,每个三元组即为{num[i]. nums[i] + diff, nums[i] + 2*diff}
寻找其是否存在每个元素对应的三元组中的后两个元素, 如果存在结果+1。

    int arithmeticTriplets(vector<int> &nums, int diff)
    {
        int result = 0;
        for(int i = 0; i < nums.size(); i++){
            vector<int>::iterator mid = find((nums.begin() + i), nums.end(), nums[i] + diff);
            vector<int>::iterator last = find((nums.begin() + i + 1), nums.end(), nums[i] + 2*diff);
            if(mid != nums.end() && last != nums.end()){
                result++;
            }
        }
        return result;
    }

Leetcode18-算术三元组的数目(2367),# LeetCode,算法,c++,哈希算法
也可以先将nums通过哈希集合存储后进行查找文章来源地址https://www.toymoban.com/news/detail-787166.html

    int arithmeticTriplets(vector<int>& nums, int diff) {
        unordered_set<int> hashSet;
        for (int x : nums) {
            hashSet.emplace(x);
        }
        int ans = 0;
        for (int x : nums) {
            if (hashSet.count(x + diff) && hashSet.count(x + 2 * diff)) {
                ans++;
            }
        }
        return ans;
    }

到了这里,关于Leetcode18-算术三元组的数目(2367)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 考研算法35天:三元组的最小距离 【双指针,滑动窗口,多路归并】

    多路归并;多路归并算法从理论到应用(易懂)_留恋单行路的博客-CSDN博客 多路归并就是将多个已经归并排序排好序的数组再进行排序(不一定是通过归并排序)。 这道题就是一般做法是先通过排序将三个数组排好然后再进行三指针求最小。但是我们仔细考虑一下,如果我们先

    2024年02月12日
    浏览(35)
  • leetcode2719. 统计整数数目

    Problem: 2719. 统计整数数目 给你两个数字字符串 num1 和 num2 ,以及两个整数 max_sum 和 min_sum 。如果一个整数 x 满足以下条件,我们称它是一个好整数: num1 = x = num2 min_sum = digit_sum(x) = max_sum. 请你返回好整数的数目。答案可能很大,请返回答案对 109 + 7 取余后的结果。 注意,d

    2024年01月18日
    浏览(51)
  • leetcode:递增的三元子序列

    题解部分转自leetcode:Xzz medium 给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。 如果存在这样的三元组下标 (i, j, k) 且满足 i j k ,使得 nums[i] nums[j] nums[k] ,返回 true ;否则,返回 false 。 示例 1: 示例 2: 示例 3: 提示: 1 = nums.length = 5 * 105 -231 = nu

    2024年02月13日
    浏览(33)
  • Leetcode—2678.老人的数目【简单】

    之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

    2024年02月08日
    浏览(32)
  • LeetCode 2744.最大字符串配对数目

    给你一个下标从 0 开始的数组 words ,数组中包含 互不相同 的字符串。 如果字符串 words[i] 与字符串 words[j] 满足以下条件,我们称它们可以匹配: 字符串 words[i] 等于 words[j] 的反转字符串。 0 = i j words.length 请你返回数组 words 中的 最大 匹配数目。 注意,每个字符串最多匹配

    2024年02月21日
    浏览(39)
  • 【Leetcode】2744. 最大字符串配对数目

    2744. 最大字符串配对数目 给你一个下标从 0 开始的数组 words ,数组中包含 互不相同 的字符串。 如果字符串 words[i] 与字符串 words[j] 满足以下条件,我们称它们可以匹配: 字符串 words[i] 等于 words[j] 的反转字符串。 0 = i j words.length 请你返回数组 words 中的 最大 匹配数目。 注

    2024年01月20日
    浏览(39)
  • LeetCode 2465. 不同的平均值数目

    力扣题目链接:https://leetcode.cn/problems/number-of-distinct-averages/ 给你一个下标从 0  开始长度为 偶数  的整数数组  nums  。 只要  nums 不是  空数组,你就重复执行以下步骤: 找到  nums  中的最小值,并删除它。 找到  nums  中的最大值,并删除它。 计算删除两数的平均值。

    2024年02月07日
    浏览(36)
  • LeetCode.每日一题 2427. 公因子的数目

      Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接       我会一直往里填充内容哒! 🌈LeetCode专栏:专栏链接       目前在刷初级算法的LeetBook 。若每日一题当中有力所能

    2023年04月17日
    浏览(31)
  • LeetCode 2511. 最多可以摧毁的敌人城堡数目

    力扣题目链接:https://leetcode.cn/problems/maximum-enemy-forts-that-can-be-captured/ 给你一个长度为 n  ,下标从 0  开始的整数数组  forts  ,表示一些城堡。 forts[i] 可以是  -1  , 0  或者  1  ,其中: -1  表示第  i  个位置 没有  城堡。 0  表示第  i  个位置有一个 敌人  的城堡。

    2024年02月10日
    浏览(43)
  • LeetCode 2744.最大字符串配对数目:哈希表

    力扣题目链接:https://leetcode.cn/problems/find-maximum-number-of-string-pairs/ 给你一个下标从 0  开始的数组  words  ,数组中包含 互不相同  的字符串。 如果字符串  words[i]  与字符串 words[j]  满足以下条件,我们称它们可以匹配: 字符串  words[i]  等于  words[j]  的反转字符串。 0

    2024年01月22日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包