2021-07-20:最小区间。你有 k 个 非递减排列 的整数列表。找到一个 最小 区间,使得 k 个列表中的每个列表至少有一个数包含在其中。我们定义如果 b-a < d-c 或者在 b-a == d-c 时 a < c,则区间 [a,b] 比 [c,d] 小。

福大大 答案2021-07-20:

[[4,10,15,24,26], [0,9,12,20], [5,18,22,30]]
有序表:0,4,5。序号: 1,1,1。有序表差值为5。
有序表:4,5,9。序号:1,2,1。有序表差值为5。
有序表:5,9,10。序号:2,2,1。有序表差值为5。
有序表:9,10,18。序号:2,2,2。有序表差值为9。
有序表:10,12,18。序号:2,3,2。有序表差值为8。
有序表:12,15,18。序号:3,3,2。有序表差值为6。
有序表:15,18,20。序号:3,4,2。有序表差值为5。
有序表:18,20,24。序号:4,4,2。有序表差值为6。
有序表:20,22,24。序号:4,4,3。有序表差值为4。差值最小,这个就是需要的返回值。
有序表:x,22,24。序号:5,4,3。结束了。

代码用golang编写。代码如下:

package main

import (
"fmt"
"sort"
) func main() {
nums := [][]int{{4, 10, 15, 24, 26}, {0, 9, 12, 20}, {5, 18, 22, 30}}
ret := smallestRange(nums)
fmt.Println(ret)
} type Node struct {
value int
arrid int
index int
} func smallestRange(nums [][]int) []int {
N := len(nums)
orderSet := make([]*Node, 0)
for i := 0; i < N; i++ {
orderSet = append(orderSet, &Node{nums[i][0], i, 0})
}
set := false
a := 0
b := 0
for len(orderSet) == N {
sort.Slice(orderSet, func(i, j int) bool {
if orderSet[i].value != orderSet[j].value {
return orderSet[i].value < orderSet[j].value
} else {
return orderSet[i].arrid < orderSet[j].arrid
}
})
min := orderSet[0]
max := orderSet[len(orderSet)-1]
if !set || (max.value-min.value < b-a) {
set = true
a = min.value
b = max.value
}
min = orderSet[0]
orderSet = orderSet[1:]
arrid := min.arrid
index := min.index + 1
if index != len(nums[arrid]) {
orderSet = append(orderSet, &Node{nums[arrid][index], arrid, index})
}
}
return []int{a, b}
}

执行结果如下:


左神java代码

