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

海南爱心扶贫网站是哪个公司做的网页设计培训

海南爱心扶贫网站是哪个公司做的,网页设计培训,wordpress获取分类链接地址,网站的互动658. 找到 K 个最接近的元素 - 力扣(LeetCode) 给定一个 排序好 的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。 整数 a 比整数 b 更接近 …

658. 找到 K 个最接近的元素 - 力扣(LeetCode)

给定一个 排序好 的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。

整数 a 比整数 b 更接近 x 需要满足:

  • |a - x| < |b - x| 或者
  • |a - x| == |b - x| 且 a < b

示例 1:

输入:arr = [1,2,3,4,5], k = 4, x = 3
输出:[1,2,3,4]

示例 2:

输入:arr = [1,2,3,4,5], k = 4, x = -1
输出:[1,2,3,4]

提示:

  • 1 <= k <= arr.length
  • 1 <= arr.length <= 104
  • arr 按 升序 排列
  • -104 <= arr[i], x <= 104
class Solution {public List<Integer> findClosestElements(int[] arr, int k, int x) {ArrayList<Integer> ans = new  ArrayList<Integer>();int len = arr.length;int left = 0;int right = len - 1;while(left < right) {int mid = (left+right)/2;if(arr[mid]<=x) left = mid+1;else right = mid;}int front = left-1;int tail = left;for(int i = 0 ; i < k ; i++) {if(front < 0) {ans.add(arr[tail]);tail++;} else if(tail >= len) {ans.add(arr[front]);front--;} else {if(x-arr[front] <= arr[tail]-x) {ans.add(arr[front]);front--;} else{ans.add(arr[tail]);tail++;}}}Collections.sort(ans);return ans;}
}

        每日一题,今天是中等题。实际难度也不高。

        读题,升序排列,查找。二分查找能解决。题目要求找到离x距离最近的k个数。那首先要找到x或者离x最近的数。最简单的方法就是二分先找到离x最近的数。那就先写一个二分,找到距离大于x的第一个数。left,right,len,mid老几件安排上。出二分后,left就是大于x的第一个数,但我们要找的是距离x最近的几个数,有可能大于x也有可能小于x。所以,出来之后,使用front来记录小于等于x的半部分,tail来记录大于等于x的半部分。tail=left,front=left-1,同时要注意x不一定在数组里,所以front和tail有可能不是有效的下标。需要先进行判断:(1)如果front<0说明已经没有比x小的数了。(2)如果right>=len就说明没有比x大的数了。由于k一定有相应解,所以一旦front和tail中的一个越界了,就只能往另一边找,直接加数就行。(3)如果front和tail都有效,那么就要判断谁离x比较近,由于题目有距离相同时取小的要求,所以等号要加在front--的这一部分代码上。找到之后放进arraylist里面,返回之前对其进行排序即可。

        今天这道中等题也不怎么难,熟悉二分估计很快就能做出来。结果如下:

http://www.dt0577.cn/news/55200.html

相关文章:

  • 视频网站建设应该注意什么seo教程网站优化推广排名
  • 做网站被骗算诈骗吗it培训机构推荐
  • 网站建设推广谷得网络关键词的优化方法
  • wordpress添加菜单选项优化大师下载电脑版
  • 什么网站用vue做的网站点击量查询
  • 12380网站开发优秀的营销策划案例
  • 用wordpress做企业网站视频教程百度云网页版入口
  • 禁止网站采集站长之家seo信息
  • 网站百度权重今天的新闻 联播最新消息
  • 360建设网站免费下载每日舆情信息报送
  • 站长之家新网址如何创建自己的域名
  • 视频结交网站怎么做万能bt搜索引擎网站
  • 做本地信息网站要注册什么类型公司网络运营是做什么的工作
  • 备案查询站长之家百度推广多少钱一天
  • seo优化一般包括哪些内容()杭州网站seo优化
  • 网站建设客户沟通模块免费营销培训
  • 公司查询网厦门关键词优化网站
  • 网站项目宣传片重庆网站搜索引擎seo
  • 荆门网站建设电话咨询西安百度公司
  • swoole做网站百度收录网站多久
  • wordpress能改什么seo网络推广公司
  • 世界做诡异的地方网站淘宝运营培训班去哪里学
  • 常州做网站公司哪家好广州seo推荐
  • 某企业集团网站建设方案网络营销成功案例3篇
  • 网站建设销售人员培训教程阿里巴巴国际站
  • 网络运维工程师需要具备什么证书新乡网站seo
  • 四川专业旅游网站制作潍坊seo招聘
  • 做网站推广和网络推广厦门百度快速优化排名
  • 如何做网站路径分析搜索引擎优化排名品牌
  • 做网站分辨率修改昆明百度搜索排名优化