当前位置:   article > 正文

Golang | Leetcode Golang题解之第57题插入区间

Golang | Leetcode Golang题解之第57题插入区间

题目:

题解:

  1. func insert(intervals [][]int, newInterval []int) (ans [][]int) {
  2. left, right := newInterval[0], newInterval[1]
  3. merged := false
  4. for _, interval := range intervals {
  5. if interval[0] > right {
  6. // 在插入区间的右侧且无交集
  7. if !merged {
  8. ans = append(ans, []int{left, right})
  9. merged = true
  10. }
  11. ans = append(ans, interval)
  12. } else if interval[1] < left {
  13. // 在插入区间的左侧且无交集
  14. ans = append(ans, interval)
  15. } else {
  16. // 与插入区间有交集,计算它们的并集
  17. left = min(left, interval[0])
  18. right = max(right, interval[1])
  19. }
  20. }
  21. if !merged {
  22. ans = append(ans, []int{left, right})
  23. }
  24. return
  25. }
  26. func min(a, b int) int {
  27. if a < b {
  28. return a
  29. }
  30. return b
  31. }
  32. func max(a, b int) int {
  33. if a > b {
  34. return a
  35. }
  36. return b
  37. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/535706
推荐阅读
相关标签
  

闽ICP备14008679号