763. 划分字母区间

it2026-04-22  4

LeetCode: 763. 划分字母区间

一开始没有头绪, 仔细想想,这题是需要找到某个相同字符的最大区间范围

那么就可以通过记录该区间的最初位置 了 left、该区间某个相同字符出现的最大下标mx。

利用 string.lastIndexOf() 函数

遍历统计 >> 贪心、双指针

遍历统计

public List<Integer> partitionLabels(String S) { int left = 0; int mx = 0; List<Integer> list = new ArrayList<>(); for (int i = 0; i < S.length(); i++) { int index = S.lastIndexOf(S.charAt(i)); if(mx == i && index == i) { // 单个字符 包括上了 list.add(mx - left + 1); left = i + 1; mx = left; continue ; } if(index > mx) mx = index; // 单个字符 // if(index == i && mx == index){ // list.add(1); // continue ; // } } return list; }

最新回复(0)