视频推荐的算法 | 豆包MarsCode AI刷题
题目解析
在第一天打卡豆包MarsCode AI 刷题题库中,我选择了“视频推荐的算法”这道题目进行解析。题目要求计算给定数据中的80百分位数,这是一道典型的数据处理题目。
思路解析:
- 将数据从小到大排序。
- 计算80百分位数的位置,即
N * 0.8,其中N是数据的长度。 - 取出该位置的数据(注意:位置从1开始计数)。
代码详解:
def solution(data):
# 将字符串转换为整数列表
data_list = list(map(int, data.split(',')))
# 排序
data_list.sort()
# 计算80百分位数的位置
position = int(round(len(data_list) * 0.8)) - 1
# 返回该位置的数据
return data_list[position]
if __name__ == "__main__":
print(solution("10,1,9,2,8,3,7,4,6,5") == 8)
print(solution("1,0,8,7,3,9,12,6,4,15,17,2,14,5,10,11,19,13,16,18") == 15)
print(solution("76,100,5,99,16,45,18,3,81,65,102,98,36,4,2,7,22,66,112,97,68,82,37,90,61,73,107,104,79,14,52,83,27,35,93,21,118,120,33,6,19,85,49,44,69,53,67,110,47,91,17,55,80,78,119,15,11,70,103,32,9,40,114,26,25,87,74,1,30,54,38,50,8,34,28,20,24,105,106,31,92,59,116,42,111,57,95,115,96,108,10,89,23,62,29,109,56,58,63,41,77,84,64,75,72,117,101,60,48,94,46,39,43,88,12,113,13,51,86,71") == 96)
知识总结
在使用豆包MarsCode AI 刷题的过程中,我学到了以下几点:
- 百分位数的概念:百分位数是指在一组数据中,某个数据点在统计分布中的位置。
- 排序和索引:熟悉Python中列表的排序方法及其在数据处理中的应用。
- 数据类型转换:在数据分析中,如何将字符串转换为可操作的数值类型是基本技能。
学习建议:对于入门的同学,理解并掌握数据排序和索引是非常重要的。可以通过不同题目的练习,逐步积累经验,提高处理数据的能力。
学习计划
使用豆包MarsCode AI 刷题功能,我总结了以下高效学习方法:
- 制定刷题计划:每天练习至少一道题目,并记录每道题目的解题思路和代码。定期回顾和总结。
- 利用错题进行针对性学习:将错题分类整理,针对性地进行复习和重新练习,确保不再犯同样的错误。
工具运用
将豆包MarsCode AI 刷题功能与其他学习资源相结合,可以达到更好的学习效果:
- 在线文档和教程:结合在线教程和文档,进一步理解题目涉及的知识点。
- 编程练习平台:在各种编程练习平台上,寻找相似题目进行练习,以巩固所学知识。
- 讨论交流:加入编程学习社区,与其他学习者交流讨论,共同提高。