632.smallest-range.go 550 B

123456789101112131415161718192021222324252627
  1. type array [][]int
  2. func (a array) Len() int { return len(a) }
  3. func (a array) Less(i, j int) bool { return a[i][0] < a[j][0] }
  4. func (a array) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
  5. type none struct{}
  6. func smallestRange(nums [][]int) []int {
  7. var a array
  8. set := make(map[int]none)
  9. for i := range nums {
  10. for _, num := range nums[i] {
  11. a = append(a, []int{num, i})
  12. }
  13. }
  14. sort.Sort(a)
  15. l, r, k, n := 0, -1, len(nums), len(a)
  16. min := math.MaxInt32
  17. res := make([]int, 2)
  18. for r < n {
  19. for len(set) != k {
  20. r++
  21. }
  22. }
  23. }