news 2026/5/10 3:36:09

0x3f 第45天 面向实习的八股背诵第二天 + 堆一题+看见了些不得了的事情总观效应了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
0x3f 第45天 面向实习的八股背诵第二天 + 堆一题+看见了些不得了的事情总观效应了

1.数组中的第K个最大元素

核心思想:

假设数组升序排列后是[1,2,3,4,5,6](n=6),第 2 大元素是 5,对应下标6-2=4

  • 不管数组是否有序,「第 K 大元素在升序数组中的下标永远是n-k
  • 随机选 pivot 后,通过双指针划分,能精准确定 pivot 的最终下标 j
  • 划分后:
    • j左边的元素 ≤ pivot,右边的元素 ≥ pivot;
    • nums[j]就是数组中「第 n-j 大」的元素

缩圈直到命中」:迭代找目标下标(二分法的lowerbound)

  • 如果j == n-k:直接返回nums[j](找到答案);
  • 如果j > n-k:目标在左区间[left, j-1](缩小范围,继续找);
  • 如果j < n-k:目标在右区间[j+1, right](缩小范围,继续找)。

为什么必须随机一个 pivot,如果固定排序每次的第一个,遇到有序数组时,一次性只能排序一个位置,最终时间复杂度是O(n²),随机就是保证时间复杂度稳定在n

最难的是Partition函数

Partition(划分)的核心作用

随机选一个基准值pivot,把数组划分为「<=pivot」和「>=pivot」两部分;

返回pivot的最终下标j,此时

class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: def partition(nums,left,right): i = randint(left,right) pivot = nums[i] nums[i],nums[left] = nums[left],nums[i] i,j = left+1,right while True: while i<=j and nums[i]<pivot: i += 1 while i<=j and nums[j]>pivot: j -= 1 if i>=j: break nums[i],nums[j] = nums[j] ,nums[i] i += 1 j -= 1 nums[left],nums[j] = nums[j],nums[left] return j n = len(nums) target = n-k left,right = 0, n-1 while True: i = partition(nums,left,right) if i==target: return nums[i] elif i>target: right = i-1 else: left = i+1

2.面向实习的八股文今天背诵了:

接口和抽象类的区别,反射的概念反射的底层原理反射的使用场景反射的优缺点,java有哪些集合类型,arraylist和linkedlist的区别,hashmap的概念,hashmap的数据结构,hashmap怎么实现扩容,hashmap线程不安全怎么办

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 10:49:55

0x3f 第46天 复习 9:58-10:55

岛屿数量思考组合总和思考组合总和Ⅲ思考N皇后思考单词搜索ac思考搜索旋转楼梯ac思考有效的括号xac搜索二维矩阵ac思考LRU缓存的一半xxacO(1)取最小元素的栈acacac字符串解码acacac每日温度acac柱状图最大矩形面积acac

作者头像 李华
网站建设 2026/5/10 17:24:00

深入揭秘 Linux 虚拟文件系统 VFS(上)

1. 前言 在学习**虚拟文件系统&#xff08;VFS&#xff09;**之前&#xff0c;我们应该先了解一下它的出现是为了解决什么问题。 不论是在以前还是现在&#xff0c;Linux 都支持着好几十种文件系统类型&#xff0c;我们在 Shell 里输入 ls -l 看到的都是一行描述文件信息的字…

作者头像 李华
网站建设 2026/5/10 7:28:45

软件测试中的白盒测试,这些技巧你知道吗?

对于很多刚开始学习软件测试的小伙伴来说&#xff0c;如果能尽早将黑盒、白盒测试弄明白&#xff0c;掌握两种测试的结论和基本原理&#xff0c;将对自己后期的学习有较好的帮助。今天&#xff0c;我们就来聊聊黑盒、白盒测试的相关话题。 1、黑盒测试的方法和小结 最常见黑盒…

作者头像 李华
网站建设 2026/5/9 0:08:15

中专学历转行本地电商数据分析的可行性分析

行业背景与需求 本地电商行业近年来快速发展&#xff0c;数据驱动决策成为核心竞争力。企业对数据分析人才的需求持续增长&#xff0c;尤其是能够结合本地市场特点进行精准分析的专业人员。 本地电商数据分析岗位需求技能要求薪资范围&#xff08;初级&#xff09;销售数据分…

作者头像 李华
网站建设 2026/5/9 0:59:54

大专学历出纳转型财务BP的路径规划

财务BP&#xff08;Business Partner&#xff09;是企业财务与业务深度融合的岗位&#xff0c;需具备数据分析、业务洞察和战略支持能力。以下从技能提升、证书考取、实战经验等维度&#xff0c;为出纳转型财务BP提供具体方案。 核心能力对比分析 出纳岗位能力财务BP岗位能力提…

作者头像 李华
网站建设 2026/5/10 8:54:57

pytest实战技巧之参数化应用

pytest是Python中最流行的测试框架之一。它提供了丰富的功能&#xff0c;可以帮助我们编写高效、可靠的测试用例。其中一个重要的功能就是参数化&#xff0c;它可以让我们用不同的数据组合来运行同一个测试用例&#xff0c;从而 提高测试覆盖率和效率。本文将介绍pytest参数化的…

作者头像 李华