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

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

文章目录

思路

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

在这里插入图片描述

复杂度

时间复杂度: 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;
	}
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-01 09:00:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-01 09:00:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-01 09:00:03       87 阅读
  4. Python语言-面向对象

    2024-02-01 09:00:03       96 阅读

热门阅读

  1. sql注入之字符型注入

    2024-02-01 09:00:03       39 阅读
  2. kylin启动memcached缓存

    2024-02-01 09:00:03       51 阅读
  3. 倒计时68天

    2024-02-01 09:00:03       65 阅读
  4. Django如何调用机器学习模型进行预测

    2024-02-01 09:00:03       51 阅读
  5. linux系统ansible工具中的剧本playbook基础内容

    2024-02-01 09:00:03       46 阅读
  6. vim 编辑器 查找和替换文本 命令

    2024-02-01 09:00:03       49 阅读
  7. 5种改进生产 Web 应用服务器设置的方法

    2024-02-01 09:00:03       51 阅读
  8. 如何让Go程序以后台进程或daemon方式运行

    2024-02-01 09:00:03       68 阅读
  9. Python Django

    2024-02-01 09:00:03       52 阅读