Leetcode 第395场周赛 问题和解法

题目

找出与数组相加的整数 I

给你两个长度相等的数组nums1和nums2。

数组nums1中的每个元素都与变量x所表示的整数相加。如果x为负数,则表现为元素值的减少。

在与x相加后,nums1和nums2相等。当两个数组中包含相同的整数,并且这些整数出现的频次相同时,两个数组相等。

返回整数x。

示例:
输入:nums1=[2,6,4],nums2=[9,7,5]

输出:3

解释:

与3相加后,nums1和nums2相等。

解题思路

根据题意能得出x=min(nums2)-min(nums1)

class Solution {public int addedInteger(int[] nums1, int[] nums2) {int min1 = Integer.MAX_VALUE;int min2 = Integer.MAX_VALUE;for (int i = 0; i < nums1.length; i++) {min1 = Math.min(min1, nums1[i]);min2 = Math.min(min2, nums2[i]);}return min2 - min1;}
}

找出与数组相加的整数 II

给你两个整数数组nums1和nums2。

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

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

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

示例:

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

输出:-2

解释:

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

解题思路

O(nlogn) 排序+判断子序列

class Solution {public int minimumAddedInteger(int[] nums1, int[] nums2) {Arrays.sort(nums1);Arrays.sort(nums2);// 枚举保留 nums1[2] 或者 nums1[1] 或者 nums1[0]// 倒着枚举是因为 nums1[i] 越大答案越小,第一个满足的就是答案for (int i = 2; i > 0; i--) {int diff = nums2[0] - nums1[i];// 在 {nums1[i] + diff} 中找子序列 nums2int j = 0;for (int k = i; k < nums1.length; k++) {if (j < nums2.length && nums2[j] == nums1[k] + diff && ++j == nums2.length) {// nums2 是 {nums1[i] + diff} 的子序列return diff;}}}// 题目保证答案一定存在return nums2[0] - nums1[0];}
}

数组最后一个元素的最小值

给你两个整数n和x。你需要构造一个长度为n的正整数数组nums,对于所有0<=i<n-1,满足nums[i+1]大于nums[i],并且数组nums中所有元素的按位AND运算结果为x。

返回nums[n-1]可能的最小值。

示例1:

输入:n=3,x=4

输出:6

解释:

数组nums可以是[4,5,6],最后一个元素为6。

解题思路

位运算

class Solution {public long minEnd(int n, int x) {n--; // 先把 n 减一,这样下面讨论的 n 就是原来的 n-1long ans = x;int i = 0, j = 0;while ((n >> j) > 0) {// x 的第 i 个比特值是 0,即「空位」if ((ans >> i & 1) == 0) {// 空位填入 n 的第 j 个比特值ans |= (long) (n >> j & 1) << i;j++;}i++;}return ans;}
}

找出唯一性数组的中位数

给你一个整数数组nums。数组nums的唯一性数组是一个按元素从小到大排序的数组,包含了nums的所有非空子数组中不同元素的个数。

换句话说,这是由所有0<=i<=j<nums.length的distinct(nums[i…j])组成的递增数。

其中,distinct(nums[i…j])表示从下标i到下标j的子数组中不同元素的数量。

返回nums唯一性数组的中位数。

注意,数组的中位数定义为有序数组的中间元素。如果有两个中间元素,则取值较小的那个。

示例 1:

输入:nums = [1,2,3]

输出:1

解释:

nums 的唯一性数组为 [distinct(nums[0…0]), distinct(nums[1…1]), distinct(nums[2…2]), distinct(nums[0…1]), distinct(nums[1…2]), distinct(nums[0…2])],即 [1, 1, 1, 2, 2, 3] 。唯一性数组的中位数为 1 ,因此答案是 1 。

解题思路

二分答案+滑动窗口

class Solution {public int medianOfUniquenessArray(int[] nums) {int n = nums.length;long k = ((long) n * (n + 1) / 2 + 1) / 2;int left = 0;int right = n;while (left + 1 < right) {int mid = (left + right) / 2;if (check(nums, mid, k)) {right = mid;} else {left = mid;}}return right;}private boolean check(int[] nums, int upper, long k) {long cnt = 0;int l = 0;HashMap<Integer, Integer> freq = new HashMap<>();for (int r = 0; r < nums.length; r++) {freq.merge(nums[r], 1, Integer::sum);while (freq.size() > upper) {int out = nums[l++];if (freq.merge(out, -1, Integer::sum) == 0) {freq.remove(out);}}cnt += r - l + 1;if (cnt >= k) {return true;}}return false;}
}

来源

LeetCode周赛

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

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

相关文章

vue学习的预备知识为学好vue打好基础

目录 Vue是什么 &#xff1f;如何使用Vue &#xff1f;Vue ApiVue入口apiVue实例apiVue函数api 无构建过程的渐进式增强静态HTMLVue模块化构建工具npmyarnWebpackvue-cliVite Vue是什么 &#xff1f; 文章基于Vue3叙述。 Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于…

探秘STM32内部FLASH的读写操作

探秘STM32内部FLASH的读写操作 在STM32嵌入式系统开发中&#xff0c;内部FLASH是一个重要的存储器&#xff0c;用于存储程序代码和数据。了解如何进行内部FLASH的读写操作对于开发者来说至关重要&#xff0c;可以帮助他们实现数据的存储与更新。本文将深入探讨STM32内部FLASH的…

十大USDT交易平台大全XEX交易所

USDT是一种基于比特币区块链网络的加密代币&#xff0c;主要运用于数字货币交易平台&#xff0c;以稳定币为主。USDT的核心价值在于其与真实货币的固定兑换比率1:1&#xff0c;所以被称为Tether。随着加密货币市场的不断壮大&#xff0c;越来越多的交易平台开始支持USDT&#x…

C#发票查验开发示例、发票识别开发文档

或许有人会问&#xff0c;发票查验与发票识别接口是什么&#xff1f;简单来说&#xff0c;它只是集成在财务系统或APP等应用中的一个功能模块。只需上传发票图片&#xff0c;发票识别接口即可快速提取发票代码、号码、日期、金额、校验码等关键信息&#xff0c;发票查验接口实时…

2024深圳杯(东北三省)数学建模C题完整论文讲解(含完整python代码及所有残骸音爆位置求解结果)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了2024深圳杯&#xff08;东北三省数学建模联赛&#xff09;A题多个火箭残骸的准确定位完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊…

2024最新华为OD机试试题库全 -【孙悟空吃蟠桃】- C卷

1. 🌈题目详情 1.1 ⚠️题目 孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有 N 棵桃树,每颗树上都有桃子,守卫将在 H 小时后回来。 孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉 K 个,如果树上的桃子少于 K 个,则全部…

【vscode环境配置系列】vscode远程debug配置

VSCODE debug环境配置 插件安装配置文件debug 插件安装 安装C/C, C/C Runner 配置文件 在项目下建立.vscode文件夹&#xff0c;然后分别建立c_cpp_properties.json&#xff0c; launch.json&#xff0c;tasks.json&#xff0c;内容如下&#xff1a; c_cpp_properties.json:…

2024年一季度金融读报集锦

2024一季度金融读报集锦 20240104202401052024010920240110202401152024011620240117202401182024011920240122202401232024012420240125202401262024012920240130202402012024020220240204202402052024020620240219202402202024022120240222202402232024022620240227202402282…

如何解决pycharm创建项目报错 Error occurred when installing package ‘requests‘. Details.

&#x1f42f; 如何解决PyCharm创建项目时的包安装错误&#xff1a;‘requests’ &#x1f6e0;️ 文章目录 &#x1f42f; 如何解决PyCharm创建项目时的包安装错误&#xff1a;requests &#x1f6e0;️摘要引言正文&#x1f4d8; **问题分析**&#x1f680; **更换Python版本…

如何利用快解析软件搭建映射端口

端口映射&#xff0c;就是将内网中主机的一个端口映射到外网主机的一个端口&#xff0c;提供相应的服务&#xff0c;当用户访问外网IP的这个端口时&#xff0c;服务器自动将请求映射到对应局域网内部的机器上。如何才能实现端口映射&#xff1f;今天小编给大家介绍两种方法&…

fetch请求后端返回文件流,并下载。

前端&#xff1a; <script src"~/layui/layui.js"></script> <script src"~/Content/js/common/js/vue.min.js"></script> <script src"~/Content/js/common/js/jquery-1.10.2.min.js"></script><styl…

QT学习篇—qt软件安装

qt下载网址http://download.qt.io/new_archive/qt/ QT官网Qt | Tools for Each Stage of Software Development LifecycleAll the essential Qt tools for all stages of Software Development Lifecycle: planning, design, development, testing, and deployment.https:…

虚拟机扩容-根目录挂载sda1的空间不足

提醒&#xff01;不管成不成功&#xff0c;一定要先备份一份虚拟机&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 走过路过点个关注吧&#xff0c;想到500粉丝&#xff0c;哭。一、查看分区情况 df -h可以看到/dev/sda1已经被占满了 2.关闭虚拟机&#xff…

db2 SQLCODE=-1585和SQLSTATE=54048

DB2数据库在执行SQL语句时&#xff0c;如果返回SQLCODE-1585和SQLSTATE54048错误&#xff0c;这通常指示了一个特定的问题。根据您提供的搜索结果&#xff0c;这个错误可能与以下几个因素相关&#xff1a; 1. **临时表空间页面大小不兼容**&#xff1a;当执行包含ORDER BY子句…

TinyShell后门通信模型剖析

TinyShell后门通信模型剖析 通过对TinyShell后门的外联通信函数进行剖析&#xff0c;梳理其通信过程如下&#xff1a; 调用gettimeofday函数及getpid函数获取当前时间tv及进程pid&#xff0c;将tv和pid作为SHA1算法的输入&#xff0c;生成得到20字节的IV1数据调用gettimeofda…

OpenHarmony实战开发-使用通用事件、焦点事件

基本概念 焦点 指向当前应用界面上唯一的一个可交互元素&#xff0c;当用户使用键盘、电视遥控器、车机摇杆/旋钮等非指向性输入设备与应用程序进行间接交互时&#xff0c;基于焦点的导航和交互是重要的输入手段。 默认焦点 应用打开或切换页面后&#xff0c;若当前页上存在…

工业异常检测

工业异常检测在业界和学界都一直是热门&#xff0c;近期其更是迎来了全新突破&#xff1a;与大模型相结合&#xff01;让异常检测变得更快更准更简单&#xff01; 比如模型AnomalyGPT&#xff0c;它克服了以往的局限&#xff0c;能够让大模型充分理解工业场景图像&#xff0c;判…

SpringMVC基础篇(四)

文章目录 1.视图1.基本介绍1.视图介绍2.为什么需要自定义视图 2.自定义视图实例1.思路分析2.代码实例1.view.jsp2.接口3.配置自定义视图解析器springDispatcherServlet-servlet.xml4.自定义视图MyView.java5.view_result.jsp6.结果展示 3.自定义视图执行流程4.自定义视图执行流…

PostgreSQL的扩展(extensions)-常用的扩展之TimescaleDB

PostgreSQL的扩展&#xff08;extensions&#xff09;-常用的扩展之TimescaleDB TimescaleDB 是一个开源的时间序列数据库&#xff0c;构建于 PostgreSQL 的基础之上。它通过在 PostgreSQL 之上增加时间序列数据管理的优化功能&#xff0c;旨在提供一种易于使用、可伸缩、高性…

python - 网络编程

网络的基本概念 1. IP地址 IP地址是网络中每个设备的唯一标识。在IPv4中&#xff0c;它由四个数字组成&#xff0c;每个数字的范围是0到255&#xff0c;例如192.168.1.1。 案例&#xff1a; 假设您想查看自己的计算机IP地址&#xff0c;可以使用Python的socket模块&#xff…