【Leetcode】3206.交替组1

embedded/2024/11/27 15:54:48/

题目描述:

https://leetcode.cn/problems/alternating-groups-i/description/?envType=daily-question&envId=2024-11-26
在这里插入图片描述
题目示例:
在这里插入图片描述
在这里插入图片描述

解题思路

思路一:

1.如果color.size()小于等于2,则构不成环,直接返回结果0
2.当color.size()大于等于3时,在数组color最后插入color[0]color[1],构成一个虚拟环
3.当color[i]==color[i+2]并且color[i]!=color[i+1]时,说明满足交替条件
4.代码如下:

class Solution {
public:int numberOfAlternatingGroups(vector<int>& colors) {int res = 0;int length = colors.size();if(length <=2){return res;}int num1 = colors[0];int num2 = colors[1];colors.push_back(num1);colors.push_back(num2);for(int i=0; i<length; i++){if(colors[i] == colors [i+2] && colors[i] != colors[i+1]){res +=1;}}return res;}
};

思路二(优化)

思路一的缺点:

我们需要对数组color末尾追加元素,由于vector容器底层扩容机制的存在,当元素数量达到color容量时,vector会重新开辟一块空间,将其中的元素复制到新开辟的空间中去,这样会浪费时间和空间。因此处理好边界条件,在不进行追加元素的情况下进行条件判断,可提升程序执行效率。

class Solution {
public:int numberOfAlternatingGroups(vector<int>& colors) {int n = colors.size();int res = 0;for(int i=0; i<n; i++){if(colors[(i-1+n)%n] != colors[i] && colors[(i+1+n)%n] != colors[i]){res+=1;}}return res;}
};

http://www.ppmy.cn/embedded/140938.html

相关文章

数据结构--Map和Set

目录 一.二叉搜索树1.1 概念1.2 二叉搜索树的简单实现 二.Map2.1 概念2.2 Map常用方法2.3 Map使用注意点2.4 TreeMap和HashMap的区别2.5 HashMap底层知识点 三.Set3.1 概念3.2 Set常用方法3.3 Set使用注意点3.4 TreeSet与HashSet的区别 四.哈希表4.1 概念4.2 哈希冲突与避免4.3…

林业产品推荐:Spring Boot技术挑战

摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此林业产品销售信…

数据结构之栈:从原理到实现

1. 什么是栈&#xff1f; 在数据结构中&#xff0c;栈&#xff08;Stack&#xff09;是一种非常基础的线性数据结构&#xff0c;它的特点是后进先出&#xff08;LIFO, Last In First Out&#xff09;。想象一个装盘子的架子&#xff0c;你只能从最上面拿盘子或放盘子&#xff…

【H2O2|全栈】JS进阶知识(十一)axios入门

目录 前言 开篇语 准备工作 获取 介绍 使用 结束语 前言 开篇语 本系列博客主要分享JavaScript的进阶语法知识&#xff0c;本期主要对axios进行基本的了解。 与基础部分的语法相比&#xff0c;ES6的语法进行了一些更加严谨的约束和优化&#xff0c;因此&#xff0c;在…

leetcode hot100【LeetCode 215.数组中的第K个最大元素】java实现

LeetCode 215.数组中的第K个最大元素 题目描述 给定一个整数数组 nums 和一个整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;要求排名是从大到小的&#xff0c;因此第 k 个最大元素是排序后的第 k 个元素。你需要设计一个高效的算法来解决这个问题。…

基础入门-Web应用架构搭建域名源码站库分离MVC模型解析受限对应路径

知识点&#xff1a; 1、基础入门-Web应用-域名上的技术要点 2、基础入门-Web应用-源码上的技术要点 3、基础入门-Web应用-数据上的技术要点 4、基础入门-Web应用-解析上的技术要点 5、基础入门-Web应用-平台上的技术要点 一、演示案例-域名差异-主站&分站&端口站&…

SpringBoot - 优雅的实现【账号登录错误次数的限制和锁定】

文章目录 Pre需求实现步骤简易实现1. 添加依赖2. 配置文件3. 自定义注解4. AOP切面5. 使用自定义注解&#xff1a;6. 测试 附总结 Pre SpringBoot - 优雅的实现【流控】 需求 需求描述&#xff1a; 登录错误次数限制&#xff1a;在用户登录时&#xff0c;记录每个账号的登录错…

Conda命令速查

命令速查 命令Command新建Python环境conda create --name hello python3.10.14激活环境conda activate hello退出当前环境conda deactivate安装python包conda install < package name>安装python包pip install < package name>查看所有python环境conda env list