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

河北省网站备案管理系统网站建设网页与数据库连接

河北省网站备案管理系统,网站建设网页与数据库连接,扬中炒地皮,wordpress版面混乱文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题#xff1a;两球之间的磁力 出处#xff1a;1552. 两球之间的磁力 难度 5 级 题目描述 要求 在代号为地球 C-137 的世界中#xff0c;Rick 发现如果他将两个… 文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题两球之间的磁力 出处1552. 两球之间的磁力 难度 5 级 题目描述 要求 在代号为地球 C-137 的世界中Rick 发现如果他将两个球放在他新发明的篮子中它们之间会形成特殊形式的磁力。Rick 有 n \texttt{n} n 个空的篮子第 i \texttt{i} i 个篮子的位置在 position[i] \texttt{position[i]} position[i]Morty 想把 m \texttt{m} m 个球放到这些篮子中使得任意两球间的最小磁力最大。 Rick 声明两个位于 x \texttt{x} x 和 y \texttt{y} y 的球之间的磁力为 |x - y| \texttt{|x - y|} |x - y|。 给定一个整数数组 position \texttt{position} position 和一个整数 m \texttt{m} m返回最小磁力的最大值。 示例 示例 1 输入 position [1,2,3,4,7], m 3 \texttt{position [1,2,3,4,7], m 3} position  [1,2,3,4,7], m  3 输出 3 \texttt{3} 3 解释将 3 \texttt{3} 3 个球分别放入位于 1 \texttt{1} 1、 4 \texttt{4} 4 和 7 \texttt{7} 7 的三个篮子两球间的磁力分别为 [3, 3, 6] \texttt{[3, 3, 6]} [3, 3, 6]。最小磁力为 3 \texttt{3} 3。我们无法让最小磁力大于 3 \texttt{3} 3。 示例 2 输入 position [5,4,3,2,1,1000000000], m 2 \texttt{position [5,4,3,2,1,1000000000], m 2} position  [5,4,3,2,1,1000000000], m  2 输出 999999999 \texttt{999999999} 999999999 解释我们使用位于 1 \texttt{1} 1 和 1000000000 \texttt{1000000000} 1000000000 的篮子时最小磁力最大。 数据范围 n position.length \texttt{n} \texttt{position.length} nposition.length 2 ≤ n ≤ 10 5 \texttt{2} \le \texttt{n} \le \texttt{10}^\texttt{5} 2≤n≤105 1 ≤ position[i] ≤ 10 9 \texttt{1} \le \texttt{position[i]} \le \texttt{10}^\texttt{9} 1≤position[i]≤109所有 position \texttt{position} position 中的整数各不相同 2 ≤ m ≤ position.length \texttt{2} \le \texttt{m} \le \texttt{position.length} 2≤m≤position.length 解法 思路和算法 由于两个球之间的磁力等于两个球之间的距离因此为了得到最小磁力需要计算最小距离。以下将最小磁力的最大值对应的最小距离的最大值称为「临界距离」。 当 m m m 个球已经放入篮子时最小距离一定是其中一对位置相邻的球之间的距离因此需要将数组 position \textit{position} position 升序排序在排序后的篮子位置之间计算放入的球的最小距离。 如果任意两个球之间的距离不超过临界距离则可以放入至少 m m m 个球如果存在两个球之间的距离大于临界距离则不能放入 m m m 个球。因此这道题是二分查找判定问题需要找到可以放入 m m m 个球的最小距离的最大值。 用 low \textit{low} low 和 high \textit{high} high 分别表示二分查找的下界和上界。由于至少需要放入两个球当最小距离最大时每个球放在不同的篮子中因此 low \textit{low} low 的初始值等于 1 1 1由于最大距离为两端的篮子之间的距离因此 high \textit{high} high 的初始值等于 position \textit{position} position 中的最大值与最小值之差。 为了能放入 m m m 个球当最小距离确定时应该在确保相邻的球之间的距离不小于最小距离的前提下尽可能放入更多的球。因此第一个球应该放到最左边的篮子中后面的每个球应该放到与前一个球的距离大于等于最小距离的最近的篮子中。根据该规则遍历排序后的数组 position \textit{position} position判断每个球应该放到哪些篮子中并计算放到篮子中的球的总数。 每次查找时取 mid \textit{mid} mid 为 low \textit{low} low 和 high \textit{high} high 的平均数向上取整将 mid \textit{mid} mid 作为最小距离判断是否可以将 m m m 个球放到篮子中执行如下操作。 如果最小距离是 mid \textit{mid} mid 时可以将 m m m 个球放到篮子中则临界距离大于等于 mid \textit{mid} mid因此在 [ mid , high ] [\textit{mid}, \textit{high}] [mid,high] 中继续查找。 如果最小距离是 mid \textit{mid} mid 时不能将 m m m 个球放到篮子中则临界距离小于 mid \textit{mid} mid因此在 [ low , mid − 1 ] [\textit{low}, \textit{mid} - 1] [low,mid−1] 中继续查找。 当 low high \textit{low} \textit{high} lowhigh 时查找结束此时 low \textit{low} low 即为临界距离。 得到临界距离之后临界距离对应的磁力即为最小磁力的最大值。 代码 class Solution {public int maxDistance(int[] position, int m) {Arrays.sort(position);int n position.length;int low 1, high position[n - 1] - position[0];while (low high) {int mid low (high - low 1) / 2;if (canPutMBalls(position, m, mid)) {low mid;} else {high mid - 1;}}return low;}public boolean canPutMBalls(int[] position, int m, int force) {int count 1;int prev position[0];int n position.length;for (int i 1; i n; i) {if (position[i] - prev force) {count;if (count m) {return true;}prev position[i];}}return false;} }复杂度分析 时间复杂度 O ( n log ⁡ ( n p ) ) O(n \log (np)) O(nlog(np))其中 n n n 是数组 position \textit{position} position 的长度 p p p 是数组 position \textit{position} position 中的最大值。排序需要 O ( n log ⁡ n ) O(n \log n) O(nlogn) 的时间排序之后需要执行 O ( log ⁡ p ) O(\log p) O(logp) 次二分查找每次二分查找需要 O ( n ) O(n) O(n) 的时间遍历数组 position \textit{position} position 判断是否可以将 m m m 个球放到篮子中二分查找共需要 O ( n log ⁡ p ) O(n \log p) O(nlogp) 的时间因此时间复杂度是 O ( n log ⁡ n n log ⁡ p ) O ( n log ⁡ ( n p ) ) O(n \log n n \log p) O(n \log (np)) O(nlognnlogp)O(nlog(np))。 空间复杂度 O ( log ⁡ n ) O(\log n) O(logn)其中 n n n 是数组 position \textit{position} position 的长度。排序需要 O ( log ⁡ n ) O(\log n) O(logn) 的递归调用栈空间。
http://www.dnsts.com.cn/news/119528.html

