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

LeetCode 3101. 交替子数组计数

3101. 交替子数组计数 - 力扣(LeetCode)

【解析】以 0 1 0 1 为🌰, 按照左端点来算的话

1. 以第一个 0 为左端点:0、0 1、 0 1 0、 0 1 0 1

2. 以第二个 1 为左端点:1、1 0、 1 0 1

3. 以第三个 0 为左端点:0、 0 1

4. 以第四个 1 为左端点:1

我们可以发现其实是 4 + 3 + 2 + 1,也就是 n * (n + 1) / 2

class Solution {
    public long countAlternatingSubarrays(int[] nums) {
        long res = 0, t = 1;
        int n = nums.length, pre = nums[0];
        for (int i = 1; i < n; i++) {
            if (nums[i] != pre) {
                t++;
            } else {
                System.out.println(t);
                res += (t + 1) * t / 2;
                t = 1;
            }
            pre = nums[i];
        }
        res += (t + 1) * t / 2;
        return res;
    }
}


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

相关文章:

  • 数据结构C语言描述5(图文结合)--队列,数组、链式、优先队列的实现
  • Android --- Kotlin,Fragment 怎么使用 ObserveForever 监听 Livedata
  • Microsoft Excel如何插入多行
  • shell中的EOF,字符块
  • 2024年第15届蓝桥杯C/C++组蓝桥杯JAVA实现
  • webrtc支持h265
  • ubuntu+ROS推视频流至网络
  • 源码分析Openlayers默认键盘交互实现
  • 记录pbootcms提示:登录失败:表单提交校验失败,请刷新后重试的解决办法
  • ATTCK红队评估实战靶场(二)
  • 可迭代(Iterable)对象与对应的迭代器(Iterator)对象
  • SQL常见面试题(四)
  • Zemax孔径类型
  • 模型输出可保存为数据集、支持配置社区活动作为课程作业|ModelWhale 版本更新
  • 说说 Redis 常用命令
  • 多线程(2)线程创建的两种方法
  • SNMPv3 项目实例
  • python的字体如何调整
  • Unity类银河战士恶魔城学习总结(P149 Screen Fade淡入淡出菜单)
  • 【安全 - openssl 生成密钥对和CSR】
  • FCBP 认证考试要点摘要
  • sin函数拟合
  • 设计模式之 备忘录模式
  • 使用Kamailio实现VoIP通话流程详解
  • 【Java 学习】面向程序的三大特性:封装、继承、多态
  • XSS--跨站脚本攻击