zoukankan      html  css  js  c++  java
  • 合并区间

    package main
    
    import "fmt"
    
    func merge(intervals [][]int) [][]int {
    	var arr [][]int
    	//1.先把重复的区间找出来,拼接成arr2,加到arr中
    	//2.把原来的重复区间删除掉
    	for i := 0; i < len(intervals)-1; i++ {
    		var arr2 []int
    		if intervals[i][1] >= intervals[i+1][0] {
    			arr2 = append(arr2, intervals[i][0])
    			arr2 = append(arr2, intervals[i+1][1])
    			arr = append(arr, arr2)
    			fmt.Println("arr2", arr2)
    			//arr := [][]int{{1, 2}, {3, 6}, {5, 10}, {11, 18}}
    			intervals = append(intervals[:i], intervals[i+2:]...)
    			fmt.Println("inter", intervals)
    		}
    
    	}
    
    	//3.把没有重复的加到arr
    	//4.把原来没有重复的区间删除掉
    	for len(intervals) > 1 {
    		for i := 0; i < len(intervals)-1; i++ {
    			if intervals[i][1] < intervals[i+1][0] {
    				arr = append(arr, intervals[i])
    				arr = append(arr, intervals[i+1])
    				intervals = append(intervals[:i], intervals[i+2:]...)
    				fmt.Println("intervals", intervals)
    			}
    
    		}
    	}
    
    	if len(intervals) == 1 {
    		arr = append(arr, intervals[0])
    	}
    
    	return arr
    }
    
    func main() {
    	/*
    	给出一个区间的集合,请合并所有重叠的区间。
    
    	示例 1:
    	输入: [[1,3],[2,6],[8,10],[15,18]]
    	输出: [[1,6],[8,10],[15,18]]
    	解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
    
    	示例 2:
    	输入: [[1,4],[4,5]]
    	输出: [[1,5]]
    	解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。
    	*/
    	arr := [][]int{{1, 2}, {3, 6}, {5, 10}, {11, 18}, {100, 1000}}
    	res := merge(arr)
    	fmt.Println(res)
    	for i := 0; i < len(res)-1; i++ {
    		if res[i][1] > res[i+1][0] {
    			res[i], res[i+1] = res[i+1], res[i]
    		}
    	}
    	fmt.Println("排序后的", res) //排序后的 [[1 2] [3 10] [11 18] [100 1000]]
    	
    	//如果有多个连续的区间,这个代码不适合
    }
    

      

  • 相关阅读:
    Windbg对过滤驱动DriverEntry函数下断点技巧
    SSDT Hook实现简单的进程隐藏和保护【转载】
    驱动调试技巧:调试信息输出控制宏
    WinAPI【远程注入】三种注入方案【转】
    MFC 中控件的启用与禁用
    DLL注入之SetWindowsHookEx
    DLL注入之注册表
    RootKit学习之 IDT Hook
    Win7下判断当前进程是否以管理员身份运行
    Dalvik和ART
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12353340.html
Copyright © 2011-2022 走看看