2021-07-20:最小区间。你有 k 个 非递减排列 的整数列表。找到一个 最小 区间,使得 k 个列表中的每个列表至少有一个数包含在其中。我们定义如果 b-a < d-c 或者在 b-a ==的更多相关文章

  1. 2021.07.20 CF1477A Nezzar and Board(最大公因数,未证)

    2021.07.20 CF1477A Nezzar and Board(最大公因数,未证) CF1477A Nezzar and Board - 洛谷 | 计算机科学教育新生态 (luogu.com. ...

  2. 2021.07.20 P3951 小凯的疑惑(最大公因数,未证)

    2021.07.20 P3951 小凯的疑惑(最大公因数,未证) 重点: 1.最大公因数 题意: 求ax+by最大的表示不了的数(a,b给定 x,y非负). 分析: 不会.--2021.07.20 代 ...

  3. 转:最小区间:k个有序的数组,找到最小区间使k个数组中每个数组至少有一个数在区间中

    转:http://www.itmian4.com/thread-6504-1-1.html 最小区间原题 k个有序的数组,找到最小的区间范围使得这k个数组中,每个数组至少有一个数字在这个区间范围内.比 ...

  4. 2021.07.17 P4170 染色(区间DP)

    2021.07.17 P4170 染色(区间DP) [P4170 CQOI2007]涂色 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.目标状态可以由哪些状态转移过来. ...

  5. hdu6003 Problem Buyer 贪心 给定n个区间,以及m个数,求从n个区间中任意选k个区间,满足m个数都能在k个区间中找到一个包含它的区间,如果一个区间包含了x,那么 该区间不能再去包含另一个数,即k>=m。求最小的k。如果不存在这样的k,输出“IMPOSSIBLE!”。

    /** 题目:hdu6003 Problem Buyer 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6003 题意:给定n个区间,以及m个数,求从n个区 ...

  6. [LeetCode] 632. Smallest Range Covering Elements from K Lists 覆盖K个列表元素的最小区间

    You have k lists of sorted integers in ascending order. Find the smallest range that includes at lea ...

  7. 2021.07.09 K-D树

    2021.07.09 K-D树 前置知识 1.二叉搜索树 2.总是很长的替罪羊树 K-D树 建树 K-D树具有二叉搜索树的形态,对于每一个分类标准,小于标准的节点在父节点左边,大于标准的节点在父节点右 ...

  8. 2021.07.23 P3275 糖果(差分约束)

    2021.07.23 P3275 糖果(差分约束) [P3275 SCOI2011]糖果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.为了满足更多更多约束条件,合适地 ...

  9. Noip模拟21(持续翻车)2021.7.20

    读题总是读错是不是没救了... T1 Median 中位数:按顺序排列的一组数据中居于中间位置的数. 能用上的高亮符号都用上了... 当时忘了就离谱.... 理解什么是中位数(真是个憨憨)后就可以开始 ...

  10. [火星补锅] 非确定性有穷状态决策自动机练习题Vol.1 T3 第K大区间 题解

    前言: 老火星人了 解析: 很妙的二分题.如果没想到二分答案.. 很容易想到尝试用双指针扫一下,看看能不能统计答案. 首先,tail指针右移时很好处理,因为tail指针右移对区间最大值的影响之可能作用 ...

随机推荐

  1. 解决df.to_csv 时增加重复双引号的问题

    df.to_csv("test.csv", sep='|',quoting=csv.QUOTE_NONE,index=False,header=True) 转载自 df.to_cs ...

  2. linux 打包各种后缀的命令

    01-.tar格式解包:[*******]$ tar xvf FileName.tar打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩! ...

  3. Node.js server使用

    一.创建项目 #创建项目目录 cd /data mkdir webroot cd webroot #初始化git git init vim .gitignore 输入: node_modules/ 保 ...

  4. 3、IOC创建对象的方法

    目录 3.IOC创建对象的方法 4.Spring配置 4.1.别名 4.2.Bean的配置 4.3.import 5.依赖注入 5.1.构造器注入 5.2.Set方式注入[重点] 5.3.扩展方式注入 ...

  5. Jan Ozer:高清直播互动场景下的硬编码如何选型?

    前言 高清直播逐渐普及,硬编码也成为大势所趋.在 RTE 2022 大会上,来自 NETINT 的 Jan Ozer 通过一系列的对比测试结果,详细分享了如何为高清直播互动场景进行硬编码的技术选型. ...

  6. Linux Redhat ens33不显示IP问题

    [第一步]:查看系统网卡设备 : ip addr show ​

  7. Redis - 对象结构

    简介 Redis 使用对象存储数据库中的键和值,每当在 Redis 中创建一个新的键值对时,都会创建两个对象:一个是键对象,另一个是值对象. 其中,Redis 的每种对象都由对象结构和对应编码的数据结 ...

  8. 用python的pylab画wave波形之sampwidth问题

    问题 网上找了好多地方,核心代码都是一样的,比如这句. wavedata=np.fromstring(bindata,dtype=np.short) 效果也还行. 可一次随机加载了一个Office里的 ...

  9. Django笔记十二之defer、only指定返回字段

    本篇笔记为Django笔记系列之十二,首发于公号[Django笔记] 本篇笔记将介绍查询中的 defer 和 only 两个函数的用法,笔记目录如下: defer only 1.defer defer ...

  10. JAVA网络编程样例

    这篇文章主要用来总结Java在网络编程中的知识点 下面是一个Java客户端与服务端通信的样例程序 //Server public class Server { public static void m ...