Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

PatRuan/Dev-Interview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

13 Commits

Repository files navigation

【笔试题】

机试题目注意: 请不要轻视这题目,完成得高质量,绝对不容易。

请独立完成,其他注意事项见下方 FAQ。

请将完成的笔试题以"姓名-后端开发-完成所需时间"格式命名

要求:以下题目答题是 30 分钟,旨在考察面试者多方面的能力。请尽可能多答,

算法题可以任何编程语言的代码(欢迎加关键注释),也可以写出大概想法(得分会减少)。

题目:我们做了一个活动,根据用户的积分来抽奖,用户的积分都保存在一个数组里面

arr = [20, 34, 160, 2...],数组下标就是用户的 ID,则这里:

ID 为 0 的用户的积分是 arr[0] 等于 20 分。

ID 为 1 的用户的积分是 arr[1] 等于 34 分。

请你设计一个抽奖算法,随机抽出一位中奖用户,要求积分越高中奖概率越高。

返回值是中奖用户的 ID

PS: 1<= arr.length <= 50000 且 1<= arr[i] <= 50000

代码写出算法,

并分析其时间复杂度,

为其编写尽量多 unit test。

FAQ:

我可以上网吗?-- 可以,make yourself comfortable。

我可以问别人吗? -- 请独立完成,if you lie , we’ll know sooner or later。

我超过 30 分钟怎么办?请尽量按时提交。如果超过 30 分钟,请标注下完成用时。

我做不完怎么办?没关系请尽量按点顺序完成

完成后,命名好邮件,请发PDF文档,发到邮箱:pat@footprint.network

About

积分抽奖

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

AltStyle によって変換されたページ (->オリジナル) /