AI刷题实践|豆包MarsCode AI 刷题

109 阅读6分钟

AI刷题:技术与实践相结合的学习方式

本文将总结AI刷题的优势,并通过实践案例分析相关功能如何帮助我提升编程技能与算法解题能力。

什么是AI刷题?

AI刷题,顾名思义,就是利用人工智能技术来辅助刷题的一种学习方式。它借助智能化的工具和算法,能够根据学习者的需求、当前水平、以及目标,精准地推荐题目、提供编程环境,并给出详细的解题思路和优化建议。

在青训营 X 豆包 MarsCode 技术训练营中,AI刷题具备以下几个特点:

  • 精选真题:AI根据学习者的学习进度和需要,提供具有代表性和针对性的真题,让学习者接触到更具挑战性和实用性的题目。
  • 云端编程平台:AI刷题通常结合云端编辑器,方便学习者随时随地进行代码编写、调试和测试,避免了传统离线编程环境的不便。
  • 个性化推荐:AI会根据学习者的解题进度、错误率等因素,为其推荐合适的题目,从而提高学习效率,避免过度重复的低效刷题。

通过AI刷题,学习者不仅可以高效地掌握编程知识和技能,还能提升自己的编程思维、解决问题的能力,甚至在模拟面试和算法竞赛中获得更好的表现。

AI刷题实践

在实际应用中,我结合AI刷题解决了一个经典的154小C点菜问题,展示了AI刷题如何帮助我从理解问题到生成高效代码,再到反思总结的整个过程。

问题描述

小C来到了一家餐馆,准备点一些菜。餐馆提供n道菜,第i道菜的售价为wi。小C准备点一些价格相同的菜,但不允许点单价超过m的菜。小C想知道自己最多可以点多少道菜。

示例

输入m = 6, w = [2, 3, 3, 6, 6, 6, 9, 9, 23]
输出3

输入m = 4, w = [1, 2, 4, 4, 4]
输出3

输入m = 5, w = [5, 5, 5, 5, 6, 7, 8]
输出4

解决步骤

(1)结合AI理解题目

在开始动手编程之前,我可以通过与AI进行对话,帮助我更好地理解题目的要求和思路。比如,直接询问AI如何解这个问题,AI会为我提供详细的思路和解题框架。

例如,在问题描述中,AI可以分析出我们需要先过滤掉单价超过m的菜,然后统计各个价格的菜的数量,最后找出出现次数最多的价格所对应的菜的数量。

image.png

(2)结合AI编写代码

学习《LangChain实战课》后,我了解到了AI通常基于chat模型进行交互,并且通过问答的方式,AI可以为我们提供清晰的思路,并生成相应的代码。比如,在本题中,AI为我提供了如下Python代码:

def solution(m: int, w: list) -> int:
    # 1. 过滤价格超过 m 的菜
    filtered_w = [price for price in w if price <= m]
    
    # 2. 使用字典统计每种价格的菜的数量
    price_count = {}
    for price in filtered_w:
        if price in price_count:
            price_count[price] += 1
        else:
            price_count[price] = 1
    
    # 3. 找出数量最多的那种价格对应的菜的数量
    max_count = 0
    for count in price_count.values():
        if count > max_count:
            max_count = count
    
    return max_count

if __name__ == '__main__':
    print(solution(6, [2, 3, 3, 6, 6, 6, 9, 9, 23]) == 3)
    print(solution(4, [1, 2, 4, 4, 4]) == 3)
    print(solution(5, [5, 5, 5, 5, 6, 7, 8]) == 4)

通过AI的帮助,我不仅能快速编写出高效的代码,还能确保这些代码能够顺利通过各类测试用例。

(3)结合AI进行反思与总结

代码完成后,我可以利用AI对算法进行反思和总结。例如,AI可以分析这段代码的时间复杂度、空间复杂度,进一步帮助我优化代码,避免潜在的性能问题。

例如,AI可以指出,字典在统计价格时使用的是O(n)的时间复杂度,而查找最大值时的时间复杂度为O(k),其中k为菜品种类数。这样,AI不仅帮助我理解了题目的解法,还使我更加注重优化。

image.png

使用AI刷题有什么好处?

使用AI刷题的好处不言而喻,以下是几个显著的优势:

1. 高效的学习路径规划

AI能够根据学习者的水平、学习进度、以及目标,为其定制个性化的学习计划。AI不仅可以根据学习者的答题情况推荐合适的题目,还能够帮助学习者聚焦在自己薄弱的部分进行强化训练。

2. 自动化代码编写与调试

AI能够根据题目要求自动生成代码框架,帮助学习者快速完成代码编写。同时,AI还可以协助调试代码,通过快速定位问题和提供优化建议,帮助学习者减少不必要的错误,提升代码质量。

3. 实时反馈与反思

与传统刷题不同,AI能够实时分析学习者的答题情况,并提供反馈。这种反馈不仅限于题目是否答对,还包括如何优化代码、如何提升效率等方面的建议。此外,AI可以帮助学习者反思解题思路,从多角度分析问题,强化解决问题的能力。

4. 提升编程思维

通过与AI的交互,学习者能够接触到更多元化的编程思路和解题方法。AI不仅能够生成代码,还能够解释代码背后的思想和技巧,帮助学习者深入理解编程原理,并将其运用到其他题目中。

5. 高效的复习与巩固

AI可以根据学习者的错题本自动推荐相关题目,帮助学习者在复习过程中巩固知识点。通过系统化的复习策略,学习者能够更有效地掌握复杂的算法和数据结构,进一步提高自己的解题能力。

6. 节省时间,专注核心学习

AI自动化生成题目、解题过程和代码调试,使学习者能够节省大量时间,避免在琐碎的细节上耗费精力。这使得学习者可以将更多精力集中在核心知识点的学习和深度理解上,从而更高效地提升自己的编程水平。