算法训练营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

}

相关推荐
地平线开发者11 小时前
【模型轻量化专题】衡量模型轻量性的指标
算法
学习星球14 小时前
OFDM技术精讲:正交性推导、循环前缀原理与80行Python链路仿真(附实测数据)
算法·面试·前端框架
西瓜太郎49917 小时前
从请求到上游:实现一条可观测的多模型调用链
go
newerp19 小时前
Golang 切片底层结构
后端·程序员·go
alphaTao20 小时前
LeetCode 每日一题 2026/8/24-2026/8/30
python·算法·leetcode
Interview Aid11221 小时前
TikTok OA 四题分享|半小时内 AC,题目基本都是实现题
java·开发语言·算法·面试·职场和发展
顶点多余1 天前
那些在算法中适合巩固的知识点---1
java·前端·算法
罗西的思考1 天前
【Agentic RL / 强化学习框架】Molt 设计解读
人工智能·算法·机器学习
hahaha60161 天前
HLS高层次综合设计技巧--C++类和模板
图像处理·人工智能·算法·计算机视觉
多弗朗皮卡丘1 天前
算法详解4:买卖股票的最佳时机系列(上)
算法