相关文章:

  • 创建网站企业网站 建设 计划
  • 网站自动推广一级域名 二级域名 目录网站推广
  • 东莞企业网站建设哪家好沈阳做网络推广的公司
  • 网站超级链接怎么做找别人做网站需要注意什么
  • 网站维护是什么职业asp网站咋做
  • 最好网站设计案例软件开发公司企业简介
  • iis做网站的流程dz 一步一步教你做网站
  • 网站推广营销应该怎么做微网站php源码
  • 湘西网站建设公司网站怎样做注册窗口
  • 网站建设如何设计数据库昆明网站seo技术厂家
  • 广东建设网 工程信息网站包装公司网站模板下载
  • 网站建设合同示范文本上海做网站cnsosu
  • 造作网站模版内部劵淘网站怎么做
  • django网站开发案例毕设网站
  • dede 管理多个网站邯郸百度推广公司
  • 怎样从用户体现提高网站的搜索引擎信任度互联网创业项目拒绝割韭菜
  • 郴州建设局门户网站网站改版 更换服务器 排名丢失
  • 网站哪个公司做的台州椒江网站建设
  • 镇江网站建设平台网站建设得步骤
  • 网站设计公司网站设计公司网站制作教程ppt
  • 养殖场在哪个网站做环评备案wordpress自定义文章类型输出数量
  • jsp网站建设 书籍缔客网络上海响应式网站建设
  • 网站建设文翻译工作室东莞的网站建设公司哪家好
  • 石家庄建设网站哪家好广平手机网站建设
  • 网站建设公司济宁装饰设计培训
  • 洛阳建设信息网站建手机网站一年费用
  • 肃宁网站建设价格页游大全
  • 广州网站优化效果短网址统计
  • wordpress多语言网站四川网站建设设计公司
  • 织梦网站地图制作教程海南省海口市龙华区