题解 | #分品种#

分品种

https://www.nowcoder.com/practice/9af4e93b04484df79d4cc7a863343b0b

题目考察的知识点是:

哈希表,贪心

题目解答方法的文字分析:

由于需要分割出更多的组,我们先预处理出每个字母出现的最后一个位置。之后我们指定一个开头,遍历从开头到当前字母的最后的位置(必须包含的位置),随着我们向后遍历会逐渐遇到新的字母,会把至少应该包含的末尾向后移动,直到我们遍历到末尾之后,就可以形成一个分割

本题解析所用的编程语言:

java语言。

完整且正确的编程代码:

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return int整型一维数组
     */
    public int[] partitionLabels (String s) {
        // write code here
        int [] result = new int[26];
        for (int i = 0; i < s.length(); i++) {
            result[s.charAt(i) - 'a'] = i;
        }
        ArrayList<Integer> arrayList = new ArrayList<>();
        int start = 0, end = 0;
        for (int i = 0; i < s.length(); i++) {
            end = Math.max(end, result[s.charAt(i) - 'a']);
            if (i == end) {
                arrayList.add(end - start + 1);
                start = end + 1;
            }
        }
        int [] arr = new int[arrayList.size()];
        for (int i = 0; i < arrayList.size(); i++) {
            arr[i] = arrayList.get(i);
        }
        return arr;
    }
}

#题解#
全部评论

相关推荐

03-01 19:30
已编辑
南京大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
正在热议
更多
# 大厂实习和小厂实习最大的区别是什么? #
2268次浏览 20人参与
# 参加完秋招的机械人,还参加春招吗? #
119926次浏览 760人参与
# 厦门银行科技岗值不值得投 #
9850次浏览 249人参与
# 牛友の3月总结 #
1790次浏览 24人参与
# 这些公司卡简历很严格 #
95208次浏览 417人参与
# 面试被问到不会的问题,你怎么应对? #
675次浏览 8人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
18769次浏览 302人参与
# 拼多多工作体验 #
52650次浏览 341人参与
# 研究所VS国企,该如何选 #
259038次浏览 2013人参与
# 通信硬件知识分享 #
48134次浏览 538人参与
# 找AI工作可以去哪些公司? #
16949次浏览 741人参与
# 从事AI岗需要掌握哪些技术栈? #
14818次浏览 836人参与
# 你做过最难的笔试是哪家公司 #
47210次浏览 746人参与
# 实习最想跑路的瞬间 #
130950次浏览 739人参与
# 金三银四,你的春招进行到哪个阶段了? #
24556次浏览 297人参与
# 说说你知道的学历厂 #
391003次浏览 1379人参与
# AI面会问哪些问题? #
36045次浏览 1071人参与
# 想给25届机械人的秋招建议 #
47737次浏览 251人参与
# 机械人避雷的岗位/公司 #
62887次浏览 395人参与
# 大厂无回复,继续等待还是奔赴小厂 #
343360次浏览 1988人参与
# 滴!实习打卡 #
814703次浏览 6858人参与
# 我心目中的理想工作是这样的 #
100873次浏览 907人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务