- 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)