当前位置: 首页 > news >正文

神农架网站制作游戏网站的建设

神农架网站制作,游戏网站的建设,汽车用品网站,技术支持 如皋网站建设在数组nums中找到p个数对,使差值绝对值的和最小。 思路: 最小差值应该是数值相近的一对数之间产生,让数值相近的数字尽量靠在一起方便计算,所以需要排序。 这里不去直接考虑一对对的数字,而是直接考虑差值的取值。 …

在这里插入图片描述

在数组nums中找到p个数对,使差值绝对值的和最小。

思路:

最小差值应该是数值相近的一对数之间产生,让数值相近的数字尽量靠在一起方便计算,所以需要排序。
这里不去直接考虑一对对的数字,而是直接考虑差值的取值。

用binary search搜索一个差值。
左边界是0,右边界就是nums中的最大值 - 最小值(nums排序后最右边数字 - 最左边数字)。

确定mid = 差值,那么一对数字的差的绝对值如果 <= 这个差值,就说明满足,
遍历数组nums, 计算满足 <= 差值的数字有多少对,记为cnt对,
如果cnt >= p, 说明差值在mid内的数字对能达到p个,可以进一步缩小差值,right= mid.
反之需要left = mid+1.

class Solution {int n = 0;public int minimizeMax(int[] nums, int p) {n = nums.length;Arrays.sort(nums);int left = 0;int right = nums[n-1] - nums[0];while(left < right) {int mid = left + (right - left) / 2;if(canMakePairs(mid, nums, p)) {right = mid;} else {left = mid + 1;}}return left;}boolean canMakePairs(int mid, int[] nums, int p) {int cnt = 0;for(int i = 0; i < n-1 && cnt < p;i++){  //在这里限制cnt<p,因为p可以是0if(nums[i+1] - nums[i] <= mid) {cnt ++;i ++;  //加上for里面的i++,相当于i向右移动2位}}return cnt >= p;}
}
http://www.15wanjia.com/news/179165.html

相关文章:

  • 简述网站建设的步骤做网站没有成本的方法
  • 海南建设大厅网站企业网站建设网站模板
  • 校园网站建设可行性分析联通企业专线做网站
  • 西安 北郊网站建设wordpress大不了
  • 企业网站样式网站开发到上线 多久
  • 怎么做企业网站平台宜昌恒大帝景地址
  • 企业网站建设admin商机创业网2021创业
  • 使用ai做网站设计企业网站快速优化排名
  • 平台网站如何做推广怎么去营销自己的产品
  • 做知乎网站的图片cn域名与com域名
  • 网站建设和后台空间管理关系网站建设花销
  • 大连企业网站设计搜狗快速收录方法
  • .net美食网站开发源代码可以做积分的网站
  • 瑞安网站建设优化企业qq网页版
  • 有什么正规的网站做代加工凡科电脑版登录首页
  • 东莞网站忧化什么网站是php
  • 网站首页做很多个关键词wordpress 自动采集发布
  • 襄阳网站建设网页设计重要是什么
  • 建设个人博客网站广州番禺发布
  • 漳浦网站开发优化关键词规则
  • 南通网站排名外包dede仿手机网站模板
  • 嘉兴建设工程造价信息网站各大网站免费观看
  • 企业网站免费建站程序大数据培训哪家好
  • 摄影网站导航网站开发2008
  • 做海报哪个网站的素材多使用docker部署wordpress
  • 网站优化技巧wordpress 修订版本
  • 网站建设框架构建wordpress广告赚钱
  • 朔州建设机械网站网络平台代理合同
  • 湘潭市 网站建设漯河高端网站建设
  • 网站流量下降原因网页制作居中代码