数组算法(二):交替子数组计数

1. 官方描述

给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况,我们称这样的子数组为 交替子数组 

返回数组 nums 中交替子数组的数量。

示例 1:

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

输出: 5

解释:

以下子数组是交替子数组:[0] 、[1] 、[1] 、[1] 以及 [0,1] 。

示例 2:

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

输出: 10

解释:

数组的每个子数组都是交替子数组。可以统计在内的子数组共有 10 个。

提示:

  • 1 <= nums.length <= 105
  • nums[i] 不是 0 就是 1 。

2. 个人分析

可能大部分人一开始看题意不是很容易理解,我们接下来画图表示:

上图是一个数组,内部数据包含{1,0,0,1,0,1,1},第一个数与第二个数构成了一个子数组:{1,0},程序读取到第三个值时,它与第二个值是一样的,那么第三个值为一个单的子数组,以此类推,从第三到第六的数值构成了子数组{0,1,0,1},最后一个数值构成了一个数组{1}.

那么由上面信息,我们可以得出总数=(1+2)+(1+2+3+4)+1=14

3. 代码实现

class Solution {
public:long long countAlternatingSubarrays(vector<int>& nums) {long long sum = 1 , temp = 1;int i = 0;while (i < nums.size()-1){if (nums[i] == nums[++i]){sum += 1;temp = 1;}else{temp++;sum += temp;}}return sum;}
};

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

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

相关文章

项目一单机安装基于LNMP结构的WordPress网站 web与数据库服务分离

网站的类型&#xff1a; Jave:LNMT PHP:LNMP Python: LNMU 项目部署&#xff1a; 1.项目的类型&#xff08;项目的开发语言&#xff09; 2.项目运营平台的技术选择 3.尽快让项目运行起来 all in one部署 4. 架构的优化 配置ansible管理环境 配置nginx 配置数据库服务…

ubuntu系统如何查看进程使用网络带宽的情况

在Ubuntu系统中&#xff0c;你可以使用几种方法来查看哪些进程正在使用上传&#xff08;上传流量&#xff09;资源。这里有几个常用的方法&#xff1a; 1. 使用iftop iftop 是一个实时监控网络带宽使用情况的工具&#xff0c;它可以显示哪些连接正在使用上传和下载带宽。但请…

leetcode:编程基础0到1

文章目录 交替合并字符串str.length();StringBuilder类型 ,toString()append() &#xff0c;chatAt()题目描述 交替合并字符串 str.length(); 输出字符串str的长度 StringBuilder类型 ,toString() append() &#xff0c;chatAt() 题目描述 class Solution {public String …

Linux tputs

tputs(char *const str, int affcnt, int (*putfunc)(int)) 设置终端输出显示参数 tputs(tmp, 1, putchar) 49c1: 48 8d 3d 44 17 00 00 lea 0x1744(%rip),%rdi # 610c <_IO_stdin_usedBase0x10c> 49c8: 31 f6 xor %esi…

华为的MDE岗位的全称是“Module Design Engineer“,即模块设计师

华为的MDE岗位的全称是"Module Design Engineer"&#xff0c;即模块设计师。以下是MDE岗位的主要角色认知和职责&#xff1a; ### 角色认知&#xff1a; 1. **系统设计的传承人和模块设计的责任者**&#xff1a;MDE负责参与系统设计&#xff0c;传承系统设计理念&am…

python获取文件列表按照文件修改时间进行排序,默认按照文件名时间戳排序

python获取文件列表按照文件修改时间进行排序,默认按照文件名时间戳排序 1、流程 1、获取文件绝对路径下的所有文件 2、通过os.path.getmtime获取每个文件的修改时间,并与文件组成元组,方便后续排序 3、默认按照时间戳降序,否则按照按修改时间排序文件列表(从最晚到最早)…

开个技术外挂|用技术轻松实现GPU显卡冷却风扇噪声控制

GPU显卡冷却风扇噪声分析 游戏玩家可能有这样的体验&#xff1a;当显卡卖力工作的时候&#xff0c;明显感觉到从机箱传来的噪声变大了。这是因为系统监测到芯片有过热风险&#xff0c;从而自动提升了冷却风扇的转速。 如下图所示&#xff0c;当GPU显卡处于 20C 时&#xff0c;风…

如何在Perl中进行条件判断:掌握Perl条件语句的艺术

