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

点击到达网站指定位置怎么做深圳优化服务

点击到达网站指定位置怎么做,深圳优化服务,网站建设是什么意思,怎样查询二级建造师注册情况题目 小明在直线的公路上种树,现在给定可以种树的坑位的数星和位置,以及需要种多少棵树苗,问树苗之间的最小间距是多少时,可以保证种的最均匀(两棵树苗之间的最小间距最大) 输入描述 输入三行: 第一行一个整数:坑位的数…

题目

小明在直线的公路上种树,现在给定可以种树的坑位的数星和位置,以及需要种多少棵树苗,问树苗之间的最小间距是多少时,可以保证种的最均匀(两棵树苗之间的最小间距最大)
输入描述
输入三行:
第一行一个整数:坑位的数量
第二行以空格分隔的数组:坑位的位置
第三行一个整数:需要种植树苗的数量
输出描述
树苗之间的最小间距
示例1:
输入∶
7
1 3 6 7 8 11 13
3
输出:
6
三颗树苗分别种在1、7、13的位置,可以保证种的最均匀,树苗之间的最小间距为6。

思路

可以使用二分法解决。为了便于描述,设输入的数组为arr,坑位数量为n,需要种植的数为x。
先将arr从小到大排序
两棵树之前的最小间距是L=1,最大间距R=arr[n-1]-arr[0]。
先看最小间距ans取mid=(L+R)/2时,是否可以种下x棵树。如果可以种下,因为要求ans的最大值,那么小于mid时的情况都不用考虑,直接左边界L取mid+1;如果取mid时,种不下x棵树,那么mid右边的肯定更加种不下,右边界R直接取mid-1;通过上述思路,不断缩小查找边界,即可找到最大的ans。
现在的问题在于,对于给定最小间距,怎么判断是否种得下X棵树。已示例数据为例,我们的坑位是:[1,3,6,7,8,11,13]。假设最小间距是4。种树量为cnt。遍历坑位:
假定在1种第一棵树,cnt=1;
3距1的距离是2,小于4,不种;
6距1的距离是5,大于4,种植,cnt=2,后续遍历时就应该以6为参照物;
7距6为1,不种;
8距6位2,不种;
11距6为4,种植,cnt=3,后续以11为参照物;
13距11为2,不种;
遍历结束,所以最小间距是4时,在[1,3,6,7,8,11,13]这种坑位下,最多种3棵树。怎么判断是否种得下X棵树?只需要3>=x即可。
还有一个问题,二分法判断时,while (l <? r),此处是否取等呢?应该要取等,当l==r时,根据上述逻辑,我们会再判断一次mid,即l是否满足条件,满足的话ans最后就会取到l,然后l等于mid+1,结束二分查找。我们举一个例子更能说明情况,假设坑位是1 3 5 7,要种植的树木x是2,执行上述逻辑:
初始状态,l=1,r=6,mid=3,checked(3)时,可以在1,5种2棵树,满足(等于x),l=mid+1=4
l=4,r=6,mid=5,checked(5)时,可以在1,7种2棵树,满足,l=mid+1=6
l=6,r=6,此时如果判定边界不取等,那么就结束二分查找了得到的结果就是5,显然不对。应该在左右边界在相等时,继续判断一次,最后得到结果6。

题解

package hwod;import java.util.Arrays;
import java.util.Scanner;public class PlantTree {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int m = sc.nextInt();int[] grids = new int[m];for (int i = 0; i < m; i++) {grids[i] = sc.nextInt();}int n = sc.nextInt();System.out.println(maxDistance(grids, n));}private static int maxDistance(int[] grids, int n) {Arrays.sort(grids);int l = 1, r = grids[grids.length - 1] - grids[0], ans = -1;while (l <= r) {int mid = l + r >> 1;if (checked(mid, grids, n)) {ans = mid;l = mid + 1;} else {r = mid - 1;}}return ans;}private static boolean checked(int mid, int[] grids, int n) {int pre = grids[0],cnt=1;for (int i = 1; i < grids.length; i++) {if (grids[i] - pre >= mid) {pre = grids[i];cnt++;}}return cnt >= n;}}
http://www.wangmingla.cn/news/81088.html

相关文章:

  • 女人动漫做受网站视频号下载器手机版
  • 网站建设工作室起名厦门网站搜索引擎优化
  • 如何做购物网站百度seo关键词排名s
  • 专业做网站开发公司推广普通话手抄报内容简短
  • wordpress 3无法上传rar zip全能优化大师
  • 做网站有哪些按钮百度热榜排行
  • 武夷山网站建设2022年大事热点新闻
  • wordpress下载盒子插件太原百度搜索排名优化
  • p2p网站数据分析怎么做2022最火营销方案
  • 网络求职做阿姨哪个网站好网站seo优化建议
  • 可视化在线做网站必应搜索引擎入口
  • wordpress主题no7seo排名优化联系13火星软件
  • seo网站优化工具大全学生没钱怎么开网店
  • 个人作品主页wordpress网站优化的方法有哪些
  • 网站如何做用户的实名认证今日头条(官方版本)
  • 台州营销型网站建设外贸网络推广公司
  • 自己做的网站与ie不兼容线上营销手段
  • 哪个网站可以做问卷调查seo团队
  • 山东省级建设主管部门网站企业邮箱申请
  • 馨端网站建设免费网站推广网址
  • f1意大利站最新排名自己建网站怎么推广
  • 网站用户体验要素营销策划的八个步骤
  • 甘肃省省经合局网站建设的通知做小程序的公司
  • 手机整人网站怎么做南宁网站快速排名提升
  • 网站维护和制作怎么做会计分录专门做排行榜的软件
  • 公司网站的服务费做哪个科目郑州seo顾问培训
  • 外贸网站如何seoseo推广怎么入门
  • 柳州住房和城乡建设局网站网络营销的四大基础理论
  • 做网站用了别人公司的图片可以吗网站运营工作内容
  • 福田网站建设龙岗网站建设高端企业建站公司