Leetcode - 周赛446
目录
- 一、3522. 执行指令后的得分
- 二、3523. 非递减数组的最大长度
- 三、3524. 求出数组的 X 值 I
- 四、3525. 求出数组的 X 值 II
一、3522. 执行指令后的得分
题目链接

本题就是一道模拟题,代码如下:
class Solution {public long calculateScore(String[] in, int[] v) {long ans = 0;int i = 0;int n = in.length;boolean[] vis = new boolean[n];while(i >= 0 && i < n && !vis[i]){vis[i] = true;if(in[i].charAt(0) == 'a'){ans += v[i++];}else{i += v[i];}}return ans;}
}
二、3523. 非递减数组的最大长度
题目链接

本题是一道贪心题,由于题目允许将子数组替换成该子数组的最大元素,求最长非递减的长度,这就变相的说明了需要保留尽可能多的较大值,分类讨论:
- 对于第一个元素来说,它必须保留,因为如果执行操作,就必须向后找到一个大于等于它的元素,如果存在该元素,那么不如选择不操作,这样就能获得长度为 2 的非递减数组
- 对于其他元素,贪心的想,从前往后遍历,只要一遇到大于等于 mx 的数,立即更新 mx 和 长度。这样能给后续留下更多的元素,就更可能出现更长的非递减数组。
代码如下:
class Solution {public int maximumPossibleSize(int[] nums) {int ans = 0;int mx = 0;// 有点类似于求前缀最大值的更新次数(只不过==也算更新)for(int x : nums){if(x >= mx){ans++;mx = x;}}return ans;}
}
三、3524. 求出数组的 X 值 I
题目链接

本题题意就是问,对于 数组nums 的所有子数组来说,他们的乘积 %k = {0,1,...,k-1} 分别有多少种情况。定义 f[i+1][j]:右端点为 i,且它们的乘积 %k = j 的子数组个数,对于 x = nums[i] 来说:
- 须知:
(a * b) % k = ((a % k) * (b % k)) % k - 选择以
i-1结尾的子数组,需要枚举f[i][j], j = %k = {0,1,...,k-1},f[i+1][x*j%k] += f[i][j] - 不选以
i-1结尾的任意子数组,即只包含x,那么f[i+1][x%k]++
代码如下:
class Solution {public long[] resultArray(int[] nums, int k) {long[] res = new long[k];int n = nums.length;long[][] f = new long[n+1][k];//f[i][j]: 以 i-1 为右端点时,%k=j 的子数组个数// x * ? % k = j, ?是难以计算的// ? = x * j % k, ?是可以直接计算的for(int i = 0; i < n; i++){int x = nums[i] % k;f[i+1][x] = 1;for(int j = 0; j < k; j++){f[i+1][j*x%k] += f[i][j];}for(int j = 0; j < k; j++){res[j] += f[i+1][j];}}return res;}
}
四、3525. 求出数组的 X 值 II
题目链接

本题与T3类似,区别在于本题有修改操作,且每次查询的子数组的左端点是确定的,问每次查询mod k = queries[i][3] 的子数组个数。单点修改,区间查询可以使用线段树做。需要维护两个东西,一个是[l,r] 的区间乘积,一个是以 l 为左端点的所有子数组乘积mod k的情况。
代码如下:
class SegmentTree{int[][] tree;int k;public SegmentTree(int[] nums, int k){this.k = k;int n = nums.length;tree = new int[n<<2][k+1];build(1, 0, n-1, nums);}void build(int i, int l, int r, int[] a){if(l == r){tree[i][k] = a[l] % k;tree[i][a[l]%k] = 1;return;}int mid = (l + r) >>> 1;build(i<<1, l, mid, a);build(i<<1|1, mid+1, r, a);tree[i] = merge(tree[i<<1], tree[i<<1|1]);}// 合并int[] merge(int[] a, int[] b){int[] ans = a.clone();ans[k] = a[k] * b[k] % k;// 区间乘积 mod kint x = a[k];// 更新以 l 为左端点的子数组 mod k 的情况for(int i = 0; i < k; i++){ans[x * i % k] += b[i];}return ans;}// 单点更新void update(int i, int l, int r, int j, int val){if(l == r){Arrays.fill(tree[i], 0);// 复原tree[i][k] = val % k;tree[i][val%k] = 1;return;}int mid = (l + r) >>> 1;if(j <= mid){update(i<<1, l, mid, j, val);}else{update(i<<1|1, mid+1, r, j, val);}tree[i] = merge(tree[i<<1], tree[i<<1|1]);}// 区间查询int[] query(int i, int l, int r, int jobL, int jobR){if(jobL <= l && r <= jobR){return tree[i];}int mid = (l + r) >>> 1;if(jobR <= mid){return query(i<<1, l, mid, jobL, jobR);}if(mid < jobL){return query(i<<1|1, mid+1, r, jobL, jobR);}return merge(query(i<<1, l, mid, jobL, jobR), query(i<<1|1, mid+1, r, jobL, jobR));}
}
class Solution {public int[] resultArray(int[] nums, int k, int[][] queries) {SegmentTree t = new SegmentTree(nums, k);int n = nums.length;int m = queries.length;int[] ans = new int[m];for(int i = 0; i < m; i++){int[] q = queries[i];t.update(1, 0, n-1, q[0], q[1]);int[] res = t.query(1, 0, n-1, q[2], n-1);ans[i] = res[q[3]];}return ans;}
}
相关文章:
Leetcode - 周赛446
目录 一、3522. 执行指令后的得分二、3523. 非递减数组的最大长度三、3524. 求出数组的 X 值 I四、3525. 求出数组的 X 值 II 一、3522. 执行指令后的得分 题目链接 本题就是一道模拟题,代码如下: class Solution {public long calculateScore(String…...
时序数据库 TDengine 助力石油石化业务, 平滑接替 Oracle 数据库
小T导读:胜软科技在石油石化行业中选择使用 TDengine 处理时序数据,不仅显著降低了运维数据库的成本,也大幅减少了存储空间的占用,实现了从原有的 40 多套 Oracle 数据库向仅 9 套 TDengine集群的精简替换。在迁移过程中ÿ…...
macOS 系统设置息屏情况下,PHP等后台脚本继续执行
在 macOS 系统下,当屏幕息屏或合上盖子时,后台脚本程序是否会继续运行,主要取决于以下几个因素: 1. 系统睡眠状态的影响 默认情况:合盖/息屏后,Mac 会进入「睡眠模式」(部分硬件休眠ÿ…...
vue3 el-table 右击
在 Vue 3 中使用 Element Plus 的 <el-table> 组件时,如果你想实现右击(右键点击)事件的处理,你可以通过监听 contextmenu 事件来实现。contextmenu 事件在用户尝试打开上下文菜单(通常是右键点击)时…...
Prompt-Tuning 提示词微调
1. Hard Prompt 定义: Hard prompt 是一种更为具体和明确的提示,要求模型按照给定的信息生成精确的结果,通常用于需要模型提供准确答案的任务. 原理: Prompt Tuning原理如下图所示:冻结主模型全部参数,在…...
asp.net core webapi+efcore
简洁的restfull风格 目前c#提供了多种风格的web编程,因为微软有自己的前端,所以集成了很多内容,不过基于现在编程前后端分离的模式,webapi是合适的。 webapi 目前网络上有很多介绍,不反复说这个了。在建立控制器时&…...
前端渲染pdf文件解决方案-pdf.js
目录 一、前言 二、简介 1、pdf.js介绍 2、插件版本参数 三、通过viewer.html实现预览(推荐) 1、介绍 2、部署 【1】下载插件包 【2】客户端方式 【3】服务端方式(待验证) 3、使用方法 【1】预览PDF文件 【2】外部搜索…...
vue3 + element-plus中el-drawer抽屉滚动条回到顶部
el-drawer抽屉滚动条回到顶部 <script setup lang"ts" name"PerformanceLogQuery"> import { ref, nextTick } from "vue"; ...... // 详情 import { performanceLogQueryByIdService } from "/api/performanceLog"; const onD…...
从边缘到云端,如何通过时序数据库 TDengine 实现数据的全局洞
在当今数字化转型加速的背景下,海量的数据生成和实时处理需求已成为企业面临的关键挑战。无论是物联网设备、工业自动化系统,还是智能城市的各类传感器,数据的采集、传输与分析效率,直接影响企业的决策与运营。为此,TD…...
2025.04.23【Treemap】树状图数据可视化指南
Multi-level treemap How to build a treemap with group and subgroups. Customization Customize treemap labels, borders, color palette and more 文章目录 Multi-level treemapCustomization Treemap 数据可视化指南Treemap 的基本概念为什么使用 TreemapTreemap 的应用…...
蓝桥杯 15.小数第n位
小数第n位 原题目链接 题目描述 我们知道,整数做除法时,有时会得到有限小数,有时会得到无限循环小数。 如果我们把有限小数的末尾加上无限多个 0,它们就具有了统一的形式。 本题的任务是:在上述约定下,…...
用高斯溅射技术跨越机器人模拟与现实的鸿沟:SplatSim 框架解析
在机器人领域,让机器人在现实世界中精准执行任务是大家一直追求的目标。可模拟环境和现实世界之间存在着不小的差距,特别是基于 RGB 图像的操作策略,从模拟转移到现实时总是状况百出。 今天咱们就来聊聊 SplatSim 框架,看看它是怎…...
Transformer 架构 - 解码器 (Transformer Architecture - Decoder)
欢迎回到我们的 Transformer 系列教程!在上一篇中,我们详细探讨了 Transformer 的编码器,它负责将输入的源序列(比如源语言句子)转换为一系列包含丰富上下文信息的向量表示。 现在,我们将把目光投向 Transformer 的另一半——解码器 (Decoder)。解码器负责接收编码器的输…...
使用Intel Advisor工具分析程序
使用Intel Advisor工具分析程序 Intel Advisor是一款性能分析工具,主要用于识别代码中的向量化机会、线程化和内存访问模式等问题。以下是使用Intel Advisor分析程序的基本步骤: 安装与准备 从Intel官网下载并安装Intel Advisor(通常作为I…...
AI大模型学习十一:尝鲜ubuntu 25.04 桌面版私有化sealos cloud + devbox+minio,实战运行成功
一、说明 用了ubuntu 25.04,内核为GNU/Linux 6.14.0-15-generic x86_64,升级了部分image,过程曲折啊 sealos 能干啥 对集群生命周期进行管理,一键安装高可用 Kubernetes 集群,增删节点清理集群自恢复等 通过 sealos…...
如何在 Python 项目中引入 Rust 函数
目录 1. 初始化 Python 项目2. 添加 Rust 开发工具3. 初始化 Rust 项目4. 开发模式构建5. 验证模块是否成功安装6. 测试 Rust 函数总结 (封面pid: 129416070) Python 是一门非常流行的编程语言,具有易于使用和开发的特点。然而,随着项目需求的增长和性能…...
聊聊SpringAI流式输出的底层实现?
在 Spring AI 中,流式输出(Streaming Output)是一种逐步返回 AI 模型生成结果的技术,允许服务器将响应内容分批次实时传输给客户端,而不是等待全部内容生成完毕后再一次性返回。 这种机制能显著提升用户体验ÿ…...
MySQL 8 自动安装脚本(CentOS-7 系统)
文章目录 一、MySQL 8 自动安装脚本脚本说明📌 使用脚本前提条件1. 操作系统2. 用户权限3. 网络要求 📌 脚本的主要功能1. 环境检查2. MySQL 自动安装3. 自动配置 MySQL4. 防火墙配置5. 验证与输出 📌 适用场景 二、执行sh脚本1. 给予脚本执行…...
在Notepad++中使用NppAtyle插件格式化代码
参考链接:Artistic Style 使用教程(中文版) 1.下载NppAStyle插件(根据版本,选择32位或者64位) https://github.com/ywx/NppAStyle/releases 2.菜单栏中选择:插件->打开插件文件夹 创建文件夹…...
【k8s系列7-更新中】kubeadm搭建Kubernetes高可用集群-三主两从
主机准备 结合前面的章节,这里需要5台机器,可以先创建一台虚拟机作为基础虚拟机。优先把5台机器的公共部分优先在一台机器上配置好 1、配置好静态IP地址 2、主机名宇IP地址解析 [root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost…...
拼多多面经,暑期实习Java一面
项目中的设计模式 mysql连接过程,索引,分库分表场景,路由策略 redis使用场景,分片集群怎么搭建与路由,数据一致性 分布式锁怎么用的,具体使用参数 线程池怎么用的,过程 sql having 分布式事务 如…...
FramePack:让视频生成更高效、更实用
想要掌握如何将大模型的力量发挥到极致吗?叶梓老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。 1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其…...
ctfshow web8
前言 学习内容:简单的盲注脚本的书写 web8 这个题目题目手动注入很麻烦 主要是他过滤了 union 空格和 过滤了union的解决方法 1、使用盲注(报错注入和盲注) 2、使用时间盲注 3、堆叠注入 盲注脚本的书写 首先他是有注入点的 然后熟悉requests包的使用 …...
gem5-gpu教程03 当前的gem5-gpu软件架构(因为涉及太多专业名词所以用英语表达)
Current gem5-gpu Software Architecture 这是当前gem5-gpu软件架构的示意图。 Ruby是在gem5-gpu上下文中用于处理CPU和GPU之间内存访问的高度可配置的内存系统 CudaCore (src/gpu/gpgpu-sim/cuda_core.*, src/gpu/gpgpu-sim/CudaCore.py) Wrapper for GPGPU-Sim shader_cor…...
TDengine 查询引擎设计
简介 TDengine 作为一个高性能的时序大数据平台,其查询与计算功能是核心组件之一。该平台提供了丰富的查询处理功能,不仅包括常规的聚合查询,还涵盖了时序数据的窗口查询、统计聚合等高级功能。这些查询计算任务需要 taosc、vnode、qnode 和…...
AOSP Android14 Launcher3——点击桌面图标启动应用动画流程
在Launcher3中,点击桌面应用图标时,会有一个从 图标位置起始到全屏的动画过程,使得应用的打开过程不是生硬的启动过程。 这个动画具体是怎么实现的呢?本文对这个过程进行一个梳理 在Launcher中,动画大体上可以分为两类…...
windows端远程控制ubuntu运行脚本程序并转发ubuntu端脚本输出的网页
背景 对于一些只能在ubuntu上运行的脚本,并且这个脚本会在ubuntu上通过网页展示运行结果。我们希望可以使用windows远程操控ubuntu,在windows上查看网页内容。 方法 start cmd.exe /k "sshpass -p passwd ssh namexxx.xxx.xxx.xxx "cd /hom…...
【官方正版,永久免费】Adobe Camera Raw 17.2 win/Mac版本 配合Adobe22-25系列软
Adobe Camera Raw 2025 年 2 月版(版本 17.2)。目前为止最新版新版已经更新2个月了,我看论坛之前分享的还是2024版,遂将新版分享给各位。 Adobe Camera Raw,支持Photoshop,lightroom等Adobe系列软件&#…...
如何使用flatten函数在Terraform 中迭代嵌套map
简介 flatten 接受一个列表,并用列表内容的扁平序列替换列表中的任何元素。 > flatten([["a", "b"], [], ["c"]]) ["a", "b", "c"] > flatten([[["a", "b"], []], [&quo…...
原生 HTML 的`title` 属性修改触发事件为鼠标移入移出显示
HTML中title属性的适用范围 在 HTML 中,title 属性是全局属性(Global Attribute),这意味着它可以被应用到所有 HTML 标签上。无论是块级元素(如 <div>)、行内元素(如 <span>),还是表单元素(如 <input>),都可以添加 title 属性。 常见使用 title…...
