青训营X豆包MarsCode 技术训练营第一课 | 豆包MarsCode AI 刷题

35 阅读3分钟

在使用AI刷题功能的过程中,我深刻体会到了学习的效率和思维方式发生了显著变化。以前我在刷题时常常遇到瓶颈,尤其是在编程思维和算法优化上,面对一些难题时,思维容易被限制,找不到合适的解法。而自从使用了AI刷题功能,整个学习过程变得更加高效,掌握编程思维的速度大大提高。

AI不仅能帮助我快速理解题意,分析问题的本质,还能在我卡壳的时候提供提示,甚至给出详细的解题思路与代码实现。特别是在编程语言和算法的应用上,AI能够快速提供多种解法,帮助我从不同的角度审视问题。这让我在面对复杂问题时,能够更灵活地选择合适的解决方案,并且不断积累新的编程技巧。例如,在解决这道关于频率统计和排序的题目时,通过AI的提示,我快速理解了如何利用Counter和heapq来处理这类问题,既能高效地获取频率前k高的元素,又能在最后对结果进行排序,代码实现简洁且高效,思维方式得到了极大的提升。

通过刷题,我发现自己在编程和算法的掌握程度有了明显提高。以前在做题时,我常常需要花费较长时间来查阅资料,理解思路,而现在,借助AI的帮助,我能够迅速找到知识点的关键,并通过实战加深理解。特别是在算法复杂度、数据结构的使用等方面,我的理解更加深入,思维也更加清晰。

那是在我刚开始学习算法时,遇到了一道关于数组操作的题目,题目看似简单,但对于我这种初学者来说,处理起来有些困难。我尝试了很久,但始终找不到合适的解法,心情也变得有些沮丧。

正当我准备放弃时,我决定借助AI进行思路突破。AI首先分析了题目的要求,然后给出了分步的解法,包括详细的代码和优化思路。通过AI的帮助,我不仅学会了如何实现算法,还深入理解了其背后的思想和时间复杂度分析。当我终于在代码中看到正确的结果时,那种成就感是无法言喻的。更重要的是,这次刷题让我对解决问题的思路有了更深的认识,也让我明白了坚持和正确的思路可以帮助我攻克任何难题。

代码:python

import heapq

from collections import Counter

 

def solution(nums, k):

    # 统计每个元素的频率

    frequency = Counter(nums)

 

    # 使用最小堆来找出频率前 k 高的元素

    # heapq.nlargest 返回前 k 个频率最大的元素

    top_k_elements = heapq.nlargest(k, frequency.keys(), key=frequency.get)

 

    # 返回升序排列的结果,并转换为字符串

    return ','.join(map(str, sorted(top_k_elements)))

 

if name == "main":

    # 测试用例

    print(solution([1, 1, 1, 2, 2, 3], 2) == "1,2")  # 输出: True

    print(solution([1], 1) == "1")                    # 输出: True

    print(solution([4, 4, 4, 2, 2, 2, 3, 3, 1], 2) == "2,4")  # 输出: True