如何在Perl中进行条件判断&#xff1a;掌握Perl条件语句的艺术 Perl是一种功能强大的脚本语言&#xff0c;它在文本处理和系统管理任务中尤为出色。在Perl编程中&#xff0c;条件判断是控制程序流程的重要手段。本文将详细探讨如何在Perl中使用条件判断语句&#xff0c;包括if…

Markdown介绍

Markdown是一种轻量级标记语言&#xff0c;旨在使用纯文本格式进行内容编写&#xff0c;并最终转化为格式化的文档。由约翰格鲁伯&#xff08;John Gruber&#xff09;和亚伦斯沃茨&#xff08;Aaron Swartz&#xff09;在2004年创建&#xff0c;Markdown非常适合撰写文档、笔记…

WIN32核心编程 - 文件系统 - 文件搜索和遍历 - 目录操作 - 路径解析

公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 文件搜索和遍历 搜索文件和目录 递归遍历目录 定位指定文件 示例代码 目录操作 绝对路径和相对路径 文件搜索和遍历 搜索文件和目录 在Windows中&#xff0c;您可以使用FindFirstFile和…

212.贪心算法:跳跃游戏(力扣)

代码解决 class Solution { public:bool canJump(vector<int>& nums) {int cover 0; // 初始化覆盖范围if (nums.size() 1) return true; // 如果数组长度为1&#xff0c;直接返回 true// 遍历数组&#xff0c;直到当前覆盖范围for (int i 0; i < cover; i…

未来已来:为TARS机器人搭载文心一言AI大模型的完整开发流程

集成百度文心一言&#xff08;Ernie Bot&#xff09;的步骤类似于集成ChatGPT。下面是集成文心一言的大模型的详细开发思路&#xff1a; 1. 确定项目需求和目标 明确项目需求和目标&#xff0c;包括&#xff1a; 机器人需要具备的功能需要处理的主要任务和场景用户群体系统性…

【易捷海购-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

java —— Servlet 技术

Servlet 是在 java 中嵌套 html 的一项技术&#xff0c;这点与 JSP 刚好相反&#xff0c;JSP 是在 html 中嵌套 java 的一项技术。 一、Servlet &#xff08;一&#xff09;前言 1、Servlet 事实上也是一个类&#xff0c;其添加方式与类的添加方式一样&#xff1b; 2、Serv…

数据库文件,根据表中的具体列名称查询

此查询以列属性为整型为依据&#xff0c;也可根据字符串类型进行相应的函数接口修改 #include <stdio.h> #include <sqlite3.h>int main() {sqlite3 *db;int rc;const char *db_path "test.db"; // 数据库文件路径// 打开数据库rc sqlite3_open(db_pa…

【活动行】参与上海两场线下活动,教育生态行业赛总决赛活动和WAIC人工智能大会活动 - 上海活动总结

目录 背景决赛最后一公里领域范围 决赛作品AI智教相机辅导老师Copilot辅导老师Copilot雅思写作竞技场 优秀作品总结 背景 决赛 百度发起的千帆杯教育生态行业赛于2024年7月4日进行线下决赛&#xff0c;博主虽然没能进入决赛&#xff0c;但也非常荣幸能够以嘉宾身份到现场给进…

Rust: 关于Pin以及move前后分析

一、Pin由来 在Rust中&#xff0c;自引用结构会导致&#xff0c;此变量被move后&#xff0c;其内部自引用的指针指向不改变&#xff0c;从而存在安全隐患 。 注意&#xff1a;Pin是一个struct。UnPin和!UnPin是trait。这个要分清。 二、方案 对自引用结构&#xff0c;如何增…

【VUE基础】VUE3第四节—核心语法之computed、watch、watcheffect

computed 接受一个 getter 函数&#xff0c;返回一个只读的响应式 ref 对象。该 ref 通过 .value 暴露 getter 函数的返回值。它也可以接受一个带有 get 和 set 函数的对象来创建一个可写的 ref 对象。 创建一个只读的计算属性 ref&#xff1a; <template><div cl…

C语言 输出10行杨辉三角形

输出以下的杨辉三角形(要求输出10行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 … #include <stdio.h>int main() {int triangle[10][10] {0};for (int i 0; i < 10; i) {triangle[i][0] 1;triangle[i][i] 1;for (int j 1; j < i…

<PLC><汇川><串口485>汇川Eazy521系列PLC与特域水冷机进行485通讯的设置

前言 本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。 PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。 除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如…