【LeetCode: 3206. 交替组 I + 模拟】

devtools/2024/11/28 4:32:39/

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • 模拟
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 3206. 交替组 I

⛲ 题目描述

给你一个整数数组 colors ,它表示一个由红色和蓝色瓷砖组成的环,第 i 块瓷砖的颜色为 colors[i] :

  • colors[i] == 0 表示第 i 块瓷砖的颜色是 红色 。
  • colors[i] == 1 表示第 i 块瓷砖的颜色是 蓝色 。

环中连续 3 块瓷砖的颜色如果是 交替 颜色(也就是说中间瓷砖的颜色与它 左边 和 右边 的颜色都不同),那么它被称为一个 交替 组。

请你返回 交替 组的数目。

注意 ,由于 colors 表示一个 环 ,第一块 瓷砖和 最后一块 瓷砖是相邻的。

示例 1:

输入:colors = [1,1,1]

输出:0

解释:

在这里插入图片描述

示例 2:

输入:colors = [0,1,0,0,1]

输出:3

解释:
在这里插入图片描述

交替组包括:

在这里插入图片描述

提示:

3 <= colors.length <= 100
0 <= colors[i] <= 1

🌟 求解思路&实现代码&运行结果


模拟

🥦 求解思路
  1. 题意遍历数组 colors 的每个元素,判断其前一个元素和后一个元素是否都与当前元素不同,如果满足,则将结果加 1。注意瓷砖是环形的,则数组的首尾元素是相邻的。最后返回结果。
  2. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
class Solution {public int numberOfAlternatingGroups(int[] colors) {int n = colors.length;if (null == colors || n == 0) {return 0;}int cnt = 0;for (int i = 0; i < n; i++) {if (colors[i] != colors[(i + 1) % n] && colors[(i - 1 + n) % n] != colors[i]) {cnt++;}}return cnt;}
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/devtools/137568.html

相关文章

Spring Boot 动态数据源切换

背景 随着互联网应用的快速发展&#xff0c;多数据源的需求日益增多。Spring Boot 以其简洁的配置和强大的功能&#xff0c;成为实现动态数据源切换的理想选择。本文将通过具体的配置和代码示例&#xff0c;详细介绍如何在 Spring Boot 应用中实现动态数据源切换&#xff0c;帮…

MATLAB中Simulink的基础知识

Simulink是MATLAB中的一种可视化仿真工具&#xff0c; 是一种基于MATLAB的框图设计环境&#xff0c;是实现动态系统建模、仿真和分析的一个软件包&#xff0c;被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。 Simulink提供一个动态系统建模、仿真和…

《免费的学习网站推荐3》

《免费的学习网站推荐3》 综合教育类 国家教育资源公共服务平台&#xff1a;教育部主导的平台&#xff0c;汇聚了大量中小学教育资源&#xff0c;包括课件、教案、试题等&#xff0c;为教师教学和学生学习提供了丰富的素材.爱课程网&#xff1a;由高教社的“爱课程网”与网易…

Redis的几种持久化方式

Redis 提供了两种主要的持久化方式&#xff0c;它们分别是&#xff1a; 1. RDB&#xff08;Redis Database Snapshotting&#xff09; RDB 是 Redis 的一种数据持久化方式&#xff0c;它会在指定的时间间隔内对 Redis 中的数据进行快照并保存到硬盘上。 特点&#xff1a; 触…

设计模式之 备忘录模式

备忘录模式是一种行为型设计模式&#xff0c;它允许你在不暴露对象实现细节的情况下&#xff0c;捕获和保存对象的内部状态。之后&#xff0c;可以通过保存的状态将对象恢复到原先的状态。备忘录模式的核心思想是“在不暴露对象的内部实现的情况下&#xff0c;保存对象的状态&a…

前端自动化运营:提升效率与体验的实践指南

在现代的前端开发与运营中&#xff0c;业务需求的快速变化与用户体验的高标准要求正变得越来越普遍。如何在有限的时间内快速迭代、精准上线、实时响应用户反馈&#xff1f;答案是&#xff1a;前端自动化运营。 本文将从概念出发&#xff0c;结合实际场景&#xff0c;深入探讨前…

OpenOCD之J-Link下载

NOTE&#xff1a;此篇文章由笔者的 VSCode编辑GCC for ARM交叉编译工具链Makefile构建OpenOCD调试&#xff08;基于STM32的标准库&#xff09;派生而来。 1.下载USB Dirver Tool.exe&#xff0c;选择J-Link dirver&#xff0c;替换成WinUSB驱动。&#xff08;⭐USB Dirver Tool…

设计模式-创建型-单例模式

1.概念 该设计模式保证全局只有一个实例对象可以使用&#xff0c;并且自动实例化&#xff0c;向外部提供一个使用接口。 2.作用 保证某些对象在项目中只有一份。 3.应用场景 比如&#xff1a; 全局的计数器——web页面文章阅读计数 全局的资源共享——用户登录后各个页面之…