当前位置: 首页 > news >正文

LeetCode 3132.找出与数组相加的整数 II:排序+3次尝试(nlog n)

【LetMeFly】3132.找出与数组相加的整数 II:排序+3次尝试(nlog n)

力扣题目链接:https://leetcode.cn/problems/find-the-integer-added-to-array-ii/

给你两个整数数组 nums1nums2

nums1 中移除两个元素,并且所有其他元素都与变量 x 所表示的整数相加。如果 x 为负数,则表现为元素值的减少。

执行上述操作后,nums1nums2 相等 。当两个数组中包含相同的整数,并且这些整数出现的频次相同时,两个数组 相等

返回能够实现数组相等的 最小 整数 x

 

示例 1:

输入:nums1 = [4,20,16,12,8], nums2 = [14,18,10]

输出:-2

解释:

移除 nums1 中下标为 [0,4] 的两个元素,并且每个元素与 -2 相加后,nums1 变为 [18,14,10] ,与 nums2 相等。

示例 2:

输入:nums1 = [3,5,5,3], nums2 = [7,7]

输出:2

解释:

移除 nums1 中下标为 [0,3] 的两个元素,并且每个元素与 2 相加后,nums1 变为 [7,7] ,与 nums2 相等。

 

提示:

  • 3 <= nums1.length <= 200
  • nums2.length == nums1.length - 2
  • 0 <= nums1[i], nums2[i] <= 1000
  • 测试用例以这样的方式生成:存在一个整数 xnums1 中的每个元素都与 x 相加后,再移除两个元素,nums1 可以与 nums2 相等。

解题方法:排序+3次尝试

分别对两个数组排序。因为一定有解,所以nums1中前3个元素至少有一个和nums2[0]对应。也就是说,可能的x最多有3种情况。对于每种情况,我们从大到小尝试,如果当前x可行,则返回。

怎么判定nums1删除两个元素后是否每个元素加上x后都和nums2对应呢?只需要两个指针分别指向两个数组中的元素。

在指针没有超出数组有效范围时:

  • n u m s 1 [ n 1 ] + x = = n u m s 2 [ n 2 ] nums1[n1] + x == nums2[n2] nums1[n1]+x==nums2[n2],则两个指针分别后移
  • 否则跳过nums1中的这个数:n1后移n2不动,“跳过次数”加一。(若跳过次数大于2则说明这个x不可行)

最终如果n2指到nums2的末尾,则说明这个x可行。

  • 时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)
  • 空间复杂度 O ( log ⁡ n ) O(\log n) O(logn)

AC代码

