方向二|糖果传递游戏|豆包MarsCode AI刷题

76 阅读4分钟

体验与成长

自从我开始使用AI刷题功能,我的学习体验发生了翻天覆地的变化。过去,我在学习编程时常常感到迷茫和挫败,尤其是面对那些复杂的问题时,往往不知道如何下手。然而,AI刷题功能的出现,为我提供了一个全新的学习路径。

通过AI的精准推荐,我能够根据自己的学习进度和能力,选择适合自己的题目进行练习。这种个性化的学习方式,让我更加高效地掌握了编程思维。在刷题的过程中,AI不仅提供了详细的解题步骤,还帮助我分析了错误的原因,并给出了改进的建议。这样一来,我在每次刷题后都能清晰地看到自己的进步,知识掌握程度也得到了显著的提升。

刷题故事

在使用AI刷题功能的过程中,我有一段特别难忘的经历。那是一道难度极高的算法题,我尝试了多次都未能成功解答。当时,我几乎要放弃,但AI刷题功能中的提示和解析给了我坚持下去的动力。我不断地调整思路,尝试不同的解题方法,终于在一次次的尝试后,成功攻克了这道难题。那一刻,我感受到了前所未有的成就感和喜悦,也更加坚定了自己学习编程的决心。

问题描述

小U和 n 个小朋友正在玩一个有趣的糖果传递游戏。n 个小朋友按顺序排成一列,小U站在最右边的位置。游戏开始时,小U为每个小朋友分配了 a[1], a[2], ..., a[n] 个糖果。现在,小U手里还剩下 m 个糖果要分配。

分配规则如下:

  1. 每个糖果都会先从第一个小朋友开始分配。如果当前小朋友的糖果数量(包括新分配的糖果)小于或等于他的右边的小朋友,则他会保留这个糖果。
  2. 如果当前小朋友的糖果数量大于他右边的小朋友,他会将这个糖果传递给下一个小朋友。
  3. 这个过程会持续,直到糖果传递到第 n 个小朋友。如果第 n 个小朋友也不能保留这个糖果,那么糖果会被传递给小U。

现在,请你帮忙确定第 m 个糖果最终会分配给哪个小朋友,或者传递给小U。

测试样例

样例1:

输入:n = 4, m = 3, a = [1, 2, 3, 4]
输出:1

样例2:

输入:n = 4, m = 2, a = [4, 3, 2, 3]
输出:5

样例3:

输入:n = 4, m = 2, a = [4, 3, 2, 2]
输出:5

代码展示:

def solution(n, m, a):

    st = [] # 维护递减单调栈

    cur = 0

    for i in range(n):

        while st and a[st[-1]] <= a[i]: # 遇到比栈顶高的元素

            index = st.pop()

            height = (a[i] - a[index]) if not st else min(a[i], a[st[-1]]) - a[index] # 计算凹槽的高

            width = i if not st else i - st[-1] - 1 # 计算凹槽的宽

            area = width * height

            if cur+area >= m: # 判断m是否在此凹槽中

                return (area - (m-cur)) % width + 1 if not st else st[-1] + (area - (m-cur)) % width + 2 # 返回索引+1

            cur+=area

        st.append(i)

    return n + 1 # 返回小U的位置

解答正确

恭喜成功通过

MarsCode AI

此外,我还和同学一起使用了这款AI刷题功能。我们互相竞争,互相鼓励,共同进步。每当有人解出了一道难题,我们都会分享解题思路和技巧,这种团队合作的学习方式,让我们的学习效率得到了极大的提升。

AI认知

对于AI技术在教育领域的应用,我深感震撼和期待。AI技术不仅能够根据学生的学习情况,提供个性化的学习方案,还能实时反馈学生的学习进度和掌握程度,帮助教师更好地了解学生的学习状况。这种智能化的教学方式,无疑为传统教育带来了革命性的变革。

而这款产品的AI刷题功能,更是让我对学习的认知发生了改变。过去,我认为学习就是死记硬背和机械练习,但现在我明白了,学习应该是一个主动探索、不断思考和实践的过程。AI刷题功能通过引导我主动思考问题、解决问题,让我更加深入地理解了编程的精髓和乐趣。同时,它也让我意识到,只有不断地学习和进步,才能跟上这个日新月异的时代步伐。

总的来说,AI刷题功能不仅提升了我的学习效率,还改变了我对学习的认知。我相信,在未来的日子里,AI技术将会在教育领域发挥更加重要的作用,为更多的学生带来更加优质、高效的学习体验。