每日一题 21.1.5 LeetCode 830. 较大分组的位置 java题解
程序员文章站
2022-04-14 14:00:59
题目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/
代码
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)。我们只需要常数的空间来保存若干变量,注意返回值不计入空间复杂度。
结果
本文地址:https://blog.csdn.net/weixin_42970433/article/details/112213070