欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

每日一题 21.1.5 LeetCode 830. 较大分组的位置 java题解

程序员文章站 2022-07-10 18:20:51
题目https://leetcode-cn.com/problems/positions-of-large-groups/代码class Solution { public List> largeGroupPositions(String s) { ArrayList> res=new ArrayList<>(); int start=0,end...

题目

https://leetcode-cn.com/problems/positions-of-large-groups/
每日一题 21.1.5 LeetCode 830. 较大分组的位置 java题解

代码

class Solution {
    public List<List<Integer>> largeGroupPositions(String s) {
        ArrayList<List<Integer>> res=new ArrayList<>();
        int start=0,end=0;
        int len=s.length();
        for(int i=1;i<len;i++){
            char c=s.charAt(i);
            if(c!=s.charAt(start)){
                if((end-start)>=2){
                    ArrayList<Integer> list=new ArrayList<>();
                    list.add(start);
                    list.add(end);
                    res.add(list);
                }
                start=i;
                end=i;
            }
            else{
                end++;
            }
        }
        if(end==len-1&&(end-start)>=2){
            ArrayList<Integer> list=new ArrayList<>();
            list.add(start);
            list.add(end);
            res.add(list);
        }
        return res;
    }
}

复杂度

时间复杂度:O(n),其中 n 是字符串的长度。我们只需要遍历一次该数组。
空间复杂度:O(1)。我们只需要常数的空间来保存若干变量,注意返回值不计入空间复杂度。

结果

每日一题 21.1.5 LeetCode 830. 较大分组的位置 java题解

本文地址:https://blog.csdn.net/weixin_42970433/article/details/112213070