前言
本篇文章主要包括如下内容:
- 无序数组寻找第K大的值的算法
- Java中static关键字的理解
- Java中的HashMap
- Java中的LinkedHashMap
无序数组寻找第K大的值
问题描述
给定一个数组,寻找其第K大的值,并分析其复杂度
笔者踩的坑
遇到这种问题一定要思考一下,问一下面试官:
- 数组是否是数字?
- 数组是否有序?
- 数组中是否有重复的数字?
笔者没问,回来后后悔不已,毕竟这是笔者第一次面试,把自己的菜展现的一览无余。
我们假设这道题:无序,是数字,无重复。
解决思路
寻找一个标志,遍历数组,将比它小的放在左边,比它大的放在右边(快排),记录比它小的数的个数,如果大于K,则在左边寻找,如果小于K,则在右边寻找。
代码实现
1 | public class Solution { |
Java中static关键字的理解
具体可以移步我的博客:浅谈Java类加载机制和static关键字
Java中的HashMap
具体可以移步我的博客:浅谈Java中的HashMap以及红黑树
Java中的LinkedHashMap
具体可以移步我的博客:浅谈Java中LinkedHashMap的实现