左程云大厂算法刷题班——14
第一题
leetcode475:供暖器
public class 第一题14 {public static int findRadius(int[] houses, int[] heaters) {Arrays.sort(houses);Arrays.sort(heaters);int max = Integer.MIN_VALUE;for (int i = 0,j = 0;i < houses.length;i++){while (!best(houses,heaters,i,j)){j++;}max = Math.max(max,Math.abs(houses[i] - heaters[j]));}return max;}private static boolean best(int[] houses, int[] heaters, int i, int j) {return j == heaters.length - 1 || (Math.abs(heaters[j] - houses[i]) < Math.abs(heaters[j + 1] - houses[i]));}
}
第二题
public class 第二题14 {public static void main(String[] args) {int[] arr = {1,3,4,8,15,23,26,30,45,53};int res1 = kthAbs1(arr, 13);System.out.println(res1);int res2 = kthAbs2(arr, 13);System.out.println(res2);}public static int kthAbs1(int[] arr,int k){int n = arr.length;if (n < 2 || k < 0 || (n * (n - 1) / 2) < k){return -1;}int[] del = new int[n * (n - 1) / 2];int index = 0;for (int i = 0;i < n;i++){for (int j = i + 1;j < n;j++){del[index++] = Math.abs(arr[j] - arr[i]);}}Arrays.sort(del);return del[k - 1];}public static int kthAbs2(int[] arr,int k){int n = arr.length;if (n < 2 || k < 0 || (n * (n - 1) / 2) < k){return -1;}Arrays.sort(arr);int l = 0;int r = arr[n - 1] - arr[0];int rightlast = -1;while (l <= r){int mid = (l + r) / 2;if (isVail(arr,mid,k)){rightlast = mid;l = mid + 1;}else {r = mid - 1;}}return rightlast + 1;}private static boolean isVail(int[] arr, int mid, int k) {int count = 0;for (int l = 0,r = 1;l < arr.length;r = Math.max(r,l++)){while (r < arr.length && arr[r] - arr[l] <= mid){r++;}count += r - l - 1;}return count < k;}
}
左程云大厂算法刷题班——14相关推荐
- 左程云大厂算法刷题班——07
第一题 leetcode42:接雨水 public class 第一题01 {public static int trap1(int[] height) {int n = height.length; ...
- 左程云大厂算法刷题班——05
第一题 public class 第一题05 {public static void main(String[] args) {int[] res = maxSplitNum("010110 ...
- 左程云大厂算法刷题班——08
第一题 leetcode37:解数独 public class 第一题08 {public void solveSudoku(char[][] board) {boolean[][] row = ne ...
- 左程云大厂算法刷题班——15
第一题 leetcode499:迷宫2 思路:宽度优先遍历 public class 第一题15 {public static void main(String[] args) {int[][] ma ...
- 左程云大厂算法刷题班——12
第一题 leetcode296. 最佳的碰头地点 public class 第一题12 {public static void main(String[] args) {int[][] grid = ...
- 左程云大厂算法刷题班——13
第一题 leetcode992. K 个不同整数的子数组 思路:1.滑动窗口(两个) 2.技巧:k = k = (小于等于k) - (小于等于k-1) public class 第一题13 {publ ...
- 左程云大厂算法刷题班——10
第一题 leetcode279. 完全平方数 public class 第一题10 {public static int numSquares(int n) {int[] dp = new int[n ...
- 左程云大厂算法刷题班——02
第一题 思路:滑动窗口(左右两指针) public class 第一题01 {public static void main(String[] args) {int[] arr = {1,3,4,5, ...
- 面试算法LeetCode刷题班—BAT面试官带你刷真题、过笔试
课程名称: <面试算法LeetCode刷题班> --BAT面试官带你刷真题.过笔试 主讲老师: 林老师 BAT资深研发工程师(T7/P8级),致力于搜索引擎及其子系统的研发.迭代与优化,数 ...
最新文章
- [JZOJ] 5837.Omeed
- java基础:任意进制到十进制的转换
- 实现用户名密码登陆,输入错误3次后锁定用户
- 数学--数论--Miller_Rabin判断素数
- BeanFactory和ApplicationContext有什么区别
- 历年安徽省二计算机考试题库,2010安徽省计算机等级考试试题 二级ACCESS最新考试试题库...
- 比特币区块链如何运作?
- Git 笔记——如何处理分支合并冲突
- 华山论剑之JAVA三大代码生成工具:Lombok、AutoValue和Immutables
- 车型代号对照表_车型代号对照表2015Q3
- 华云天下荣膺“2021年度十佳呼叫中心硬件及软件设备供应商”
- 一些常用的正则表达式(个人收集)
- foxmail客户端设置网易邮箱--提示邮箱地址或密码错误
- 计算机系云,计算机与信息技术学院
- modbus通讯协议详解
- python 绘制椭圆
- JavaScript面向对象学习深拷贝、浅拷贝(三)
- 1. NETSDK1141 无法解析位于 global.json 中指定的 .NET SDK 版本
- spring拦截器传递传递参数到controller+Aop切面环绕方法传递参数到目标方法
- CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval
热门文章
- ActiveX控件v7.2.0.1,Viscom Scanner ActiveX控件
- 鲁大师linux系统打印机驱动怎么安装,鲁大师如何安装打印机驱动 鲁大师安装打印机驱动教程...
- 在Delphi中可用FormatDateTime函数的用法
- 《火影忍者》即将完结 国内火影产业链也就要完了
- 天呐,嘉立创的单、双面板又又又降价了,同行还怎么玩儿?
- 今日简报 每日精选12条新闻简报 每天一分钟 知晓天下事 2月23日
- WindowsVista系统盘揭密:Users文件夹
- Java Example(九)
- 还在用笨重的 ELK?这个轻量级开源日志系统真香!
- 中国主要咨询研究信息管理机构公司经营发展情况