C++
class Solution {
private:bool isOk(vector<int>& nums1, vector<int>& nums2, int x) {int skip = 0;int n1 = 0, n2 = 0;while (n1 < nums1.size() && n2 < nums2.size()) {if (nums1[n1] + x == nums2[n2]) {n1++, n2++;}else {n1++, skip++;if (skip > 2) {return false;}}}return n2 == nums2.size();}
public:int minimumAddedInteger(vector<int>& nums1, vector<int>& nums2) {sort(nums1.begin(), nums1.end());sort(nums2.begin(), nums2.end());for (int i = 2; i >= 0; i--) {if (isOk(nums1, nums2, nums2[0] - nums1[i])) {return nums2[0] - nums1[i];}}return -1;  // Fake Return}
};

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/141072842

相关文章:

LeetCode 3132.找出与数组相加的整数 II:排序+3次尝试(nlog n)

【LetMeFly】3132.找出与数组相加的整数 II&#xff1a;排序3次尝试(nlog n) 力扣题目链接&#xff1a;https://leetcode.cn/problems/find-the-integer-added-to-array-ii/ 给你两个整数数组 nums1 和 nums2。 从 nums1 中移除两个元素&#xff0c;并且所有其他元素都与变量…...

微信小程序--26(全局配置-1)

一、全局配置文件 1.标志 app.json 2.配置项 pages 记录当前小程序所有页面的存放路径 window 全局配置小程序窗口配置 tabBar 设置小程序底部的tabBar效果 style 是否启用新版本的组将样式 3.window 导航栏区域 navigationBar …...

汽车4S店管理系统-计算机毕设Java|springboot实战项目

&#x1f34a;作者&#xff1a;计算机毕设残哥 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目、 源…...

bug的常见排查和分析思路以及相关的原因分类

作为开发人员&#xff0c;经常会收到来自用户和QA&#xff0c;领导反馈的各种问题。 为了快速问题&#xff0c;我们有时需要站在更高的角度&#xff0c;更全面的看待问题。才能更快锁定问题。 具体的bug还需要结合企业实际业务情况&#xff0c;相关的框架&#xff0c;依赖库&…...

Nature:7个提升科研产出的实用建议

我是娜姐 迪娜学姐 &#xff0c;一个SCI医学期刊编辑&#xff0c;探索用AI工具提效论文写作和发表。 一个值得思考的问题是&#xff1a;层出不穷的效率工具到底是提升还是降低了科研产出&#xff1f; 大学教授萨拉 (Sara) 描述了她典型的工作日场景&#xff1a;"…...

react-native从入门到实战系列教程-页面之间的跳转

路由的跳转,是app开发中需要处理的问题,一个页面不可能装下那么多的内容。在react-native中,我们使用的路由组件跟reactjs中还是有区别的,这里贴出官网的文档:https://reactnavigation.org/docs/navigating 实现效果 安装 按照官网的指导安装即可。代码实现 app.jsx中改造…...

HarmonyOS应用开发者高级认证(一)

1、依次点击A、B、C、D四个按钮&#xff0c;其中不会触发UI刷新的是&#xff1a; 答案&#xff1a; Button("C").onClick(() > {this.nameList[0].name "Jim"})分析&#xff1a;直接更新非一级数据不会触发UI刷新 2、如果要实现Row组件内的子元素均匀…...

【网络】套接字(socket)编程——UDP版

1.socket 1.1.什么是socket Socket 的中文翻译过来就是“套接字”。 套接字是什么&#xff0c;我们先来看看它的英文含义&#xff1a;插座。 Socket 就像一个电话插座&#xff0c;负责连通两端的电话&#xff0c;进行点对点通信&#xff0c;让电话可以进行通信&#xff0c;端…...

一篇文章让你彻底掌握 Shell

大家好&#xff0c;这里是 Lucifer三思而后行&#xff0c;专注于提升数据库运维效率。 文章目录 一篇文章让你彻底掌握 Shell简介什么是 shell什么是 shell 脚本Shell 环境指定脚本解释器 模式交互模式非交互模式 基本语法解释器注释echoprintfprintf 的转义符 变量变量命名原则…...

Java中的Collection集合:深入理解与应用

在Java中&#xff0c;Collection接口是Java集合框架&#xff08;Java Collections Framework&#xff09;的基石之一&#xff0c;它定义了一系列操作对象集合的方法&#xff0c;如添加、删除、遍历等。Collection接口是List、Set和Queue等具体集合类型的父接口&#xff0c;为Ja…...

Kubernetes-K8S

Kubernetes由于单词太长&#xff0c;省略掉中间8个字母简称为K8S。它介于应用服务和服务器之间。能够通过策略协调和管理多个服务&#xff0c;只需要一个YAML文件配置。定义应用的部署顺序等信息&#xff0c;自动部署应用到各个服务器&#xff0c;还可以自动扩容缩容。 架构原理…...

简化文本处理流程,通用文字识别助力提升信息采集效率

随着信息技术的发展、移动设备使用的普及和全球化的商业需求&#xff0c;非结构化数据转换为结构化数据的需求日益增长&#xff0c;数字化成为信息存储和管理的主流趋势。在此背景下&#xff0c;OCR技术应运而生&#xff0c;该技术可以将图像中文本信息转化为计算机等设备可以使…...

【网络】TCP协议通信的重要策略——滑动窗口,快重传,流量控制,拥塞控制,延时应答

目录 MSS值 滑动窗口 滑动窗口与重发机制 快重传机制 滑动窗口与流量控制 滑动窗口与拥塞控制 延时应答 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 相关文章 【网络】传输层TCP协议的报头和传输机制-CSDN博客 【网络】详解TCP协议通信时客户/服务端的状态-CSDN博…...

极狐GitLab CI/CD 如何构建镜像并推送到 azure 镜像仓库?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…...

Leetcode—1143. 最长公共子序列【中等】

2024每日刷题&#xff08;155&#xff09; Leetcode—1143. 最长公共子序列 实现代码 class Solution { public:int longestCommonSubsequence(string text1, string text2) {int m text1.length();int n text2.length();vector<vector<int>> dp(m 1, vector&…...

ZBrush笔刷介绍

根据使用的方法和效果&#xff0c;ZBrush的笔刷可以分类如下&#xff1a; 基本功能笔刷 这些笔刷用于常规的雕刻、移动和平滑操作。 纹理应用笔刷 一般需要自己额外购买的是这三种笔刷 Alpha Brushes&#xff1a;使用灰度图&#xff08;alpha&#xff09;来定义笔刷形状和纹…...

React+AntDesign做一个日历,展示节假日,节气,并且在某几个时间上添加活动备注

直接贴效果图&#x1f604; 首先日历是用的AntDesign提供的Calendar组件&#xff0c;这个组件还是蛮强大的&#xff0c;可以自定义头部时间下拉&#xff1b;渲染每个时间段&#xff0c;或者重置时间段内容&#xff0c;玩的空间是很大的 直接贴代码&#xff0c;结尾最后我会将…...

排序算法之梳排序

title: 梳排序 date: 2024-7-30 14:46:27 0800 categories: 排序算法 tags:排序算法梳排序 description: 梳排序&#xff08;Comb Sort&#xff09;是一种由弗拉基米尔多博舍维奇&#xff08;Wlodzimierz Dobosiewicz&#xff09;于1980年所发明的不稳定排序算法&#xff0c;并…...

ESP8266 创建TCP连接

TCP Client 使用WiFiClient类可以实现TCP Client 基本方法 连接Server&#xff0c;connect WiFiClient client; client.connect(host, port) 检测客户端是否存在数据流 client.available() 读取客户端的一个字符 client.read(); 检查连接状态 client.connected() 使用…...

OceanBase内存管理小窍门

本文来自OceanBase热心用户的实践分享。 本文主要是对OceanBase内存管理的实用技巧分享&#xff0c;而并非直接深入OceanBase的代码层面进行阐述。​​​​​​​ 阅读本文章你将了解&#xff1a; 重载运算符new 与malloc在返回值上区别&#xff1f;在ceph 双向链表新用法&am…...

Windows安全组件深度解析与优化:2025专业版系统性能调优完整指南

Windows安全组件深度解析与优化&#xff1a;2025专业版系统性能调优完整指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_m…...

GoFrame+Vue3后台管理框架的WebSocket即时通讯实战:架构设计与消息推送

在 GoFrame Vue3 后台管理框架的开发中&#xff0c;即时通讯&#xff08;IM&#xff09;是一个高频需求——从站内信到客服系统&#xff0c;从通知推送到协作消息&#xff0c;都离不开 WebSocket 长连接。 XYGo Admin 基于 gorilla/websocket 实现了一套完整的即时通讯体系&a…...

全栈AI智能体开发实战:基于LangGraph与Next.js的工程化模板解析

1. 项目概述&#xff1a;一个全栈AI智能体模板的诞生 最近在GitHub上看到一个挺有意思的项目&#xff0c;叫 vstorm-co/full-stack-ai-agent-template 。光看名字&#xff0c;你可能会觉得这又是一个“AI全栈”的缝合怪&#xff0c;或者是一个过度包装的概念。但作为一个在AI…...

Laravel RSS聚合器larafeed:现代化内容聚合后端解决方案

1. 项目概述&#xff1a;一个为Laravel打造的现代化RSS聚合器如果你正在用Laravel构建一个内容聚合平台、新闻阅读器&#xff0c;或者只是想为自己的个人博客添加一个“我最近在读什么”的订阅墙&#xff0c;那么你很可能需要处理RSS或Atom源。手动解析这些XML格式的源、处理缓…...

算力入门:从FLOPS到PUE全解析

算力入门:FLOPS、TFLOPS、EFLOPS、算力规模、能效比、PUE 全解 算力(计算能力)是衡量计算机系统性能的关键指标,尤其在科学计算、人工智能和大数据处理等领域至关重要。本指南将逐步解释FLOPS、TFLOPS、EFLOPS、算力规模、能效比和PUE这些核心概念,帮助您快速入门。所有内…...

Unity美术资源导入避坑指南:从‘2的N次方’到‘ASTC压缩’,搞懂这些让你的游戏包体瘦身50%

Unity移动端美术资源优化实战&#xff1a;从纹理规范到跨平台压缩策略 移动游戏开发中&#xff0c;美术资源往往占据包体大小的70%以上。上周团队刚把一个150MB的Demo压缩到89MB&#xff0c;关键就在于纹理资源的规范处理。不同GPU架构对纹理格式的解析差异&#xff0c;可能导致…...

别再只搜WOL教程了!华硕/微星主板BIOS里这两个隐藏选项没开,魔术包收到也白搭

华硕/微星主板WOL终极配置指南&#xff1a;破解BIOS隐藏选项的实战手册 深夜加班后想远程唤醒家里的台式机渲染视频&#xff0c;却发现魔术包石沉大海&#xff1f;你可能已经按照无数教程配置了网卡唤醒选项&#xff0c;却忽略了主板BIOS里那两个致命的隐藏开关。本文将用实验室…...

艾尔登法环黑夜君临修改器2026.5.11最新中文汉化版免费下载 转存后自动更新 (看到请立即转存 资源随时失效)

在《艾尔登法环》的庞大世界观下&#xff0c;一款名为《艾尔登法环&#xff1a;黑夜君临》&#xff08;ELDEN RING NIGHTREIGN&#xff09;的衍生作品于 2025 年正式登场。它并非单纯的续作或大型 DLC&#xff0c;而是一款基于原作设定、专注于多人协作生存与浓缩化 RPG 体验的…...

VLSI时代下74系列离散逻辑芯片的现代应用与设计实践

1. 从“胶水逻辑”到“系统粘合剂”&#xff1a;离散逻辑芯片的现代生存法则 在今天的数字电路设计领域&#xff0c;提起“7400系列”或者“74HC04”&#xff0c;很多年轻工程师的第一反应可能是博物馆里的古董&#xff0c;或者教科书上的历史章节。主流叙事已经被SoC、FPGA和高…...

3个步骤快速掌握Windows网络性能测试:iperf3实战指南

3个步骤快速掌握Windows网络性能测试&#xff1a;iperf3实战指南 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds 还在为网络速度不稳定而烦恼吗&…...