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

大厂数据结构与算法面试题合集

一、数组与矩阵

1、数组中重复的数字

在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。

Input: {2, 3, 1, 0, 2, 5} Output: 2

解题思路

要求时间复杂度 O(N),空间复杂度 O(1)。因此不能使用排序的方法,也不能使用额外的标记数组。

对于这种数组元素在 [0, n-1] 范围内的问题,可以将值为 i 的元素调整到第 i 个位置上进行求解。在调整过程中,如果第 i 位置上已经有一个值为 i 的元素,就可以知道 i 值重复。

以 (2, 3, 1, 0, 2, 5) 为例,遍历到位置 4 时,该位置上的数为 2,但是第 2 个位置上已经有一个 2 的值了,因此可以知道 2 重复:

public int duplicate(int[] nums) { for (int i = 0; i < nums.length; i++) { while (nums[i] != i) { if (nums[i] == nums[nums[i]]) {
http://www.gsyq.cn/news/184348.html

相关文章:

  • 时序逻辑电路设计实验项目应用:简单计数器实现
  • 单个 h门作用在某个 qubit 的计算优化原理
  • 第十三章 数量性状遗传
  • 最新大厂算法面试题合集(一)
  • 12.30 - 合并区间 C++中class和C语言中struct的区别
  • 一键删除顽固文件(强制删除)
  • 清华源同步延迟?手动刷新Miniconda-Python3.11的索引缓存
  • CCS使用系统学习:TI C2000多核工程管理技巧
  • SSH端口映射实战:将Miniconda-Python3.11的Jupyter服务暴露到本地
  • Keil5芯片包下载快速理解:适用于STM32
  • UniApp 全面介绍与快速上手
  • 基于STM32的模拟信号采集系统深度剖析
  • Pyenv shell会话管理:临时切换Miniconda-Python3.11之外的版本
  • Jupyter密码设置教程:保护Miniconda-Python3.11中的敏感数据
  • Java Timer类:如何创建定时任务?
  • 清华源无法连接?备用USTC源配置Miniconda-Python3.11的方法
  • GitHub Gist代码片段分享:快速传播Miniconda-Python3.11配置经验
  • JavaScript
  • Miniconda配置PyTorch环境时常见错误及解决方案汇总
  • GitHub仓库分支切换:在Miniconda-Python3.11中同步最新代码
  • Windows下CMD与PowerShell的区别:对Miniconda-Python3.11的影响
  • 使用Keil时出现 no stlink delected 怎么办?
  • Miniconda环境下如何验证PyTorch是否成功调用GPU
  • 超详细版:JLink烧录驱动在Linux平台的编译部署
  • 小白也能学会:Miniconda配置PyTorch GPU环境的图文指南
  • 项目应用:基于STLink接口引脚图的隔离电路设计
  • 基于Miniconda的Python环境为何更适合AI科研项目
  • 【毕业设计】SpringBoot+Vue+MySQL 销售项目流程化管理系统平台源码+数据库+论文+部署文档
  • Java Web 线上学习资源智能推荐系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • CCS20在TI C5000系列开发中的全面讲解