在青训营的学习过程中,我经常使用AI刷题功能,例如“二分数字组合”这道题,我首先自己写出如下所示的代码
def solution(n, A, B, array_a):
array_a = [x % 10 for x in array_a]
total_sum = sum(array_a)
total_sum %= 10
if (total_sum == A or total_sum == B):
return 1
if (total_sum != (A + B) % 10):
return 0
f = [[0 for _ in range(10)] for _ in range(n + 1)]
f[0][0] = 1
for i in range(1 , n + 1):
for j in range(10):
f[i][j] += f[i - 1][j]
f[i][j] += f[i - 1][(j - array_a[i - 1] + 10) % 10]
return f[n][B]
经过AI检查后发现了如下所示的问题:
-
返回值问题:
- 你的代码返回的是
f[n][B],这表示前n个数字中,是否存在一种划分方式使得其中一组的和的个位数为 B。但这并不能直接表示所有可能的划分方式的数量。 - 你需要统计所有可能的划分方式,即
f[n][A]和f[n][B]的组合情况。
- 你的代码返回的是
修改建议
-
修改返回值:
- 你需要统计所有可能的划分方式,即
f[n][A]和f[n][B]的组合情况。 - 你可以使用一个计数器来统计所有可能的划分方式。
- 你需要统计所有可能的划分方式,即
根据上述问题修改代码
修改后的代码框架如下所示
def solution(n, A, B, array_a):
array_a = [x % 10 for x in array_a]
total_sum = sum(array_a)
total_sum %= 10
if (total_sum == A or total_sum == B):
return 1
if (total_sum != (A + B) % 10):
return 0
f = [[0 for _ in range(10)] for _ in range(n + 1)]
f[0][0] = 1
for i in range(1 , n + 1):
for j in range(10):
f[i][j] += f[i - 1][j]
f[i][j] += f[i - 1][(j - array_a[i - 1] + 10) % 10]
# 统计所有可能的划分方式
count = 0
for j in range(10):
if f[n][j] > 0:
count += f[n][j]
return count
在我看来,使用 AI 刷题有以下几个显著的好处:
1. 即时反馈
- 快速纠错:AI 可以立即检查你的代码并指出错误,帮助你快速定位问题。
- 实时建议:AI 可以提供实时的代码优化建议,帮助你改进代码的效率和可读性。
2. 个性化学习
- 适应性学习路径:AI 可以根据你的学习进度和理解程度,提供个性化的学习路径和题目推荐。
- 针对性辅导:AI 可以根据你的错误和薄弱点,提供针对性的辅导和练习,帮助你更好地掌握知识点。
3. 提高效率
- 自动化测试:AI 可以自动运行测试用例,节省你手动测试的时间。
- 代码生成:AI 可以帮助你生成代码框架或部分代码,减少重复性工作,让你更专注于算法和逻辑。
4. 多语言支持
- 跨语言学习:AI 可以支持多种编程语言,帮助你在不同语言之间切换学习,拓宽你的编程技能。
- 语言转换:AI 可以帮助你将一种语言的代码转换为另一种语言,方便你在不同项目中使用。
5. 知识库丰富
- 海量题库:AI 可以访问大量的题库和解题思路,帮助你找到更多的练习题目和参考答案。
- 算法讲解:AI 可以提供详细的算法讲解和解题思路,帮助你更好地理解算法和数据结构。
6. 持续学习
- 学习记录:AI 可以记录你的学习进度和解题历史,帮助你跟踪学习效果。
- 持续改进:AI 可以根据你的学习记录,不断优化推荐内容和辅导方式,帮助你持续进步。
总结
使用 AI 刷题可以帮助你更高效地学习和练习编程,提供即时反馈、个性化学习、提高效率、多语言支持、丰富的知识库和持续学习的机会。这些好处可以帮助你更快地掌握编程技能,提升解题能力。
而豆包MarsCode AI刷题存在与市面上其他AI不同的一些更先进的功能,如:
- 精选真题:精选的真题能够确保您接触到具有代表性和典型性的题目,帮助您更高效地掌握核心知识点和常见题型。这对于有针对性地提升解题能力至关重要,避免在一些偏题、怪题上浪费时间。
- 云端编辑器:云端编辑器提供了随时随地进行编程练习的便利,不受本地设备和环境的限制。您可以在不同的设备上继续之前的练习,并且方便保存和分享代码。
- 个性化题目推荐:根据您的学习进度、掌握程度和薄弱环节,为您推荐个性化的题目。这有助于精准地弥补知识漏洞,提高学习效果。
AI 刷题的优势在于能够根据个人情况提供定制化的学习路径。例如,我在学习数据结构时,通过个性化题目推荐,我首先接触到了一些基础的链表操作题目,随着我不断练习并掌握,系统又为我推荐了更复杂的树和图的相关题目。这种循序渐进的方式让我能够逐步提升,而且在遇到难题时,云端编辑器方便我随时修改和调试代码,提高了解题效率。同时,精选真题让我能够快速了解考试的重点和常见题型,为备考提供了明确的方向。