Codility刷题之旅 - Challenges - Challenges of 2010

169 阅读2分钟

首先,要给大家分享下一个Gitee项目链接: Codility刷刷刷-Python

我在这个项目里,把Codility上所有的Lessons,Exercises和Challenges整理成了一个大面板。目前的进度是:

  • Lessons - 已全部解答,并达到100%
  • Exercises - 有3题还未达到100%/还没想到解法
  • Challenges - 还未开始做

接下来我的计划,是按照每天2-3题的节奏,尽快更新完全部历史的Challenges部分,遇到比较难的题就先跳过。

这样在三部分的题基本都解得差不多之后,我们再集中精力解决仍然无法解决的难题。这样的好处是,到时候我可以统一就这些难题发起网络求助,在全网协助下最终让我们的这个Gitee项目达到三部分全100%的结果~

那么今天,就让我们先进入2010年Challenges部分吧:

Challenge - Alpha 2010

image.png

题目概述:比较简单的一道题,输入是一个Array A,其中包含N个非负整数。因为有些值会重复出现,所以存在能够让每个值都出现至少一次的index,需要的返回值即为这个index。

解法概述:解法是构建了一个dictionary,记录每种值第一次出现的index,最后返回所有值首次出现index中的最大值即可。

def solution(A):
    a_firsti_dict = {}
    for i, a in enumerate(A):
        if a not in a_firsti_dict:
            a_firsti_dict[a]=i
    return max(a_firsti_dict.values())

image.png

Challenge - Beta 2010

题目概述:本题是Lessons-Sorting部分的NumberOfDiscIntersections

解法概述:之前已经在这篇之前的文章里提供过解法了,这里就不再赘述了:juejin.cn/post/720298…

总结

综上就是2010年一共的2次Challenge了,下一篇,我们会继续进入2011年的Challenges的解答~