2024快手面试算法题-生气传染
问题描述
思路分析
生气只会向后传播,最后一个生气的人一定是最长连续没有生气的人中的最后一个人,前提是前面得有一个人生气。
注意,一次只能传播一个人,比如示例1,第一次只会传播给第一个P,不会传播给第二个P,了解这个之后,我们再将这个问题进行转化
最后一个P变生气,是由离他最近的A传染的,所以最后一个P变生气的时间,就是最后一个P和离他最近的A的距离
所以我们只要记录离最后一个P最近的A的位置,和最后一个P的位置,两个位置相减就是答案
代码实现
public class KsInternShip {//思路 最后一个p变生气,是由他前面最近的一个A引起的//所以最后一个p变成A的时间,就是最后一个P和最近的A的距离public int lastToBeAngry(String mood) {if(mood == null || mood.length() <= 1) {return -1;}int lastIndex = 0, res = 0, len = mood.length();for(int i = 0; i < len; i++) {if(mood.charAt(i) == 'A') {lastIndex = i;}else {res = Math.max(res,i - lastIndex);}}return res;}
}
相似题目
洛谷的一道相似题:Angry Students - 洛谷
相关文章:

2024快手面试算法题-生气传染
问题描述 思路分析 生气只会向后传播,最后一个生气的人一定是最长连续没有生气的人中的最后一个人,前提是前面得有一个人生气。 注意,一次只能传播一个人,比如示例1,第一次只会传播给第一个P,不会传播给第…...

组织如何防御日益增加的 API 攻击面
应用程序编程接口 (API) 日益重要。随着 API 超出手动控制范围,组织可能面临更大的安全挑战。 在这里,我们与 Akamai 安全技术战略总监 Karl Mattson 进行了交谈。 请介绍一下您的职位和背景。 我在网络安全和技术领导方面拥有超过 25 年的经验&am…...

如何防止U盘盗取电脑数据?
数据安全无论是对企业还是个人都至关重要。这些用户群体随时面临着数据被窃取的风险,而 U 盘则成为了潜在的安全隐患。如果你想要禁止电脑上使用 这类USB 存储设备,看完这篇文章,防止 U 盘盗取数据并非难事。 禁止使用usb存储设备 打开电脑上…...

