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

顺丰面试提到的一个算法题

顺丰面试提到的一个算法题

面试过程中大脑空白,睡了一觉后突然想明白了
原理非常简单就是根据数组中元素的值对值对应的索引进行排序
哎,,,,具体看以下代码吧[使用 Java 17 中 Stream 实现]
最好别用 CSDN 提供的在线运行验证代码,我建议你还是将代码拷贝到本地目标环境下运行

import java.util.AbstractMap;
import java.util.stream.IntStream;public class Main {// 获取数组中第k大的元素及其索引public static void main(String[] args) {// 定义变量k,用于后续操作中指定获取的元素数量int k = 5;// 初始化一个整数数组nums,包含一组待处理的数字int[] nums = {12, 11, 9, 15, 10};// 使用IntStream.range生成一个包含数组索引的流// .range(0, nums.length) 生成一个从0到数组长度的索引流// .boxed() 将int值包装为Integer对象,以便进行后续的排序操作// .sorted((i1, i2) -> Integer.compare(nums[i2], nums[i1])) 根据数组nums中的值对索引进行降序排序// .limit(k) 限制流的大小为k,即只取数组中最大的k个元素// .skip(k - 1L) 跳过前k-1个元素,留下第k个最大的元素// .map(i -> new AbstractMap.SimpleEntry<>(i, nums[i])) 将索引i映射为一个键值对(i, nums[i]),便于后续处理// .findFirst() 查找流中的第一个元素,即第k个最大的元素// .ifPresent(...) 如果找到了元素,则执行给定的消费函数,输出数组索引及其对应的值IntStream.range(0, nums.length).boxed().sorted((i1, i2) -> Integer.compare(nums[i2], nums[i1])).limit(k).skip(k - 1L).map(i -> new AbstractMap.SimpleEntry<>(i, nums[i])).findFirst().ifPresent(entry ->System.out.println("数组索引: " + entry.getKey() + " --> 数组索引对应的值: " + entry.getValue()));}}
http://www.lryc.cn/news/597883.html

相关文章:

  • C# 继承 虚方法
  • linux性能调整和故障排查
  • Python进阶知识之pandas库
  • 前端开发 React 状态优化
  • 面向对象分析与设计40讲(7)设计原则之合成复用原则
  • 前端实现可编辑脑图的方案
  • 网络编程初识(详细易懂)
  • 嵌入式linux下的NES游戏显示效果优化方案:infoNES显示效果优化
  • Python进阶知识之pandas库(一)基础数据类型
  • Android热修复实现方案深度分析
  • Android root和完整性检测实现方案深度分析
  • 海信IP501H-IP502h_GK6323处理器-原机安卓9专用-TTL线刷烧录可救砖
  • HTTPS证书体系,证书加密流程(通信体系)
  • lumerical——光纤布拉格光栅(Fiber Bragg gratings)
  • Linux 或者 Ubuntu 离线安装 ollama
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-最近七天微博发布量实现
  • pig cloud框架中引入websocket
  • 车载绝缘子放电状态检测系统数据分析软件需求说明书
  • python自动化测试框架,封装方法方式
  • WebGIS 常用坐标系
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(8):自動詞 & 他動詞 「~ている」「~ておく」「~てある」
  • 【西北工业大学公开课】导引系统原理(全61讲)周军 -个人笔记版 5000字
  • JVM、Dalvik、ART垃圾回收机制
  • 大模型就业方向
  • OpenCV(02)图像颜色处理,灰度化,二值化,仿射变换
  • 【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(3)
  • 解决sparksql创建出来的数据库路径错误的问题
  • VSCode 开发 STM32 - clangd 带来的极致补全体验
  • 13. event.target 和 event.currentTarget 区别
  • 加载用户设置时遇到错误找到一个带有无效“icon“的配置文件。将该配置文件默认为无图标。确保设置“icon“时,该值是图像的有效文件路径“