C/C++---------------LeetCode第2824. 统计和小于目标的下标对数目
统计和小于目标的下表对数目
- 题目及要求
- 暴力枚举
- 双指针
- 在main内使用
题目及要求
给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target ,请你返回满足 0 <= i < j < n 且 nums[i] + nums[j] < target 的下标对 (i, j) 的数目。
示例 1:
输入:nums = [-1,1,2,3,1], target = 2
输出:3
解释:总共有 3 个下标对满足题目描述:
- (0, 1) ,0 < 1 且 nums[0] + nums[1] = 0 < target
- (0, 2) ,0 < 2 且 nums[0] + nums[2] = 1 < target
- (0, 4) ,0 < 4 且 nums[0] + nums[4] = 0 < target
注意 (0, 3) 不计入答案因为 nums[0] + nums[3] 不是严格小于 target 。
示例 2:
输入:nums = [-6,2,5,-2,-7,-1,3], target = -2
输出:10
解释:总共有 10 个下标对满足题目描述:
- (0, 1) ,0 < 1 且 nums[0] + nums[1] = -4 < target
- (0, 3) ,0 < 3 且 nums[0] + nums[3] = -8 < target
- (0, 4) ,0 < 4 且 nums[0] + nums[4] = -13 < target
- (0, 5) ,0 < 5 且 nums[0] + nums[5] = -7 < target
- (0, 6) ,0 < 6 且 nums[0] + nums[6] = -3 < target
- (1, 4) ,1 < 4 且 nums[1] + nums[4] = -5 < target
- (3, 4) ,3 < 4 且 nums[3] + nums[4] = -9 < target
- (3, 5) ,3 < 5 且 nums[3] + nums[5] = -3 < target
- (4, 5) ,4 < 5 且 nums[4] + nums[5] = -8 < target
- (4, 6) ,4 < 6 且 nums[4] + nums[6] = -4 < target
提示:
1 <= nums.length == n <= 50
-50 <= nums[i], target <= 50
暴力枚举
思路:定义ans用于记录数对,双循环逐个去查找,如果和小于目标则累加ans
class Solution {
public:int countPairs(vector<int>& nums, int target) {int n=nums.size();int ans=0;for(int i=0;i<n;++i){for(int j=i+1;j<n;++j){if(nums[i]+nums[j]<target)++ans;}}return ans;}
};
双指针
思路:先排序,然后定义两个指针分别指向头和尾,如果当前数字小于目标值则代表右指针到左指针之间的数字对都满足条件,全部加到ans内,最后不断移动指针完成遍历最后返回ans
class Solution {
public:int countPairs(vector<int>& nums, int target) {sort(nums.begin(), nums.end()); // 对数组进行排序int n = nums.size(); // 数组的大小int ans = 0; // 记录满足条件的数字对数量int i = 0, j = n - 1; // 定义两个指针,i指向开头,j指向末尾while (i < j) { // 当左指针小于右指针时,进行循环if (nums[i] + nums[j] >= target) { // 如果当前数字对之和大于等于目标值j--; // 右指针向左移动一位} else { // 如果当前数字对之和小于目标值ans += j - i; // 将右指针和左指针之间的数字对数量累加到答案中i++; // 左指针向右移动一位}}return ans; // 返回满足条件的数字对数量}
};
在main内使用
int main() {vector<int> nums = {1, 3, 4, 6, 8};int target = 7;int ans = 0;sort(nums.begin(), nums.end());ans = countPairs(nums, target);cout << "数字对之和至少为 " << target << " 的数量为: " << ans << endl;return 0;
}
相关文章:
C/C++---------------LeetCode第2824. 统计和小于目标的下标对数目
统计和小于目标的下表对数目 题目及要求暴力枚举双指针在main内使用 题目及要求 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target ,请你返回满足 0 < i < j < n 且 nums[i] nums[j] < target 的下标对 (i, j) 的数目。 示例 1&…...
【深度学习】因果推断与机器学习
2023年初是人工智能爆发的里程碑式的重要阶段,以OpenAI研发的GPT为代表的大模型大行其道,NLP领域的ChatGPT模型火爆一时,引发了全民热议。而最新更新的GPT-4更是实现了大型多模态模型的飞跃式提升,它能够同时接受图像和文本的输入…...
HTTPS攻击怎么防御?
HTTPS 简介 超文本传输安全协议( HTTPS )是一种通过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。 HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的…...
kubernetes|云原生|Deployment does not have minimum availability 的解决方案(资源隐藏的由来)
前言: 最近在部署prometheus的过程中遇到的这个问题,感觉比较的经典,有必要记录一下。 现象是部署prometheus主服务的时候,看不到pod,只能看到deployment,由于慌乱,一度以为是集群有毛病了&am…...
2023.11.22 IDEA Spring Boot 项目热部署
目录 引言 操作步骤 1. 在 pom.xml 中添加热部署框架支持 2. Setting 开启项目自动编译 3. 以后创建的新项目进行同步配置 4. 重复 配置 步骤2 的内容 5. 开启运行中的热部署 引言 Spring Boot 的热部署是一种在项目正在运行的时候修改代码,却不需要重新启动…...
CentOS rpm安装Nginx和配置
CentOS rpm安装Nginx和配置 官方下载地址: http://nginx.org/en/download.html 介绍 Nginx(“engine x”)是一款由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 rpm包安装 #安装nginx,…...
【pandas】数据透视表【pivot_table】
pivot_table pandas的pivot_table函数是一个非常有用的工具,用于创建一个数据透视表,这是一种用于数据总结和分析的表格形式。 以下是pivot_table的基本语法: pandas.pivot_table(data, valuesNone, indexNone, columnsNone, aggfuncmean,…...
ubuntu22.04中ros2 安装rosbridge
ros2 启动rosbridge: 要启动ROS2中的rosbridge,需要先安装ROS2的rosbridge_suite软件包。使用以下命令安装: 更新过可忽略 sudo apt-get update安装命令 sudo apt-get install ros--rosbridge-suite 注意: 将替换为正在使用的R…...
不单一的错误!如何修复Windows 10上“未安装音频输出设备”的错误
许多Windows 10用户,尤其是那些使用HP或Dell笔记本电脑和PC的用户,都会遇到一个错误,上面写着“未安装音频输出设备”。这意味着你无法收听计算机上的任何声音,这让你很难放松,也很难完成工作。 错误通常会在系统托盘中的音频控制旁边显示一个红十字符号。 在这篇文章中…...
winlogbeat采集windows日志
下载链接 https://www.elastic.co/cn/downloads/past-releases/winlogbeat-7-16-2 配置文件 # ---------------------------- Elasticsearch Output ---------------------------- output.elasticsearch:# Array of hosts to connect to.hosts: ["192.168.227.160:9200&…...
关于ElectronVue3中集成讯飞星火AI
前言:我的最终目的是为了在QQ上集成一个AI机器人,因此在这里先实现一个简单的集成 先上效果图 总体还是很简单的,我在调用websock获取回复内容的基础上另外集成了一个事件总线,让我们在调用获取消息的时候能够更加方便快捷 工具代…...
初识JVM(简单易懂),解开JVM神秘的面纱
目录 一、什么是JVM(Java虚拟机)? 二、JVM的功能 三、JVM的功能-即时编译 四、常见的JVM 五、JVM的组成 五、JVM的工作流程 参考资料 一、什么是JVM(Java虚拟机)? 在Java的世界里,Java虚…...
Open3D (C++) 计算两点云之间的最小距离
目录 一、 算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、 算法原理 Open3D中ComputePointCloudDistance函数提供了计算从源点云到目标点云的距离的方法,计算点云的距离。也…...
51单片机演奏兰亭序
使用开发板为普中51-实验板 普中-2 时钟频率:11.001081MHZ 演示视频: 【51单片机演奏兰亭序】 https://www.bilibili.com/video/BV12G411D7uK/?share_sourcecopy_web&vd_source0f48f7cc0fef720b95e067122ac83437 源码如下: 数组较大&a…...
计算机编程零基础编程学什么语言,中文编程工具构件简介软件下载
计算机编程零基础编程学什么语言,中文编程工具构件简介软件下载 给大家分享一款中文编程工具,零基础轻松学编程,不需英语基础,编程工具可下载。 这款工具不但可以连接部分硬件,而且可以开发大型的软件,象如…...
zookeeper单机版的搭建
一 zookeeper的搭建 1.1 上传zkjar包 1.2 搭建配置 1.解压压缩包 [rootlocalhost export]# tar -zxvf zookeeper-3.7.0-bin.tar.gz 2.创建data文件夹 [rootlocalhost export]# cd apache-zookeeper-3.7.0-bin/ [rootlocalhost apache-zookeeper-3.7.0-bin]# ls bin conf…...
roseha for windows 11+oracle 11g部署过程
文章目录 一、环境准备关闭防火墙配置hosts共享存储准备 二、部署步骤1.主机A、B安装数据库软件2.主机A进行数据库实例创建3.主机B创建数据库4.安装配置roseha软件 一、环境准备 windows server 2019 oracle 11.2.0.3 EE roseha for windows 11 5个IP地址:2心跳、3…...
机器学习与因果推断的高级实践 | 数学建模
文章目录 因果推断因果推断的前世今生(1)潜在结果框架(Potential Outcome Framework)(2)结构因果模型(Structual Causal Model,SCM) 身处人工智能爆发式增长时代的机器学…...
go语言实现高性能自定义ip管理模块(ip黑名单)
ip黑名单设计 对于IPV4而言,理论上有256^4个,也就是约42亿个。我想了好久,也查了挺多资料,但是,确实没有通用现成的解决方案。 PS:以下方案的讨论,适用于对于IP管理不那么严苛的情况。当然也可…...
检索增强生成架构详解【RAG】
生成式AI技术很强大,但它们受到知识的限制。 虽然像 ChatGPT 这样的LLM可以执行许多任务,但每个LLM的基线知识都存在基于其训练数据的差距。 如果你要求LLM写一些关于最近趋势或事件的文章,LLM不会知道你在说什么,而且回答最好是混…...
2025届学术党必备的五大AI辅助论文神器实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在当下,人工智能生成内容越来越普及,好多用户面临着内容会被AI检测工…...
Prompt Engineering实战:如何用ChatGPT API构建高效提示词模板(附LangChain代码示例)
Prompt Engineering实战:用ChatGPT API构建高效提示词模板 在AI应用开发领域,Prompt Engineering已经从简单的聊天技巧演变为一门系统的工程学科。随着大模型API的普及,如何将零散的提示词转化为可复用的工程组件,成为开发者提升效…...
Infra岗位技术栈大揭秘:收藏这份学习路径,成为大模型高手!
本文整理了Infra岗位招聘中常见的技术栈,涵盖编程基础、Transformer算法、分布式训练、推理优化、系统底层等多个方面。内容涉及PyTorch、C、CUDA、并行处理、MoE、量化部署、高性能网络通信、GPU集群调度等关键技术。对于想要在大模型领域深入发展的程序员和小白&a…...
别再死记硬背了!用MATLAB Fuzzy Logic Toolbox做智能控制,这10个函数你得这么用
别再死记硬背了!用MATLAB Fuzzy Logic Toolbox做智能控制,这10个函数你得这么用 刚接触MATLAB模糊控制时,面对工具箱里密密麻麻的函数列表,很多人第一反应就是翻开手册逐条背诵。但两周后你会发现,那些死记硬背的参数早…...
3步精准配置:解锁NVIDIA驱动隐藏性能层
3步精准配置:解锁NVIDIA驱动隐藏性能层 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 显卡性能调优工具NVIDIA Profile Inspector为技术爱好者提供了深度访问NVIDIA驱动内部数据库的能力&a…...
Harepacker-resurrected终极指南:深度解析MapleStory游戏资源编辑全流程
Harepacker-resurrected终极指南:深度解析MapleStory游戏资源编辑全流程 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected Harepac…...
用C++手把手实现声波方程交错网格有限差分模拟(附完整代码与避坑指南)
用C实现声波方程交错网格有限差分模拟:从理论到代码的工程实践 在计算物理和地球物理领域,数值模拟是理解复杂波动现象的重要工具。当我们阅读一篇理论推导严密的论文后,如何将这些数学公式转化为实际可运行的代码,往往是研究者面…...
从一次PLC通讯故障排查,复盘Modbus主从机状态机那些‘坑’
从一次PLC通讯故障排查,复盘Modbus主从机状态机那些‘坑’ 去年夏天,某自动化产线的PLC控制系统突然出现间歇性通讯中断,导致生产线频繁停机。作为负责该项目的工程师,我花了整整三天时间才最终锁定问题根源——一个隐藏在Modbus…...
STM32芯片‘身份证’读取指南:巧用ST-LINK Utility查看FLASH、芯片ID与版本信息
STM32芯片深度诊断:用ST-LINK Utility解锁硬件信息与固件分析 当一块来历不明的STM32开发板落到你手中,或者遇到一台"锁死"的设备需要修复时,如何快速获取芯片的关键信息?ST-LINK Utility这个看似简单的工具,…...
如何快速掌握ModTheSpire:杀戮尖塔模组加载器的终极配置指南
如何快速掌握ModTheSpire:杀戮尖塔模组加载器的终极配置指南 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire 你是否厌倦了《杀戮尖塔》原版游戏内容?想要体验更…...
