今日学习之视频推荐的算法

82 阅读3分钟

今日学习之视频推荐算法 题目如下:西瓜视频正在开发一个新功能,旨在将访问量达到80百分位数以上的视频展示在首页的推荐列表中。实现一个程序,计算给定数据中的80百分位数。 例如:假设有一个包含从1到100的整数数组,80百分位数的值为80,因为按升序排列后,第80%位置的数字就是80。99 百分位数:假如有 N 个数据,将数据从小到大排列,99 百分位数是第 N99%位置处的数据(遇到小数时四舍五入获取整数)。一般计算逻辑是先排序,定位到 N99%的位置。返回该位置处的数据。同理,80 百分位数就是第 N*80%位置处的数据。 主要代码如下:

    // 2. 对数组进行排序
    Arrays.sort(numbers);
    // 3. 计算80百分位数的位置
    int position = Math.round(numbers.length * 0.8f);
    // 4. 返回对应位置的值
    return numbers[position - 1]; // 注意:数组索引从0开始
}
public static void main(String[] args) {
    // 你可以添加更多测试用例
    System.out.println(solution("10,1,9,2,8,3,7,4,6,5") == 8);
    System.out.println(solution("1,0,8,7,3,9,12,6,4,15,17,2,14,5,10,11,19,13,16,18") == 15);
    System.out.println(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);
}

在计算机的学习历程中,我收获了丰富的知识、技能和成长。回顾这段经历,有许多经验教训值得总结。首先,持续学习是在计算机行业取得成功的关键。计算机技术的发展日新月异,新的编程语言、框架和工具不断涌现。必须保持学习的热情和毅力,不断更新自己的知识体系,以适应行业的变化。正如写作素材中提到的计算机工程师任职要求中的学习能力和持续学习的重要性,持续学习是职业发展的重要保障,能够帮助我们提升技能和经验,我也明确,实践是检验真理的唯一标准。在学习计算机专业知识的过程中,不能仅仅停留在理论层面,而要通过实践来加深对知识的理解和掌握。