leetcode 763.划分字母区间

ops/2024/10/29 23:06:14/

思路:贪心

其实这个题目并不难,只需要分析出来每一个字母最后出现的坐标就行。

我们根据字母最后出现的坐标数来判断最后划分的字符串。

比如说,字符串前面有abc,这三个字母最后出现的地方就是这个位置,那么我们直接划分就行;但是如果说其中一个字母的最后坐标在远处,我们就需要以这个最远的坐标为主划分字符串。

所以,在我们遍历的时候,需要每遍历一次字符串,就需要更新一次最远坐标。

这里用了双指针的做法进行解答。

class Solution {public List<Integer> partitionLabels(String s) {List<Integer>list=new ArrayList<>();Map<Character,Integer>m=new HashMap<>();if(s.length()==0)return list;for(int i=s.length()-1;i>=0;i--){m.put(s.charAt(i),m.getOrDefault(s.charAt(i),i));}int l=0;int r=0;int index=m.get(s.charAt(l));while(r<s.length()){if(r<s.length()-1&&r==index){list.add(r-l+1);l=r+1;r=l;}else{r++;}if(r<s.length())index=Math.max(index,m.get(s.charAt(r)));}list.add(r-l);return list;}
}


http://www.ppmy.cn/ops/129432.html

相关文章

初识Vue

一、Vue介绍 Vue(读音/vjuː/&#xff0c;类似于view) 是一套用于构建前后端分离的框架。刚开始是由国内优秀选手尤雨溪开发出来的&#xff0c;目前是全球“最”流行的前端框架。使用vue开发网页很简单&#xff0c;并且技术生态环境完善&#xff0c;社区活跃&#xff0c;是前后…

1.机器人抓取与操作介绍-深蓝学院

介绍 操作任务 操作 • Insertion • Pushing and sliding • 其它操作任务 抓取 • 两指&#xff08;平行夹爪&#xff09;抓取 • 灵巧手抓取 7轴 Franka 对应人的手臂 6轴 UR构型去掉一个自由度 课程大纲 Robotic Manipulation 操作 • Robotic manipulation refers…

NLTK无法下载?

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 nltk无法下载怎么办&#xff1f;什么是NLTK&#xff1f;为什么要用NLTK&#xff1f;如何下载&#xff1f; nltk无法下载怎么办&#xff1f; 什么是NLTK&#xff1f; NLTK是学习自然…

Git_GitHub

Git_GitHub 创建远程仓库 远程仓库操作 创建远程仓库别名 基本语法 案例实操 推送本地分支到远程仓库 基本语法 案例实操 拉取代码 基本语法 案例实操 克隆远程仓库到本地 基本语法 案例实操 邀请加入团队 选择邀请合作者 填入想要合作的人 复制邀请函 接受邀…

w外链如何跳转微信小程序

要创建外链跳转微信小程序&#xff0c;主要有以下几种方法&#xff1a; 使用第三方工具生成跳转链接&#xff1a; 注册并登录第三方外链平台&#xff1a;例如 “W外链” 等工具。前往该平台的官方网站&#xff0c;使用手机号、邮箱等方式进行注册并登录账号。选择创建小程序外…

关于k8s的cilium网络插件踩坑记

cilium状态为CrashLoopBackOff coredns状态为Pending 使用的系统镜像为centos7.6 内核是3.*** 然后用的工具来部署集群&#xff0c;开始以为是调度啥的&#xff0c;然后单节点试也出现CrashLoopBackOff、Pending等状态&#xff0c;更新内核在到5 集群自己就好了 注意&am…

基于ESP32的RGB便携式视频灯

基于ESP32的RGB便携式视频灯 拥有一套能够满足个人需求的灯光设备至关重要。市面上的RGB视频灯虽然功能强大&#xff0c;但往往价格不菲。我制作的这款灯是20W RGB便携式视频灯不仅满足了我的需求&#xff0c;而且成本仅为市售产品的三分之一。接下来&#xff0c;我将详细介绍这…

基于SSM儿童众筹救助系统设计与实现

前言 儿童众筹救助系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c;体验高科技时代带给人们的方便&#xff0c;同时也能让用户体会到与以往常规产品不同的体验风格。 此系统设计主要采用的是JAVA语言来进行开…