|
@@ -0,0 +1,27 @@
|
|
|
+type array [][]int
|
|
|
+
|
|
|
+func (a array) Len() int { return len(a) }
|
|
|
+func (a array) Less(i, j int) bool { return a[i][0] < a[j][0] }
|
|
|
+func (a array) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
|
+
|
|
|
+type none struct{}
|
|
|
+
|
|
|
+func smallestRange(nums [][]int) []int {
|
|
|
+ var a array
|
|
|
+ set := make(map[int]none)
|
|
|
+ for i := range nums {
|
|
|
+ for _, num := range nums[i] {
|
|
|
+ a = append(a, []int{num, i})
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sort.Sort(a)
|
|
|
+ l, r, k, n := 0, -1, len(nums), len(a)
|
|
|
+ min := math.MaxInt32
|
|
|
+ res := make([]int, 2)
|
|
|
+ for r < n {
|
|
|
+ for len(set) != k {
|
|
|
+ r++
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|