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

⭐LeetCode周赛 3468. 可行数组的数目——暴力与数学⭐

⭐LeetCode周赛 3468. 可行数组的数目——暴力与数学⭐

在这里插入图片描述

示例 1:
输入:original = [1,2,3,4], bounds = [[1,2],[2,3],[3,4],[4,5]]
输出:2
解释:
可能的数组为:
[1, 2, 3, 4]
[2, 3, 4, 5]

示例 2:
输入:original = [1,2,3,4], bounds = [[1,10],[2,9],[3,8],[4,7]]
输出:4
解释:
可能的数组为:
[1, 2, 3, 4]
[2, 3, 4, 5]
[3, 4, 5, 6]
[4, 5, 6, 7]

提示:
2 <= n == original.length <= 105
1 <= original[i] <= 109
bounds.length == n
bounds[i].length == 2
1 <= bounds[i][0] <= bounds[i][1] <= 109

题解:

暴力法+数学法 具体见代码注释

代码:

// 暴力  超时
// 思路为一旦copy[0]确定 则copy数组即确定 因各元素间距由original可提前算出
// 故仅对copy[0]的值进行模拟 从u0遍历到v0 
// 同时判断按照上述情况得到的copy数组如copy[1] copy[2]等是否满足他们的ui和vi限制即可
// 即由于各元素间距固定 故多个需要遍历的变量可以变为进遍历单一变量copy[0] 再加以对所有可能的数组进行验证即可
class Solution1 {public int countArrays(int[] original, int[][] bounds) {int len = original.length;int res = 0;int[] next_len = new int[len];for(int i=1;i<len;i++){next_len[i] = original[i] - original[i-1];}int L = bounds[0][0];int R = bounds[0][1];while(L <= R){int[] temp = new int[len];temp[0] = L;for(int i=1;i<len;i++){temp[i] = temp[i-1] + next_len[i];}boolean flag = true;for(int i=1;i<bounds.length;i++){if(temp[i] >= bounds[i][0] && temp[i] <= bounds[i][1]){continue;}else{flag = false;break;}}if(flag){res++; }L++;}return res;}
}// 数学 算出copy[0]的实际可取值范围即为关键
// 公式化简可知 copy[i] = copy[0] + di 即copy的任一元素均可由copy[0]推演得到
// 故 ui <= copy[i] <= vi ---> ui-di <= copy[0] <= vi-di
// 则上述式子即为copy[0]的取值范围限制 对所有情况的i均算出 取交集即可
class Solution {public int countArrays(int[] original, int[][] bounds) {int len = original.length;// 先定义copy[0]取值范围为本身的限制 即此时为最宽泛情况// 即先进行u0-d0 <= copy[0] <= v0-d0第一层限制int L = bounds[0][0];int R = bounds[0][1];// 后面遍历bounds 依次得到ui和vi 对copy[0]区间进行缩小for(int i=1;i<len;i++){int di = original[i] - original[0];int ui = bounds[i][0];int vi = bounds[i][1];L = Math.max(L,ui-di);R = Math.min(R,vi-di);}// 若最后得到为负 则代表无符合题目条件的数组 故返回0return R-L+1 > 0 ? R-L+1 : 0;}
}

结果:

在这里插入图片描述

相关文章:

⭐LeetCode周赛 3468. 可行数组的数目——暴力与数学⭐

⭐LeetCode周赛 3468. 可行数组的数目——暴力与数学⭐ 示例 1&#xff1a; 输入&#xff1a;original [1,2,3,4], bounds [[1,2],[2,3],[3,4],[4,5]] 输出&#xff1a;2 解释&#xff1a; 可能的数组为&#xff1a; [1, 2, 3, 4] [2, 3, 4, 5] 示例 2&#xff1a; 输入&…...

在线json转ArkTs-harmonyos

轻松将 JSON 数据转换为类型安全的 ArkTs 接口。快速准确地生成代码&#xff0c;提升开发效率&#xff0c;告别手动编写&#xff0c;让您的开发流程更加流畅&#xff01; gotool...

Vue 实现AI对话和AI绘图(AIGC)人工智能

我司是主要是负责AIGC人工智能化平台的项目&#xff0c;俗称内容创作及智能工具平台。 授人以鱼不如授人以渔 首先我们要明白AIGC中前端需要做什么 会用到哪些技术栈 。 AIGC前端需要用到的技术栈:Vue&#xff0c;Markdown&#xff0c;SSE。就这个三件套。 前沿:有人觉得AI对…...

Visual Studio Code 基本使用指南

Visual Studio Code&#xff08;简称 VSCode&#xff09;是一款由微软开发的免费、开源、跨平台的代码编辑器&#xff0c;凭借其轻量级设计、丰富的插件生态和强大的功能&#xff0c;成为全球开发者的首选工具。本文将从安装配置到核心功能&#xff0c;全面解析 VSCode 的基本使…...

水下机器人推进器PID参数整定与MATLAB仿真

水下机器人推进器PID参数整定与MATLAB仿真 1. PID控制原理 目标:通过调节比例(P)、积分(I)、微分(D)参数,使推进器输出力快速稳定跟踪期望值。传递函数(示例):推进器动力学模型可简化为: [ G(s) = \frac{K}{\tau s + 1} \cdot e^{-Ts} ] 其中:K为增益,τ为时间常…...

网络安全工具nc(NetCat)

NetCat是一个非常简单的Unix工具&#xff0c;可以读、写TCP或UDP网络连接(network connection)。它被设计成一个可靠的后端(back-end)工具&#xff0c;能被其它的程序程序或脚本直接地或容易地驱动。同时&#xff0c;它又是一个功能丰富的 网络调试和开发工具&#xff0c;因为它…...

【C/C++】如何求出类对象的大小----类结构中的内存对齐

每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” 绪论​&#xff1a; 通过本章你能具体的了解到&#xff0c;如何计算出一个类的大小&#xff0c;并且了解其中到底是如何算的以及了解到为什么需要内存对齐这种算&#xff0…...

Linux:动静态库

1.库是什么&#xff0c;作用是什么 库是写好的&#xff0c;现有的可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始。 本质上来说库是一种可执行代码的二进制形式&#xff0c;可以被操作系统载入内存中执行。库有两种&#…...

鸿蒙跨平台框架ArkUI-X

01 引言 目前&#xff0c;移动端主流跨平台方案有Flutter、React Native、uni-app等等&#xff0c;还有刚推出不久的Compose-Multiplatform&#xff0c;真所谓是百花齐放。这些框架各有特点&#xff0c;技术实现各有差异&#xff0c;比如Flutter通过Dart编写的UI描述对接Flutte…...

第7章 wireshark(网络安全防御实战--蓝军武器库)

网络安全防御实战--蓝军武器库是2020年出版的&#xff0c;已经过去3年时间了&#xff0c;最近利用闲暇时间&#xff0c;抓紧吸收&#xff0c;总的来说&#xff0c;第7章开始学习抓包工具wireshark&#xff0c;如果你怀疑自己的电脑中毒了&#xff0c;那么用wireshark可以很轻松…...

【AI】神经网络|机器学习——图解Transformer(完整版)

Transformer是一种基于注意力机制的序列模型,最初由Google的研究团队提出并应用于机器翻译任务。与传统的循环神经网络(RNN)和卷积神经网络(CNN)不同,Transformer仅使用自注意力机制(self-attention)来处理输入序列和输出序列,因此可以并行计算,极大地提高了计算效率…...

002-SpringCloud-OpenFeign(远程调用)

SpringCloud-OpenFeign 1.引入依赖2.编写一个远程调用接口3.测试 1.引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId> </dependency><dependencyManageme…...

基于类型的声明接收props

在 Vue 3 中&#xff0c;除了运行时声明这种常见方式&#xff0c;还可以通过基于类型的声明、解构赋值等方式来接收 props&#xff0c;下面为你详细介绍&#xff1a; 1. 基于类型的声明 这种方式借助 TypeScript 的类型系统来定义 props&#xff0c;具有类型检查和代码提示的…...

多方安全计算(MPC)电子拍卖系统

目录 一、前言二、多方安全计算(MPC)与电子拍卖系统概述2.1 多方安全计算(MPC)的基本概念2.2 电子拍卖系统背景与需求三、MPC电子拍卖系统设计原理3.1 系统总体架构3.2 电子拍卖中的安全协议3.3 数学与算法证明四、数据加解密模块设计五、GPU加速与系统性能优化六、GUI设计与系…...

使用QT + 文件IO + 鼠标拖拽事件 + 线程 ,实现大文件的传输

第一题、使用qss&#xff0c;通过线程&#xff0c;使进度条自己动起来 mythread.h #ifndef MYTHREAD_H #define MYTHREAD_H#include <QObject> #include <QThread> #include <QDebug>class mythread : public QThread {Q_OBJECT public:mythread(QObject* …...

【无人机路径规划】基于麻雀搜索算法(SSA)的无人机路径规划(Matlab)

效果一览 代码获取私信博主基于麻雀搜索算法&#xff08;SSA&#xff09;的无人机路径规划&#xff08;Matlab&#xff09; 一、算法背景与核心思想 麻雀搜索算法&#xff08;Sparrow Search Algorithm, SSA&#xff09;是一种受麻雀群体觅食行为启发的元启发式算法&#xff0…...

基于物联网技术的分布式光伏监控系统设计与实现

一、分布式光伏发电系统标准规范 1.常见应用场景 2.并网标准 Q/GDW1480-2015《分布式电源接入电网技术规定》 分布式电源并网电压等级可根据各并网点装机容量进行初步选择&#xff0c;推荐如下&#xff1a; 8kW 及以下可接入220V&#xff1b; 8kW~400kW可接入380V&#xf…...

阿里发布新开源视频生成模型Wan-Video,支持文生图和图生图,最低6G就能跑,ComFyUI可用!

Wan-Video 模型介绍&#xff1a;包括 Wan-Video-1.3B-T2V 和 Wan-Video-14B-T2V 两个版本&#xff0c;分别支持文本到视频&#xff08;T2V&#xff09;和图像到视频&#xff08;I2V&#xff09;生成。14B 版本需要更高的 VRAM 配置。 Wan2.1 是一套全面开放的视频基础模型&…...

27. Harmonyos Next仿uv-ui 组件NumberBox 步进器组件禁用状态

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; 文章目录 1. 组件介绍2. 效果展示3. 禁用状态设置3.1 整体禁用3.2 输入框禁用3.3 长按禁用 4. 完整示例代码5. 知识点讲解5.1 禁用状态属性5.2 禁用…...

【软件工程】一篇入门UML建模图(状态图、活动图、构件图、部署图)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;软件开发必练内功_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…...

重构Sketch图层管理流程:RenameIt效率引擎突破设计协作瓶颈

重构Sketch图层管理流程&#xff1a;RenameIt效率引擎突破设计协作瓶颈 【免费下载链接】RenameIt Keep your Sketch files organized, batch rename layers and artboards. 项目地址: https://gitcode.com/gh_mirrors/re/RenameIt 在现代UI/UX设计工作流中&#xff0c;…...

京东云GPU服务器省钱攻略:如何根据业务需求灵活选择计费模式和虚拟化方案

京东云GPU服务器成本优化实战指南&#xff1a;精准匹配业务需求的选型策略 在AI与高性能计算领域&#xff0c;GPU服务器已成为企业技术基础设施的核心组件。然而&#xff0c;面对复杂的计费模式、多样的硬件配置以及差异化的虚拟化方案&#xff0c;许多技术决策者常常陷入"…...

Node.js 环境避坑指南:从零搞定 Fetch MCP 依赖安装与构建 (Windows/macOS)

Node.js 环境避坑指南&#xff1a;从零搞定 Fetch MCP 依赖安装与构建 在开发者的日常工作中&#xff0c;遇到环境配置问题就像程序员遇到bug一样常见。特别是对于刚接触Node.js生态的前端新手&#xff0c;或是需要在不同操作系统间切换的开发者来说&#xff0c;一个看似简单的…...

保姆级教程:NLI-DistilRoBERTa快速部署与简单调用指南

保姆级教程&#xff1a;NLI-DistilRoBERTa快速部署与简单调用指南 1. 项目概述与核心能力 NLI-DistilRoBERTa是基于DistilRoBERTa模型的自然语言推理(Natural Language Inference)Web服务&#xff0c;专门用于分析两个句子之间的逻辑关系。这个轻量级模型保留了RoBERTa模型90…...

5步快速解锁付费内容:bypass-paywalls-chrome-clean终极指南 [特殊字符]

5步快速解锁付费内容&#xff1a;bypass-paywalls-chrome-clean终极指南 &#x1f680; 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的时代&#xff0c;你是否经常遇到优…...

5分钟搞定黑苹果音频驱动:AppleALC新手配置指南

5分钟搞定黑苹果音频驱动&#xff1a;AppleALC新手配置指南 【免费下载链接】AppleALC Native macOS HD audio for not officially supported codecs 项目地址: https://gitcode.com/gh_mirrors/ap/AppleALC AppleALC是一款强大的开源内核扩展工具&#xff0c;能让非官方…...

string字符串基础相关知识

课程要求1.string的三种创建方式2.string常用方法空格处理&#xff0c;空值判断&#xff0c;替换操作&#xff0c;字符串截取&#xff0c;字符串拆分&#xff0c;字符索引访问拼接与性能&#xff0c;删除操作3.理解 string 不可变性&#xff0c;能在循环拼接场景中使用 StringB…...

GNU Parallel进阶指南:解决管道传参的5个常见坑

GNU Parallel进阶指南&#xff1a;解决管道传参的5个常见坑 在数据处理和批量任务处理领域&#xff0c;GNU Parallel堪称瑞士军刀般的存在。这个看似简单的命令行工具&#xff0c;却能让你的工作效率提升数倍。但就像任何强大的工具一样&#xff0c;掌握其精髓需要跨越一些技术…...

Skytraq NavIC库:Arduino平台的GNSS驱动与区域增强开发指南

1. Skytraq NavIC 库概述Skytraq NavIC 库是一个面向 Arduino 平台的完整 GNSS 驱动框架&#xff0c;专为基于 Skytraq 芯片组&#xff08;如 SGR-03、SGR-05、SGR-07 系列&#xff09;的高精度定位模块设计。该库不仅全面支持全球主流卫星导航系统&#xff0c;更深度适配印度区…...

23种设计模式 - 组合模式(Composite)

组合模式&#xff08;Composite&#xff09;—— 文件夹套文件夹&#xff0c;统一操作 大白话解释 你的电脑里&#xff1a; &#x1f4c4; 文件&#xff08;不能再包含东西&#xff09;&#x1f4c1; 文件夹&#xff08;可以装文件&#xff0c;也可以装文件夹&#xff09; &…...