快石科技面试题目及答案(PDF下载).docxVIP

  • 1
  • 0
  • 约1.37千字
  • 约 3页
  • 2026-08-08 发布于新疆
  • 举报

快石科技面试题目及答案(PDF下载)

一、编程基础与数据结构(总分40分)

1.题目:数组中重复的数字。在一个长度为n+1的数组中,元素范围是1到n,其中有一个数字重复出现,请找出这个重复的数字。要求:不能使用额外的数组或哈希表,时间复杂度O(n),空间复杂度O(1)。

答案:使用快慢指针法(类似环形链表找环的起点)。初始化快指针`slow=0`,`fast=0`;循环中`slow=nums[slow]`,`fast=nums[nums[fast]]`,直到`slow==fast`;然后重置`slow=0`,继续循环`slow=nums[slow]`,`fast=nums[fast]`,直到`slow==fast`,此时`slow`(或`fast`)即为重复数字。

二、算法设计与分析(总分30分)

2.题目:两数之和(LeetCode1变体)。给定一个整数数组`nums`和一个目标值`target`,返回所有和为`target`的两个数字的下标。假设每个输入只对应一个答案,且同一个元素不能使用两次。

答案:使用哈希表存储值到下标的映射。遍历数组时,对于每个元素`num`,计算`complement=target-num`,检查`complement`是

文档评论(0)

1亿VIP精品文档

相关文档