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

}

相关推荐
ly-272532 分钟前
IEEE PDF eXpress终稿检测踩坑记录:PDF图片字体未嵌入与LaTeX参考文献编译异常解决方法
服务器·人工智能·算法
代码不停10 分钟前
子序列问题
java·算法
黎阳之光26 分钟前
AI黑光相机|赋能低空全域感知,筑牢低空经济全天候视觉防线
人工智能·物联网·算法·安全·数字孪生
手写码匠34 分钟前
华为云Flexus+DeepSeek征文|DeepSeek R1 推理优化实战:让复杂任务的回答又快又稳
人工智能·深度学习·算法·aigc
Cabbage_acmer34 分钟前
cf训练-gpt
算法
wenyq739 分钟前
LeetCode 438. Find All Anagrams in a String
算法·leetcode
LB211240 分钟前
力扣102 198 70 55
数据结构·算法·leetcode
天天喝旺仔1 小时前
gRPC 流式通信实战:从一元调用到双向流,吃透四种 RPC 模式(Go 版)
分布式·http·微服务·rpc·go
鹿角片ljp1 小时前
LeetCode 42:接雨水|前后最大值DP
算法·leetcode·动态规划