python爬虫抓取豆瓣数据教程
环境准备 在开始之前,你需要确保你的Python环境已经安装了以下库: requests:用于发送HTTP请求。BeautifulSoup:用于解析HTML文档。 如果你还没有安装这些库,可以通过以下命令安装: pip install requests…...
Mybatis 注意传递多种参数,不一定都有参数值,用xml如何写出查询语句
Mybatis 注意传递多种参数,不一定都有参数值,用xml如何写出查询语句 有一张User表,传递name和age参数,通过mybatis的xml格式编写查询namelike“%张%”,或者age18的学生信息,但是注意传递name和age参数&…...
【Windows】Redis 部署
1、部署 (1)下载 目前 Redis官网 没有提供Windows版本的安装程序,如果需要安装,需要到Github上下载适合Windows的版本。 具体下载地址为: Redis-x64-3.0.504.zipRedis-x64-5.0.14.1.zip (2)…...
【经典】Vue中this指向问题??
在Vue中,this关键字的指向取决于this在何处被定义。在Vue的组件方法中,this指向当前组件实例,即Vue的实例。 以下是一些常见场景的this指向示例: 组件方法内部: export default { methods: { someMethod() { …...
Oracle数据泵(expdp)导入导出数据
源数据库操作(数据备份) 自定义变量 1.查询当前数据库的自定义变量(里面包含导出数据文件路径变量配置,即DUMP_DIR) select * from dba_directories; 2.若没有配置,则创建一个dump_dir(变量…...

得物App 3D球鞋博物馆亮相两博会,打造沉浸式消费新体验
近日,2024中国体育文化博览会、中国体育旅游博览会(简称“两博会”)在苏州国际展览中心拉开帷幕。得物App携手Apple Vision Pro共同打造的3D球鞋博物馆亮相两博会上海展区,并通过3D技术为观众呈现独特的沉浸式消费新体验。 在3D球…...
深度学习中的迁移学习
文章目录 一、迁移学习的基本概念二、迁移学习的步骤三、迁移学习的策略四、迁移学习的应用五、迁移学习的挑战与未来展望 深度学习中的迁移学习是一种重要的机器学习方法,其 核心思想在于利用从一个任务(源任务)中学到的知识或模型…...

【深入浅出】深入浅出Bert(附面试题)
本文的目的是为了帮助大家面试Bert,会结合我的面试经历以及看法去讲解Bert,并非完整的技术细致讲解,介意请移步。 深入浅出】深入浅出Bert(附面试题) 网络结构Pre-TrainingFine-Tuning 输入编码词向量编码句子编码位置…...

Docker-安装
操作系统:Ubuntu 20.04.6 LTS 更新apt sudo apt update 删除旧版本docker sudo apt-get remove docker docker-engine docker.io 安装docker sudo apt install docker.io 查看docker版本 docker --version 启动docker 启动docker sudo systemctl start docker 启用…...

《盼归》
《盼归》 烈日炎炎天桥上,小月踮脚望远方。 汗水滑落笑颜开,心中英雄是父忙。 车声轰鸣情意长,喇叭回应泪两行。 生日快乐声声唤,盼父归来情意长。 在一个炎热的夏日午后,阳光炙烤着大地,天桥上的温度达…...

第十九章 Vue组件之data函数
目录 一、引言 二、示例代码 2.1. 工程结构图 2.2. main.js 2.3. App.vue 2.4. BaseCount.vue 三、运行效果 一、引言 在Vue CLI脚手架中一个组件的data选项必须是一个函数,以此保证每个组件实例,维护独立的一份数据对象。每次创建新的组件实…...
【jvm】什么时候对象进入老年代
目录 1. 对象年龄达到阈值2. 大对象直接进入老年代3. 动态晋升条件 1. 对象年龄达到阈值 1.基本机制:当一个对象在新生代(包括Eden区和Survivor区)中经历了多次垃圾回收(GC)后仍然存活,其年龄会逐渐增加。…...
Vue.nextTick 使用指南:数据更新与 DOM 同步利器
前言 在使用 Vue.js 开发单页面应用时,我们常常需要在数据更新后执行一些操作,比如更新 DOM 或者进行一些依赖于最新数据的计算。这时候,Vue.nextTick 就显得尤为重要,本文将详细介绍 Vue.nextTick 的作用与使用方法。 什么是 V…...
第三百零一节 Lucene教程 - Lucene索引文件
Lucene教程 - Lucene索引文件 索引是识别文档并为搜索准备文档的过程。 下表列出了索引过程中常用的类。 类描述IndexWriter在索引过程中创建/更新索引。Directory表示索引的存储位置。Analyzer分析文档并从文本中获取标记/单词。Document带有字段的虚拟文档。分析仪可以处理…...

动态规划 01背包(算法)
现有四个物品,小偷的背包容量为8,怎么可以偷得价值较多的物品 如: 物品编号: 1 2 3 4 物品容量: 2 3 4 5 物品价值: 3 4 5 8 记f(k,w) ,当背包容量为w,可以偷k件物品…...

使用常数指针作为函数参数
在main.cpp里输入程序如下: #include <iostream> //使能cin(),cout(); #include <iomanip> //使能setbase(),setfill(),setw(),setprecision(),setiosflags()和resetiosflags(); //setbase( char x )是设置输出数字的基数,如输出进制数则用setbas…...

wps宏代码学习
推荐学习视频:https://space.bilibili.com/363834767/channel/collectiondetail?sid1139008&spm_id_from333.788.0.0 打开宏编辑器和JS代码调试 工具-》开发工具-》WPS宏编辑器 左边是工程区,当打开多个excel时会有多个,要注意不要把…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...