【LeetCode每日一题:2367. 算术三元组的数目:暴力模拟+Hash表】

news/2024/5/22 10:25:48/文章来源:https://blog.csdn.net/Coder_ljw/article/details/129875814

在这里插入图片描述

🍎作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🍎座右铭:人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯🎯

在这里插入图片描述

目录

    • 题目链接
    • 题目描述
    • 求解思路&实现代码&运行结果
      • 暴力模拟
        • 求解思路
        • 实现代码
        • 运行结果
      • Hash表
        • 求解思路
        • 实现代码
        • 运行结果
    • 共勉

在这里插入图片描述

题目链接

2367. 算术三元组的数目

题目描述

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

求解思路&实现代码&运行结果

暴力模拟

求解思路

  1. 根据题目的要求直接通过三层循环模拟即可。
  2. 时间复杂度O(n^3),需要通过三层循环进行暴力模拟。
  3. 空间复杂度(1),只需要常数的额外空间。

实现代码

class Solution {public int arithmeticTriplets(int[] nums, int diff) {int cnt=0,n=nums.length;for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){for(int k=j+1;k<n;k++){if(nums[j] - nums[i] == diff && nums[k] - nums[j] == diff) cnt++;}}}return cnt;}
}

运行结果

在这里插入图片描述

Hash表

求解思路

  1. 对题目中给定的公式进行一个变形,nums[j] - nums[i] == diff 《=公式变形=》 nums[j] = nums[i] + diff ;nums[k] - nums[j] == diff 《=公式变形=》 nums[k] = nums[j] + diff 《=公式继续变形=》nums[k] = nums[j] + 2 *diff;
  2. 接下来我们可以从左向右遍历我们的数组中的元素,在遍历的过程中我们可以将元素放入到哈希表set中,然后枚举nums 中的每个元素 x(nums[i]),判断 nums[i]+diff(nums[j]), x+diff+diff (nums[k])是否在集合中,如果在集合中,对其进行计数。枚举结束后,返回答案。
  3. 时间复杂度O(n),只需要遍历枚举我们的num数组就可以。
  4. 空间复杂度O(n), 需要借助额外的集合空间。

实现代码

class Solution {public int arithmeticTriplets(int[] nums, int diff) {Set<Integer> set = new HashSet<Integer>();for (int x : nums) set.add(x);int ans = 0;for (int num : nums) {if (set.contains(num + diff) && set.contains(num + 2 * diff)) ans++;}return ans;}
}

运行结果

在这里插入图片描述

共勉

最后,我想送给大家一句一直激励我的座右铭,希望可以与大家共勉!
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_280008.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows下切换PHP-cli版本

概念&#xff1a; PHP-cli是PHP Command Line Interface的缩写&#xff0c;指的是PHP的命令行界面。它是PHP语言中的一种执行方式&#xff0c;可以在命令行下运行PHP程序&#xff0c;而不需要通过Web服务器或浏览器来执行。 PHP-cli可以用于很多场景&#xff0c;比如&#xf…

Spark—idea

ideal—Spark新建工程新建maven工程&#xff0c;添加scala添加依赖pom添加依赖并下载 spark-core重复步骤下载spark-sqlspark-hivespark-graphxmysql-connector-java安装完成新建SparkDemo的scala objectsc对象可能会出现报错&#xff0c;参考这位老哥的解决办法wordcount打架包…

快递的旅行日记 - 深度挖掘快递物流地图轨迹查询API 的使用场景

写在前面 全球化经济的不断发展使得快递业变得越来越重要&#xff0c;而快递物流地图轨迹查询 API 也因此应运而生。 该 API 可以帮助用户追踪物流信息&#xff0c;了解快递的运输状态&#xff0c;方便快递企业、个人用户以及电商平台等多方面的需求。 快递物流地图轨迹查询 …

Matlab进阶绘图第13期—带填充纹理的堆叠图

带填充纹理的堆叠图是通过在原始堆叠图的基础上添加不同的纹理得到的&#xff0c;可以很好地解决由于颜色区分不够而导致的对象识别困难问题。 由于Matlab中未收录提供填充纹理选项&#xff0c;因此需要大家自行设法解决。 本文使用hatchfill2工具&#xff08;Kesh Ikuma. Ma…

JVM 字符串常量池(StringTable)

String的基本特性 String&#xff1a;字符串&#xff0c;使用一对 “” 引起来表示String s1 "hello" ; // 字面量的定义方式String s2 new String("hello"); // new 对象的方式 String被声明为final的&#xff0c;不可被继承 String实现了…

【新股打新】北森控股:发行比例只有区区1%,这是要作妖的前奏?

一、公司简介 北森控股&#xff0c;成立于2002年&#xff0c;是国内领先的人力资源管理的高科技公司&#xff0c;旗下的一体化HR SaaS及人才管理平台 —— iTalentX&#xff0c;覆盖了企业招聘、入职、管理到离职的全生命周期的数字化管理&#xff0c;帮助企业快速提升人力资源…

玄子Share-BCSP助学手册之数据库开发(已优化)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NIr0tYNc-1680505151717)(./assets/XuanZiShare_QQ_3336392096.jpg)] 玄子Share-BCSP助学手册之数据库开发 前言&#xff1a; 此文为玄子&#xff0c;学习 BCSP 一二期后整理的文章&#xff0c;文中对…

