Home
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • JavaSE
  • JVM
  • JUC
  • Netty
  • CPP
  • QT
  • UE
  • Go
  • Gin
  • Gorm
  • HTML
  • CSS
  • JavaScript
  • vue2
  • TypeScript
  • vue3
  • react
  • Spring
  • SpringMVC
  • Mybatis
  • SpringBoot
  • SpringSecurity
  • SpringCloud
  • Mysql
  • Redis
  • 消息中间件
  • RPC
  • 分布式锁
  • 分布式事务
  • 个人博客
  • 弹幕视频平台
  • API网关
  • 售票系统
  • 消息推送平台
  • SaaS短链接系统
  • Linux
  • Docker
  • Git
GitHub (opens new window)
Home
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • JavaSE
  • JVM
  • JUC
  • Netty
  • CPP
  • QT
  • UE
  • Go
  • Gin
  • Gorm
  • HTML
  • CSS
  • JavaScript
  • vue2
  • TypeScript
  • vue3
  • react
  • Spring
  • SpringMVC
  • Mybatis
  • SpringBoot
  • SpringSecurity
  • SpringCloud
  • Mysql
  • Redis
  • 消息中间件
  • RPC
  • 分布式锁
  • 分布式事务
  • 个人博客
  • 弹幕视频平台
  • API网关
  • 售票系统
  • 消息推送平台
  • SaaS短链接系统
  • Linux
  • Docker
  • Git
GitHub (opens new window)
  • 哈希表

  • 双指针

    • 同向双指针
    • 双向双指针
    • 滑动窗口
    • 分组循环
      • 2765. 最长交替子序列
      • 228. 汇总区间
      • 1446. 连续字符
  • 数组

  • 字符串

  • 链表

  • 树

  • 回溯

  • 动态规划

  • 图

  • 二分查找

  • 贪心

  • 栈&队列

  • 堆

  • 位运算

  • 数据结构设计

  • rui的精选题单

  • 笔试真题

  • LeetCode周赛

  • ACM模式输入输出
  • 数学

  • 数据结构与算法
  • 双指针
Nreal
2024-01-05
目录

分组循环

# 2765. 最长交替子序列 (opens new window)

见灵*直播讲解;


1

# 228. 汇总区间 (opens new window)

class Solution {
    public List<String> summaryRanges(int[] nums) {
        List<String> res = new ArrayList<>();
        int start = 0;
        for(int i=0;i<nums.length;i++){
            if(i+1==nums.length || nums[i+1]!=nums[i]+1){
                if(start==i)
                    res.add(String.valueOf(nums[start]));
                else
                    res.add(String.format("%d->%d",nums[start],nums[i]));
                start = i+1;
            }
        }
        return res;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 1446. 连续字符 (opens new window)

class Solution {
    public int maxPower(String s) {
        int n=s.length();
        int i=1,ans=1;
        while(i<n){
            if(s.charAt(i)!=s.charAt(i-1)){
                i++;
                continue;
            }
            int start = i;
            i++;
            while(i<n && s.charAt(i)==s.charAt(i-1)){
                i++;
            }
            ans = Math.max(ans,i-start+1);
        }
        return ans;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
滑动窗口
一维模拟

← 滑动窗口 一维模拟→

Theme by Vdoing | Copyright © 2021-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式