北京经纬恒润科技股份有限公司面试题更新 2026-08-05
给一个从0到99的顺序数组,再给一个从0到1的随机数,怎么实现洗牌操作(把数组打乱),要求线性时间复杂度?请讲思路。
北京经纬恒润科技股份有限公司人工智能专业服务问题拆解技术原理
考察说明
考察Fisher-Yates洗牌算法的原理、线性时间复杂度和随机均匀性
回答思路
- 提出Fisher-Yates洗牌算法
- 说明从后向前遍历,每次将当前元素与随机索引交换
- 解释如何将随机数映射为整数索引
- 讨论算法保证均匀分布和线性时间O(n)
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。