每日算法刷题Day41 6.28:leetcode前缀和2道题,用时1h20min(要加快)

5. 523.连续的子数组和(中等,学习)

523. 连续的子数组和 - 力扣(LeetCode)

思想

1.给你一个整数数组 nums 和一个整数 k ,如果 nums 有一个 好的子数组 返回 true ,否则返回 false
一个 好的子数组 是:

  • 长度 至少为 2 ,且
  • 子数组元素总和为 k 的倍数。
    注意
  • 子数组 是数组中 连续 的部分。
  • 如果存在一个整数 n ,令整数 x 符合 x = n * k ,则称 x 是 k 的一个倍数。0 始终 视为 k 的一个倍数。
    2.此题条件为(s[r+1]-s[l])%k=0r-l+1>=2,变成s[r+1]%k=s[l]%k(r+1)-l+1>=3,所以枚举j时,要看[0,j-3+1]是否有满足条件的(跟[0,j-1]不一样,不能边枚举边维护次数),这时候就map的值最好为上一次出现的下标(通法)
代码

c++:

class Solution {
public:bool checkSubarraySum(vector<int>& nums, int k) {int n = nums.size();if (n < 2)return false;map<int, int> mp; // 和-下标mp[0] = -1;int s = 0;for (int j = 0; j < n; ++j) {s = (s + nums[j]) % k; // 都为正整数,无需变为负数if (mp.count(s)) {if (j - mp[s] + 1 >=3) // 子数组长度大于等于2,前缀和数组下标差大于等于3return true;} elsemp[s] = j;}return false;}
};
6. 面试题17.05.字母与数字(中等,重点学习)

面试题 17.05. 字母与数字 - 力扣(LeetCode)

思想

1.给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。
返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子数组。若不存在这样的数组,返回一个空数组。

代码

c++:

class Solution {
public:vector<string> findLongestSubarray(vector<string>& array) {int n = array.size();vector<int> s(n + 1);s[0] = 0;for (int i = 0; i < n; ++i) {s[i + 1] = s[i];if (array[i][0] >= '0' && array[i][0] <= '9')++s[i + 1];else--s[i + 1];}map<int, int> mp; // 次数-左下标int begin = 0, end = 0;for (int i = 0; i <= n; ++i) { // s数组范围:[0,n]auto it = mp.find(s[i]);if (it == mp.end()) {mp[s[i]] = i;} else if (i - it->second > end - begin) {end = i;begin = it->second;}}return {array.begin() + begin, array.begin() + end};}
};

一个变量s:

class Solution {
public:vector<string> findLongestSubarray(vector<string>& array) {int n = array.size(), begin = 0, end = 0, s = 0;unordered_map<int, int> mp;mp[s] = 0;                     // 初始前缀和为n时,位置为0for (int i = 1; i <= n; ++i) { // 从1开始遍历if (array[i - 1][0] >= '0' && array[i - 1][0] <= '9')++s;else--s;auto it = mp.find(s);if (it == mp.end()) {// 如果没有出现过,记录该前缀和的第一次出现位置mp[s] = i;} else {// 如果出现过,计算当前子数组长度,更新最大子数组if (i - it->second > end - begin) {begin = it->second;end = i;}}}// 返回最大子数组return {array.begin() + begin, array.begin() + end};}
};

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

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

相关文章

拉取vue-element-admin

这个错误表明 npm 在尝试通过 SSH 克隆 GitHub 仓库时遇到了权限问题&#xff0c;根本原因是系统无法正确处理中文用户名路径下的 SSH 配置。以下是详细的解决方案&#xff1a; 解决方案 1&#xff1a;使用 HTTPS 代替 SSH&#xff08;推荐&#xff09; 修改 Git 全局配置&…

c语言的数组注意事项

在C语言中&#xff0c;int()[5]和int是两种完全不同的指针类型&#xff0c;理解它们的区别对于正确处理数组和多维数组至关重要。下面详细解释&#xff1a; 1&#xff1a;int*&#xff08;指向整型的指针&#xff09; 含义&#xff1a;指向单个int类型数据的指针典型用法&…

在 NestJS 中优雅使用 TypeORM 进行事务管理

事务管理是数据库操作中至关重要的部分&#xff0c;它能确保一系列操作要么全部成功&#xff0c;要么全部失败。本文将详细介绍在 NestJS 框架中使用 TypeORM 进行事务管理的多种方法。 为什么需要事务管理&#xff1f; 想象一下银行转账场景&#xff1a;从一个账户扣款后&am…

给任意apk内容添加水印

1 有源码给app添加水印 使用java可以适配更多的apk&#xff0c;如果使用koltin一些老的apk就会有适配问题 通过registerActivityLifecycleCallbacks拿到activity对象设置水印 在application里面registerActivityLifecycleCallbacks就行 static class MyActivityLifecycleCallb…

扩展的Fortran在高性能计算(HPC)中助力有限元分析(FEA)、流体力学(CFD)、结构力学、复合材料和增材制造仿真的详细指南【附完整示例代码实现】

Fortran 在高性能计算(HPC)中的仿真应用 本指南深入探讨 Fortran 语言如何在高性能计算(HPC)中助力有限元分析(FEA)、流体力学(CFD)、结构力学、复合材料和增材制造仿真。每部分详细介绍,分析 Fortran 的优势、应用场景和实现细节,并附带完整的 Fortran 模拟代码(含…

Java 大视界 -- Java 大数据机器学习模型在自然语言处理中的跨语言信息检索与知识融合(331)

Java 大视界 -- Java 大数据机器学习模型在自然语言处理中的跨语言信息检索与知识融合&#xff08;331&#xff09; 引言&#xff1a;正文&#xff1a;一、Java 驱动的多语言数据处理平台1.1 分布式多语言语料智能清洗系统1.2 多语言文本分布式存储与索引优化1.3 低资源语言数据…

[2025CVPR]SEEN-DA:基于语义熵引导的领域感知注意力机制

目录 引言 研究背景 方法介绍 核心思想 语义熵&#xff08;Semantic Entropy&#xff09; 语义熵引导的注意力机制 领域感知注意力模块 实验设计 数据集 实现细节 结果与分析 对比实验结果 消融实验 代码实现 结论 引言 领域自适应目标检测&#xff08;Domain …

你的RAG系统安全么?

生成式人工智能&#xff08;GenAI&#xff09;近年来发展迅速&#xff0c;大语言模型成为这一浪潮的核心力量。无论是商业还是开源模型&#xff0c;它们都具备强大的语言理解与生成能力&#xff0c;正广泛应用于内容创作、聊天机器人等场景&#xff0c;让企业更容易落地智能应用…

【2.3 漫画SpringSecurity - 守护应用安全的钢铁卫士】

🔐 漫画SpringSecurity - 守护应用安全的钢铁卫士 📚 目录 记忆口诀可视化图表形象比喻数字记忆实战案例记忆卡片总结诗句面试准备🎪 记忆口诀 🏗️ SpringSecurity核心 - “认证授权过滤链” 认证Authentication确身份,用户名密码验证真 授权Authorization控权限,…

ModbusRTU转Profinet网关在电子天平与PLC系统集成中的应用

ModbusRTU转Profinet网关在电子天平与PLC系统集成中的应用 工业自动化场景中&#xff0c;设备通信协议差异常成为系统集成的隐形壁垒。某精密制造企业近期遇到的奥豪斯电子天平与西门子PLC通讯难题&#xff0c;正是这一矛盾的典型缩影。奥豪斯天平采用ModbusRTU协议&#xff0…

js代码后续

这是一个非常棒的问题&#xff0c;也是每个学完一个系统课程的人都会问的问题。 答案是&#xff1a;不&#xff0c;你没有学完“所有”的 JavaScript 知识&#xff0c;但你已经出色地完成了成为一名合格 JavaScript 开发者的所有“必修课”。 让我用一个比喻来解释&#xff1…

百度文心大模型 4.5 系列全面开源 英特尔同步支持端侧部署

2025 年 6 月 30 日&#xff0c;百度如期兑现 2 月 14 日的预告&#xff0c;正式开源文心大模型 4.5&#xff08;ERNIE 4.5&#xff09;系列&#xff0c;涵盖 10 款不同参数规模的模型&#xff0c;包括 470 亿参数混合专家&#xff08;MoE&#xff09;模型、30 亿参数 MoE 模型…

Google AI Edge Function Calling: Android 端模型也能调用工具函数

大家好&#xff0c;我是拭心。 上篇文章我们了解了如何在 Android 手机上实现 RAG。这篇文章我们来聊聊端上大模型应用开发的核心概念&#xff1a;Function Calling&#xff08;函数调用能力&#xff0c;简写为 FC&#xff09;。 Function Calling 本质上是让大模型在回答过程…

模型调试实用技巧 (Pytorch Lightning)

【PL 基础】模型调试实用技巧 摘要1. 设置断点2. 快速运行所有模型代码一次3. 缩短 epoch 长度4. 运行健全性检查5. 打印 LightningModule 权重摘要6. 打印输入输出层尺寸 摘要 本文总结了6种实用的模型调试技巧&#xff1a;1&#xff09;通过设置断点逐行检查代码&#xff1b;…

计算机网络(四)网际层IP

目录 一、概念 ​编辑 二、网际层和数据链路层的关系​ 三、IP地址的基础认识 四、IP地址的分类 五、无分类地址CIDR 六、子网掩码 七、为什么要分离网络号和主机号 八、公有IP和私有IP ​编辑 九、IP地址与路由控制 十、IP分片和重组 十一、IPv6 十二、IP协议…

Java--多态--向上转型--动态绑定机制--断点调试--向下转型

目录 1. 向上转型 2. 向下转型 3. java的动态绑定机制&#xff1a; 4. Object类讲解 5. 断点调试 1. 向上转型 提前&#xff1a;俩个对象&#xff08;类&#xff09;存在继承关系 本质&#xff1a;父类的引用指向了子类的对象 语法&#xff1a;父类 类型 引用名 new…

Python爬虫实战:研究urllib 库相关技术

1. 引言 1.1 研究背景与意义 互联网每天产生海量数据,如何高效获取和利用这些数据成为重要研究方向。网页爬虫作为自动获取网络信息的核心技术,在市场调研、舆情分析、学术研究等领域具有广泛应用。Python 凭借其简洁语法和丰富库支持,成为爬虫开发的首选语言。 1.2 相关…

【机器学习赋能的智能光子学器件系统研究与应用】

目前在Nature和Science杂志上发表的机器学习与光子学结合的研究主要集中在以下几个方面&#xff1a; 1.光子器件的逆向设计&#xff1a;通过机器学习&#xff0c;特别是深度学习&#xff0c;可以高效地进行光子器件的逆向设计&#xff0c;这在传统的多参数优化问题中尤为重要。…

Codeforces Round 1034 (Div. 3)

比赛链接如下&#xff1a;https://codeforces.com/contest/2123 A. Blackboard Game Initially, the integers from 00 to n−1 are written on a blackboard. In one round, Alice chooses an integer a on the blackboard and erases it;then Bob chooses an integer b on …

微电网系列之微电网的孤岛运行

个人主页&#xff1a;云纳星辰怀自在 座右铭&#xff1a;“所谓坚持&#xff0c;就是觉得还有希望&#xff01;” 微电网的孤岛运行 微电网具有并网和孤岛两种运行模式&#xff0c;由于孤岛运行模式下&#xff0c;分布式电源为微电网内部负荷提供频率和电压支撑&#xff0c;由…