Vivado中如何修改IP源文件

前一篇文章是通过改变JESD204B IP的设置&#xff0c;在Shared Logic里勾选in example design&#xff0c;来避免共用输入时钟的问题。那么还有没有别的办法呢&#xff1f;有没有更直接点的实现方式呢&#xff1f; 答案是肯定的&#xff1a;可以直接修改IP&#xff0c;将IBUFDS…

开心档之开发入门网-C++ 变量类型

C 变量类型 目录 C 变量类型 C 中的变量定义 C 中的变量声明 实例 实例 C 中的左值&#xff08;Lvalues&#xff09;和右值&#xff08;Rvalues&#xff09; 变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有指定的类型&#xff0c;类型决定了变量存储的大小…

合宙Air780E|ScreenStream|图传|LuatOS-SOC接口|学习(23):4G远程遥控小车(2)-图传设置及解析

目录 基础资料 原项目地址 实现功能&#xff1a; 前文&#xff1a; 图传设置及解析 概述 提示 软件亮点 操作步骤 4G小车控制前端相关代码 图传显示函数&#xff1a; 按钮及显示框 待解决问题&#xff1a;小车图传前端不能正常显示 基础资料 ​ 基于Air780E开发板&…

「Python 机器学习」Matplotlib 数据探索

Matplotlib 是一个 Python 的数据可视化库&#xff0c;它能够轻松创建各种类型的图表和图形&#xff1b;Matplotlib 可以在 Jupyter Notebooks、交互式应用程序和脚本中使用&#xff0c;并支持多种绘图样式和格式&#xff1b; Matplotlib 最初是为科学计算而设计的&#xff0c…

【观察】诺基亚贝尔品牌焕新传递新价值,以无线专网加速中国数字化进程

今年2月底&#xff0c;在西班牙巴塞罗那举行的2023年世界移动通信大会上&#xff0c;诺基亚宣布重塑企业战略和技术战略&#xff0c;同时推出全新企业品牌形象&#xff0c;这标志着诺基亚在长期战略转型之路上迈出了坚实的一步。而作为诺基亚在华独家运营实体&#xff0c;诺基亚…

pdf格式可以编辑吗?提供几个思路

PDF格式文件常常用于共享文档和保护文档内容&#xff0c;但是很多人都会遇到一个问题&#xff1a;PDF格式文件是否可编辑&#xff1f; 答案是肯定的&#xff0c;PDF格式文件是可以编辑的。虽然PDF格式文件的初衷是为了保护文档内容&#xff0c;但是现在很多软件已经支持PDF格式…

【OJ比赛日历】快周末了,不来一场比赛吗? #04.01-04.07 #14场

CompHub 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…&#xff09;比赛。本账号同时会推送最新的比赛消息&#xff0c;欢迎关注&#xff01;更多比赛信息见 CompHub主页 或 点击文末阅读原文以下信息仅供参考&#xff0c;以比赛官网为准目录2023-04-01&…

Android OKHttp源码解析

Https是Http协议加上下一层的SSL/TSL协议组成的&#xff0c;TSL是SSL的后继版本&#xff0c;差别很小&#xff0c;可以理解为一个东西。进行Https连接时&#xff0c;会先进行TSL的握手&#xff0c;完成证书认证操作&#xff0c;产生对称加密的公钥、加密套件等参数。之后就可以…

【人工智能】—局部搜索算法、爬山法、模拟退火、局部剪枝、遗传算法

Local search algorithms &#xff08;局部搜索算法&#xff09;局部搜索算法内存限制局部搜索算法示例&#xff1a;n-皇后爬山算法随机重启爬山模拟退火算法局部剪枝搜索遗传算法小结局部搜索算法 在某些规模太大的问题状态空间内&#xff0c;A*往往不够用 问题空间太大了无法…

InVEST模型

详情点击链接&#xff1a;invest模型 生态系统服务理论联系实践案例InVEST模型的开发历程、不同版本的差异及对数据需求InVEST所需数据的要求&#xff08;分辨率、格式、投影系统等&#xff09;、获取及标准化预处理InVEST运行常见问题及处理解决方法ArcGIS工具支撑InVEST模型…

PropertySourceLocator(SpringCloud中的配置操作)

又是美好的一天呀~ 个人博客地址&#xff1a; huanghong.top 往下看看~内容简介源码分析prepareContextapplyInitializersPropertySourceBootstrapConfiguration#initializelocateCollectionNacos示例insertPropertySourcesConfigurationPropertiespostProcessBeforeInitializa…

[python]浅谈Flask的SSTI漏洞

目录 基础知识 python类方法 内建函数 获取基类的几种方法 利用思路 概念简介 服务器端模板注入&#xff08;Server-Side Template Injection&#xff09; 类型判断 简单探测 实战练习 reference 基础知识 python类方法 __class__用来查看变量所属的类&#xff0c…

Android Framework—WMS

WMS的定义 它是framework层的窗口管理服务&#xff0c;职责是管理android系统中所有的window。其中包含了添加窗口、删除窗口、token管理、输入法管理、系统事件消息收集和分发、活动窗口管理&#xff08;FocusWindow&#xff09;、活动应用管理&#xff08;FocusApp&#xff…