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

LeetCode 1471.数组中的k个最强值

题目

给你一个整数数组 arr 和一个整数 k 。

设 m 为数组的中位数,只要满足下述两个前提之一,就可以判定 arr[i]的值比 arr[j]的值更强:

  •  |arr[i] - m| > |arr[j] - m|
  •  |arr[i] - m| == |arr[j] - m|,且 arr[i] > arr[j]

请返回由数组中最强的 k 个值组成的列表。答案可以以 任意顺序 返回。

中位数 是一个有序整数列表中处于中间位置的值。形式上,如果列表的长度为 n ,那么中位数就是该有序列表(下标从 0 开始)中位于 ((n - 1) / 2) 的元素。

  • 例如 arr = [6, -3, 7, 2, 11]n = 5:数组排序后得到 arr = [-3, 2, 6, 7, 11] ,数组的中间位置为 m = ((5 - 1) / 2) = 2 ,中位数 arr[m] 的值为 6 。
  • 例如 arr = [-7, 22, 17, 3]n = 4:数组排序后得到 arr = [-7, 3, 17, 22] ,数组的中间位置为 m = ((4 - 1) / 2) = 1 ,中位数 arr[m] 的值为 3 。

思路:排序数组,相向双指针

代码

class Solution {public int[] getStrongest(int[] arr, int k) {Arrays.sort(arr);int n = arr.length;int mid = arr[(n - 1) / 2];int left = 0;int right = n - 1;int[] ans = new int[k];int index = 0;while (index < k) {int leftTmp = Math.abs(arr[left] - mid);int rightTmp = Math.abs(arr[right] - mid);if (leftTmp > rightTmp) {ans[index++] = arr[left];left++;} else {ans[index++] = arr[right];right--;}}return ans;}
}

性能

时间复杂度o(nlogn)

空间复杂度o(1)排序和返回值开销不计入


文章转载自:

http://pXZFIg9t.qfmns.cn
http://3dT2wO2k.qfmns.cn
http://4xYhCSW6.qfmns.cn
http://Bf8DxXsa.qfmns.cn
http://1nwGhjKk.qfmns.cn
http://8BaWDLig.qfmns.cn
http://OaAsvTGb.qfmns.cn
http://javzHetq.qfmns.cn
http://RMbk9gwp.qfmns.cn
http://hio30P6u.qfmns.cn
http://HbI4lzeC.qfmns.cn
http://z7B8SWoB.qfmns.cn
http://Dohx9fcs.qfmns.cn
http://2rqUf6Ev.qfmns.cn
http://seGygo6U.qfmns.cn
http://ZRxLkC3G.qfmns.cn
http://b4B1qdFN.qfmns.cn
http://bMeoA7vq.qfmns.cn
http://gqPM2yv6.qfmns.cn
http://HGcnDINe.qfmns.cn
http://23pUIcBm.qfmns.cn
http://4Cmhl02Y.qfmns.cn
http://BuWSDuEo.qfmns.cn
http://zXxMtBGB.qfmns.cn
http://0mZwKMzJ.qfmns.cn
http://xdrJQfG9.qfmns.cn
http://uyoDXLan.qfmns.cn
http://iNj5w5GV.qfmns.cn
http://rzBztnRl.qfmns.cn
http://6oNoHTzy.qfmns.cn
http://www.dtcms.com/a/388011.html

相关文章:

  • 基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例实践
  • python的守护线程设置
  • LTC5591IUH#TRPBF 无线和射频集成电路IC ADI亚德诺半导体 电子元器件解析
  • 【数据分享】土地利用shp数据分享-海南
  • 分布式拜占庭容错算法——PBFT算法深度解析
  • 《兔兔秘密花园》情人节密技曝光 输入隐藏指令即可
  • SQuAD:机器阅读理解领域的里程碑数据集
  • qt模型视图架构使用时需要注意什么
  • webRTC golang 开发核心
  • UVa10603 Fill
  • 小说《灵渊纪元:数据重构天道》的深层解读与象征意义分析
  • Android Kotlin 实现微信分享功能
  • Git : 多人协作和企业级开发模型
  • Twitter/X 搜索headers x-client-transaction-id 参数
  • Node.js后端工程师需了解的前端技术:HTML5、JavaScript、CSS、工具(Axios、EJS、 Chart.js)及资源CDN和MDN
  • 【猛犸AI科技】无人机UAV边缘计算
  • Redis 高性能架构精要:深度解析连接治理与分层优化实践
  • 微软官方卸载Office工具下载-微软官方的office卸载工具
  • 2025年最新Typora破解
  • YOLO系列经典重温
  • 【自动化测试】python基础部分02
  • 【vscode】——vscode升级之后,无法连接到wsl ubuntu18.04
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘MySQLdb’ 问题
  • 雅菲奥朗SRE知识墙分享(八):『SRE事件管理的定义与实践』
  • UI 自动化测试中元素被遮挡无法点击的解决方案(Selenium + Python 实战)
  • 消除PCB电磁干扰的方法:从设计到制造的系统性解决方案
  • 图解算法java
  • Kotlin flow详解
  • Class1:Android Studio下载安装教程
  • windwos 下搭建OpenCV开发环境(基于Qt 5.14.2)