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. jquery的y一些实用方法

    jquery的在线手册 jQuery获取Select选择的Text和Value:语法解释:1. $("#select_id").change(function(){//code.. ...

  2. ssh基于主机名访问

    登录一台服务器我们可以用ssh user@IP这种方式 还有一种快捷的方式,就是基于主机名访问,这需要先配置 /etc/hosts文件 假如我们又两台主机 192.168.75.131/165 分别为 ...

  3. archlinux基本安装、以及图形化界面

    磁盘刻录 在windows下载磁盘刻录工具 rufus,官网:https://rufus.ie/zh/ 中文界面,实在不是可以搜索一下磁盘刻录教程 在linux下使用balena-etcher,官网: ...

  4. OVS-DPDK 流表查询详解

    一图胜千言: flow和miniflow 在介绍之前先说一些概念:里面有两个结构很重要,一个是flow一个是miniflow这里介绍一下他们的数据结构和构造函数. flow: flow的特点是8字节对 ...

  5. java注解与反射--2

    java注解与反射--2 反射:java.Reflection 因为反射,使java具有了一定的动态性. java反射机制概述 动态语言: 是一类在运行时可以改变其结构的语言:例如新的函数.对象.甚至 ...

  6. 在Vue中发起axios请求成功,却被catch捕捉返回Network Error

    前端发起请求成功,后台接收处理返回,却被axios的catch捕获,没有走then函数. 最后添加了headers配置成功解决,如上,附上axios接口配置中文文档:axios中文文档|axios中文 ...

  7. 原来还能这样看Java线程的状态及转换

    作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试.职业成长相关资料等更多精彩文章在公众号「小牛呼噜噜」 大家好,我是呼噜噜,最近一直在梳理Jav ...

  8. 当后端人员未提供接口,前端人员该怎么测试 --mock

    1.回顾 2.线上的mock http://rap2.taobao.org/ https://www.easy-mock.com/ 3.线上接口文档 Swagger https://swagger.i ...

  9. react状态管理器(分模块)之redux和redux + react-redux + reducer和redux + react-redux + reducer分模块 + 异步操作redux-thunk

    1.回顾 cnpm i redux react-redux redux-thunk -S store/index.js src/index.js src/views/home/index.jsx + ...

  10. InnoDB Buffer Pool改进LRU页面置换

    由于硬盘和内存的造价差异,一台主机实例的硬盘容量通常会远超于内存容量.对于数据库等应用而言,为了保证更快的查询效率,通常会将使用过的数据放在内存中进行加速读取. 数据页与索引页的LRU 数据页和索引页 ...