算法训练营day31,贪心算法5

package main

import (

"fmt"

"sort"

)

//435. 无重叠区间

func eraseOverlapIntervals(intervals \[\]\[\]int) int {

if len(intervals) == 0 {

return 0

}

count := 0 //移除数量

//按第一位从小到大排序

sort.Slice(intervals, func(i, j int) bool {

return intervalsi0 < intervalsj0

})

for i := 1; i < len(intervals); i++ {

//如果当前左边界比前一个右边界比小,说明重叠需要删除

if intervalsi0 < intervalsi-11 {

count++

if intervalsi1 > intervalsi-11 {

intervalsi1 = intervalsi-11

}

}

}

return count

}

//763. 划分字母区间

func partitionLabels(s string) \[\]int {

m1 := make(mapbyteint)

for i := 0; i < len(s); i++ {

m1s\[i] = i

}

result := make(\[\]int, 0)

left, right := 0, 0

for i := 0; i < len(s); i++ {

if m1s\[i] > right {

right = m1s\[i]

}

if i == right {

result = append(result, right-left+1)

left = i + 1

}

}

return result

}

//56. 合并区间

func merge(intervals \[\]\[\]int) \[\]\[\]int {

result := make(\[\]\[\]int, 0)

sort.Slice(intervals, func(i, j int) bool {

return intervalsi0 < intervalsj0

})

result = append(result, intervals0)

for i := 1; i < len(intervals); i++ {

//如果当前左边界比结果数组最后一个右边界比小,说明重叠

if intervalsi0 <= intervalsi-11 {

if resultlen(result)-11 < intervalsi1 {

resultlen(result)-11 = intervalsi1

}

} else {

result = append(result, intervalsi)

}

}

return result

}

相关推荐
203号居民29 分钟前
LeetCode hot 100 —41. 缺失的第一个正数
数据结构·算法·leetcode
专注仿真3 小时前
问答大模型技术方案算法实现-熵权法融合算法 + 交叉编码器重排算法
人工智能·python·算法·语言模型·问答大模型关键算法·熵权融合算法·交叉编码器重排算法
地平线开发者4 小时前
量化为什么会有损失:从量化误差到精度下降
算法
手写码匠4 小时前
华为云Flexus+DeepSeek征文|Dify 多 Agent 会话管理与上下文工程实战:让智能体“记住该记住的,忘掉该忘掉的“
人工智能·深度学习·算法·aigc
2401_862880824 小时前
数据结构 --- 栈
c语言·数据结构·算法
致Great5 小时前
Qwen3.8-27B 接入 DSH 全流程实测:写代码、跑长任务,都没问题
算法
Tisfy5 小时前
LeetCode 3471.找出最大的几近缺失整数:三种情况判断
算法·leetcode·题解·分类讨论
linux-hzh6 小时前
百日算法修炼 · Day 12
算法·深度优先
额额额对了6 小时前
数据结构:二叉树
c语言·数据结构·算法
iNeuOS工业互联网6 小时前
iNeuOS_Vision_视觉分析,增加SAM3模型对实例分割和目标检测AI自动标注图片样本功能
人工智能·算法·目标检测