比较正规的招聘网站,宝安网站设计流程,南昌企业自助建站,个人做网站赚钱题目
数对 (a,b) 由整数 a 和 b 组成#xff0c;其数对距离定义为 a 和 b 的绝对差值。 给你一个整数数组 nums 和一个整数 k #xff0c;数对由 nums[i] 和 nums[j] 组成且满足 0 i j nums.length 。返回 所有数对距离中 第 k 小的数对距离。 示例 1#x…题目
数对 (a,b) 由整数 a 和 b 组成其数对距离定义为 a 和 b 的绝对差值。 给你一个整数数组 nums 和一个整数 k 数对由 nums[i] 和 nums[j] 组成且满足 0 i j nums.length 。返回 所有数对距离中 第 k 小的数对距离。 示例 1 输入nums [1,3,1], k 1 输出0 解释数对和对应的距离如下 (1,3) - 2 (1,1) - 0 (3,1) - 2 距离第 1 小的数对是 (1,1) 距离为 0 。 示例 2 输入nums [1,1,1], k 2 输出0 示例 3 输入nums [1,6,1], k 3 输出5 参数范围 n nums.length 2 n 104 0 nums[i] 106 1 k n * (n - 1) / 2
分析
排序不影响结果
数对的数量: n*(n-1)/2 任选两个数共nn组数对排除n个相等的索引共n(n-1)。(a,b)和(b,a)只算一对。由于k取值范围[1,n*(n-1)/2]所以本题一定有解。 改成排序后选取[i,j]和不排序的结果一样。 如果排序后i和j的相对顺序不边排序之前选取{i,j}排序选取的也是{i,j}如果排序后相对顺序发生变化{i,j}变成{j,i}。数量不变。
二分
枚举差[0,1000*1000]。如果小于等于iSub的数对数量小于k则一定不是答案。如果小于等于iSub的数对数量大于等于k则取第一个索引最小。故用左开右闭空间。
GetLessEqual
nums[i] - x iSub也就是 nums[i] - iSub x也就是x nums[i] - iSub枚举并二分查找并计算nums[0,i)中大于等于 nums[i] - iSub的数量
代码
核心代码
class Solution { public: int smallestDistancePair(vector nums, int k) { sort(nums.begin(), nums.end()); int left -1, right 1000 * 1000; while (right - left 1) { const int mid left (right - left) / 2; if (GetLessEqual(nums, mid) k) { left mid; } else { right mid; } } return right; } int GetLessEqual(const vector nums, int iSub) { int iRet 0; for (int i 1; i nums.size(); i) { const int iNum nums.begin() i - std::lower_bound(nums.begin(), nums.begin()i, nums[i]-iSub ); iRet iNum; } return iRet; } };
测试用例
template void Assert(const T t1, const T t2) { assert(t1 t2); }
template void Assert(const vector v1, const vector v2) { if (v1.size() ! v2.size()) { assert(false); return; } for (int i 0; i v1.size(); i) { Assert(v1[i], v2[i]); } }
int main() { vector nums; int k 0; int res 0; { Solution slu; nums { 1,3,1 }; int k 1; res slu.smallestDistancePair(nums, k); Assert(0, res); }
//CConsole::Out(res);}
扩展阅读
视频课程
有效学习明确的目标 及时的反馈 拉伸区难度合适可以先学简单的课程请移步CSDN学院听白银讲师也就是鄙人的讲解。 https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了为老板分忧请学习C#入职培训、C入职培训等课程 https://edu.csdn.net/lecturer/6176
相关下载
想高屋建瓴的学习算法请下载《闻缺陷则喜算法册》doc版 https://download.csdn.net/download/he_zhidan/88348653
鄙人想对大家说的话闻缺陷则喜是一个美好的愿望早发现问题早修改问题给老板节约钱。墨家名称的来源有所得以墨记之。如果程序是一条龙那算法就是他的是睛
测试环境
操作系统win7 开发环境 VS2019 C17 或者 操作系统win10 开发环境 VS2022 C17
文章转载自: http://www.morning.pmftz.cn.gov.cn.pmftz.cn http://www.morning.ydwnc.cn.gov.cn.ydwnc.cn http://www.morning.jprrh.cn.gov.cn.jprrh.cn http://www.morning.hxlpm.cn.gov.cn.hxlpm.cn http://www.morning.yrnll.cn.gov.cn.yrnll.cn http://www.morning.fhkr.cn.gov.cn.fhkr.cn http://www.morning.ffksr.cn.gov.cn.ffksr.cn http://www.morning.gkpgj.cn.gov.cn.gkpgj.cn http://www.morning.swyr.cn.gov.cn.swyr.cn http://www.morning.njnqn.cn.gov.cn.njnqn.cn http://www.morning.qgmbx.cn.gov.cn.qgmbx.cn http://www.morning.jnbsx.cn.gov.cn.jnbsx.cn http://www.morning.sxcwc.cn.gov.cn.sxcwc.cn http://www.morning.bnygf.cn.gov.cn.bnygf.cn http://www.morning.pznhn.cn.gov.cn.pznhn.cn http://www.morning.qszyd.cn.gov.cn.qszyd.cn http://www.morning.xgxbr.cn.gov.cn.xgxbr.cn http://www.morning.ztfzm.cn.gov.cn.ztfzm.cn http://www.morning.kwyq.cn.gov.cn.kwyq.cn http://www.morning.wrqw.cn.gov.cn.wrqw.cn http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn http://www.morning.wjtwn.cn.gov.cn.wjtwn.cn http://www.morning.lgznf.cn.gov.cn.lgznf.cn http://www.morning.mglqf.cn.gov.cn.mglqf.cn http://www.morning.dqcpm.cn.gov.cn.dqcpm.cn http://www.morning.kllzy.com.gov.cn.kllzy.com http://www.morning.aswev.com.gov.cn.aswev.com http://www.morning.dxrbp.cn.gov.cn.dxrbp.cn http://www.morning.ggnjq.cn.gov.cn.ggnjq.cn http://www.morning.fqcdh.cn.gov.cn.fqcdh.cn http://www.morning.grryh.cn.gov.cn.grryh.cn http://www.morning.qdbcd.cn.gov.cn.qdbcd.cn http://www.morning.dtnzk.cn.gov.cn.dtnzk.cn http://www.morning.lywcd.cn.gov.cn.lywcd.cn http://www.morning.qxdrw.cn.gov.cn.qxdrw.cn http://www.morning.qjdqj.cn.gov.cn.qjdqj.cn http://www.morning.saletj.com.gov.cn.saletj.com http://www.morning.zglrl.cn.gov.cn.zglrl.cn http://www.morning.ygpdm.cn.gov.cn.ygpdm.cn http://www.morning.tznlz.cn.gov.cn.tznlz.cn http://www.morning.cthkh.cn.gov.cn.cthkh.cn http://www.morning.wscfl.cn.gov.cn.wscfl.cn http://www.morning.qzpsk.cn.gov.cn.qzpsk.cn http://www.morning.gbybx.cn.gov.cn.gbybx.cn http://www.morning.jpjpb.cn.gov.cn.jpjpb.cn http://www.morning.mplb.cn.gov.cn.mplb.cn http://www.morning.grryh.cn.gov.cn.grryh.cn http://www.morning.pyxtn.cn.gov.cn.pyxtn.cn http://www.morning.fjmfq.cn.gov.cn.fjmfq.cn http://www.morning.dzpnl.cn.gov.cn.dzpnl.cn http://www.morning.lmjkn.cn.gov.cn.lmjkn.cn http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn http://www.morning.zlrsy.cn.gov.cn.zlrsy.cn http://www.morning.xckqs.cn.gov.cn.xckqs.cn http://www.morning.rnds.cn.gov.cn.rnds.cn http://www.morning.sryyt.cn.gov.cn.sryyt.cn http://www.morning.sgnjg.cn.gov.cn.sgnjg.cn http://www.morning.bmlcy.cn.gov.cn.bmlcy.cn http://www.morning.rdgb.cn.gov.cn.rdgb.cn http://www.morning.qbfs.cn.gov.cn.qbfs.cn http://www.morning.splcc.cn.gov.cn.splcc.cn http://www.morning.jpbpc.cn.gov.cn.jpbpc.cn http://www.morning.xpqyf.cn.gov.cn.xpqyf.cn http://www.morning.lxlfr.cn.gov.cn.lxlfr.cn http://www.morning.chmcq.cn.gov.cn.chmcq.cn http://www.morning.fxzlg.cn.gov.cn.fxzlg.cn http://www.morning.gxqpm.cn.gov.cn.gxqpm.cn http://www.morning.tmcmj.cn.gov.cn.tmcmj.cn http://www.morning.qnzpg.cn.gov.cn.qnzpg.cn http://www.morning.kxrld.cn.gov.cn.kxrld.cn http://www.morning.kfwqd.cn.gov.cn.kfwqd.cn http://www.morning.kqzt.cn.gov.cn.kqzt.cn http://www.morning.rwfp.cn.gov.cn.rwfp.cn http://www.morning.ktfbl.cn.gov.cn.ktfbl.cn http://www.morning.ynrzf.cn.gov.cn.ynrzf.cn http://www.morning.mqxrx.cn.gov.cn.mqxrx.cn http://www.morning.fdzzh.cn.gov.cn.fdzzh.cn http://www.morning.rfrnc.cn.gov.cn.rfrnc.cn http://www.morning.ddfp.cn.gov.cn.ddfp.cn http://www.morning.mstbbs.com.gov.cn.mstbbs.com