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

力扣hot100 划分字母区间 贪心 思维 满注释版

Problem: 763. 划分字母区间
在这里插入图片描述

文章目录

  • 思路
  • 复杂度
  • Code

思路

👨‍🏫 代码随想录
在这里插入图片描述

在这里插入图片描述

复杂度

时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( n ) O(n) O(n)

Code

class Solution {public List<Integer> partitionLabels(String s){// 创建哈希表来存储我们记录到字符串中的元素的最后下标int[] right = new int[26];int n = s.length();for (int i = 0; i < n; i++)right[s.charAt(i) - 'a'] = i;ArrayList<Integer> res = new ArrayList<>();int l = 0;// 当前段的起点int r = 0;// 当前段的终点for (int i = 0; i < n; i++){
//			找到出现最远的字符,得到它的下标r = Math.max(r, right[s.charAt(i) - 'a']);if (i == r){res.add(r - l + 1);l = i + 1;//开启下一段的起点}}return res;}
}
http://www.lryc.cn/news/291488.html

相关文章:

  • linux下使用swap分区扩展内存
  • 实现sleep函数
  • 汽车销量可视化分析
  • 代码随想录算法训练营DAY8 | 字符串(1)
  • 如何更改Outlook阅读邮件时的默认字体?
  • 【C++基础入门】三、运算符(算术运算符、赋值运算符、比较运算符、逻辑运算符)
  • ES7.17由于IP变化导致的故障及恢复
  • uniapp H5 touchstart touchend 切换背景会失效,或者没用
  • 【word visio绘图】关闭visio两线交叉的跳线(跨线)
  • meson、ninja编译dpdk
  • diff命令详解
  • Backtrader 文档学习- Broker - Slippage
  • 三子棋游戏小课堂
  • golang开源的可嵌入应用程序高性能的MQTT服务
  • uniapp微信小程序-请求二次封装(直接可用)
  • UE4 C++ 结构体
  • 软件工程知识梳理0-概述
  • 贪吃蛇---C语言---详解
  • Airflow原理浅析
  • uniapp 使用canvas 画海报,有手粘贴即可用
  • Vite+Vue3+TS 引入使用Cesium.js
  • Cocos creator 动作系统
  • 对Spring当中AOP的理解
  • 【Vue】2-8、Axios 网络请求
  • Vue中嵌入原生HTML页面
  • streampark+flink一键整库或多表同步mysql到doris实战
  • Vim实战:使用 Vim实现图像分类任务(二)
  • 学习MySQL ENUM数据类型
  • 88.合并两个有序数组
  • python查询xml类别