博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小白学习[leetcode]之763划分字母区间(贪心算法)
阅读量:3897 次
发布时间:2019-05-23

本文共 815 字,大约阅读时间需要 2 分钟。

题目的链接在这里:

目录


题目大意

字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。

一、示意图

在这里插入图片描述

二、解题思路

java实现(贪心算法)

代码如下:

class Solution {
public List
partitionLabels(String S) {
//首先就是遍历字符号串,找到和起点相同的最后一个字母,查找这个区间里的字母最后的index是否超过 //区间,超出则更新区间,直到找到最大的index,那么index-i+1就是所求的区间长度,使用 //cache来存储每个字母最后出现的位置 if(S==null||S.length()==0){
return null; } List
res=new ArrayList<>(); int index,i,len=S.length(); //cache用来存最后的位置 int[]cache=new int[26]; //这里很妙 for(i=0;i
index){
index=cache[S.charAt(j)-'a']; } } //这里就进行对应的更新,index-i+1就是一组的内容大小 res.add(index-i+1); i=index+1; } return res; }}

在这里插入图片描述

转载地址:http://qifen.baihongyu.com/

你可能感兴趣的文章
【Java.Web】MVC —— 基于Filter Dispatcher的Model2 —— 示例
查看>>
【Java.Web】MVC —— Action的验证器 —— Validator
查看>>
【Java.Spring.MVC】使用Spring MVC构建Web应用程序
查看>>
【DB.PL/SQL】程序流程控制 —— 异常处理
查看>>
【Java.IO】I/O 【字节】【处理流】 - 之 - 【压缩流】 - ZipInputStream,ZipOutputStream
查看>>
【Java.JDBC/ORM】纯JDBC系统的开发随想
查看>>
【Unix/Linux】【系统】环境变量
查看>>
【Architecture】CPU-bound(计算密集型) 和I/O bound(I/O密集型)
查看>>
【MacOS】Mac 系统下类似于 apt-get 的软件包管理器 -- Homebrew
查看>>
为窗口添加鼠标HOVER和LEAVE事件
查看>>
VC小技巧20个
查看>>
MFC Feature Pack for Visual C++ 2008的BUG之一
查看>>
POJ - 2739 Sum of Consecutive Prime Numbers
查看>>
STL map映照容器(一)map创建、元素插入、元素删除和遍历访问
查看>>
Leetcode - 557反转字符串中的单词III
查看>>
Leetcode - 160相交链表
查看>>
Leetcode - 11盛最多水的容器
查看>>
Leetcode - 141环形链表
查看>>
Leetcode - 14最长公共前缀
查看>>
Leetcode - 7整数反转
查看>>