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

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 - 洛谷


http://www.kler.cn/a/379412.html

相关文章:

  • 运维工具之docker入门
  • 40.第二阶段x86游戏实战2-初识lua
  • PyQt5的安装与简介
  • conda找不到对应版本的pytorch,就会自动下载cpu版本的
  • 练习LabVIEW第三十七题
  • Keras 3 示例:开启深度学习之旅
  • HTML+CSS科技感时钟(附源码!!!)
  • 浅谈vuex和pinia的区别
  • 什么是虚拟dom,如何实现一个虚拟dom
  • 硅谷甄选(10)用户管理
  • HTML5 + CSS3 + JavaScript 编程语言学习教程
  • Rust编程中的浮点数比较
  • Spring Boot 3.x 整合 Druid 数据库连接池(含密码加密)
  • Docker安装MySQL8.0
  • LeetCode 热题100 之 回溯1
  • 已解决:VS2022一直显示编译中但无法运行的情况
  • 贝叶斯+PINN!双重热点buff叠加,轻松斩获Nature子刊!
  • 人工智能技术的演变与未来:前景、挑战与应对
  • Lobe Chat:你的私人AI助理
  • Kimi出考题,考题提示词Prompt附上,培训机构试题、期中考试、人事入职试题全搞定
  • Three.js基础入门笔记
  • Centos安装ZooKeeper教程(单机版)
  • DBA之路,始于足下
  • I2S、PDM、PCM、TDM、DSM、DCODEC、VAD、SPDIF
  • 损失函数1
  • 「实战应用」如何在 DHTMLX Scheduler 中实现动态主题切换?