R9-贪心算法篇
印象题:
我记得,先用字典记录每个字母出现的下标,取出首个字母的下标j,然后我们for循环遍历一次,如果该下标大于 j,就要变化新的首字母,如果相等就说明一个字符串完成,如果小于就继续遍历。
class Solution {public List<Integer> partitionLabels(String s) {List<Integer> ret=new ArrayList<>();int [] dict=new int[26];for(int i=0;i<s.length();i++){dict[s.charAt(i)-'a']=i;}int num=0;int j=dict[s.charAt(0)-'a'];for (int i=0;i<s.length();i++){num++;if(dict[s.charAt(i)-'a']>j){j=dict[s.charAt(i)-'a'];}if(i==j){ret.add(num);num=0;}}return ret;}
}
ps: