当前位置: 首页 > news >正文

2025年- H78-Lc186--763.划分字符串区间(贪心)--Java版

1.题目描述

在这里插入图片描述

2.思路

(1)存储子串的索引和该字符出现的最远位置

在这里插入图片描述

3.代码实现

class Solution {public List<Integer> partitionLabels(String s) {//初始化一个字母索引的数组,总共26个字母int[] letterIndex=new int[26];//把每个字母出现的最远下标进行标记。用assii码计算for(int i=0;i<s.length();i++){//Java 中字符串 s 不能像数组 s[i] 那样访问字符,应该使用 s.charAt(i)。letterIndex[s.charAt(i)-'a']=i;//例子:比如可以得到每个a的索引,最终最远的a会将起始a覆盖。}int n=s.length();//遍历字符串,寻找区间的分割点List<Integer> result=new ArrayList<>();//定义左右指针int left=0;int right=0;for(int i=0;i<s.length();i++){//不断更新右边界,取一个最大值right=Math.max(right,letterIndex[s.charAt(i)-'a']);//当我们遍历到最远处的时候if(i==right){//result数组里面存放区间的长度result.add(right-left+1);//更新left指针,找下一个区间,也就是right边界右邻居left=i+1;}}//最后返回结果数组。return result; }
}
http://www.xdnf.cn/news/938971.html

相关文章:

  • 分类数据集 - 场景分类数据集下载
  • Langchian - 实现文本分类实际应用
  • 【Java学习笔记】System类
  • vite ts 配置使用@ 允许js
  • 基于SpringBoot实现的大创管理系统设计与实现【源码+文档】
  • 「Java基本语法」标识符、关键字与常量
  • Java编程之组合模式
  • Python项目的构建和部署方案推荐
  • remote display server is not supported (e.g. Wayland)
  • CentOS-7 通过 NFS 实现服务器之间的文件共享
  • 深入了解NIO的优化实现原理
  • 二叉树-226.翻转链表-力扣(LeetCode)
  • Python学习(7) ----- Python起源
  • cookie session和token的区别
  • 突破同步训练瓶颈!AReaL如何实现大规模异步强化学习系统的高效语言推理?
  • 树的基本概念与操作:构建数据结构的层级世界
  • leetcode2368. 受限条件下可到达节点的数目-medium
  • JDK8新特性之Steam流
  • 手动实现C#ArrayList容器
  • Boost ASIO 库深入学习(2)
  • Redis持久化策略:RDB与AOF详解
  • shell脚本 --案例实操
  • cognee,有望替代 RAG, 简单了解一下
  • 服务网格技术深度解析:Istio vs Linkerd的选型对比
  • 【Self-Ask with Search Agent机制概述】利用TavilyAnswer实现搜索代理
  • 【文件传输脚本】
  • XSS攻击防御全指南:核心防护技巧
  • UVM的断言assert详谈
  • 【GESP真题解析】第 17 集 GESP 三级 2024 年 12 月编程题 2:打印数字
  • Linux 基础IO(下)