参加青训营已经一段时间了,期间也在MarsCode AI上面刷了不少的题。现在我想以自己的刷题经历,简单说说我的感受,观点仅代表个人看法哈。
这里我就选择“超市里的货物架调整”这个题目为例子进行说明。以下是题目的详细描述:
"在一个超市里,有一个包含 nn 个格子的货物架,每个格子中放有一种商品,商品用小写字母
a到z表示。当顾客进入超市时,他们会依次从第一个格子查找到第 nn 个格子,寻找自己想要购买的商品。如果在某个格子中找到该商品,顾客就会购买它并离开;如果中途遇到一个空格子,或查找完所有格子还没有找到想要的商品,顾客也会离开。
作为超市管理员,你可以在顾客到来之前重新调整商品的顺序,以便尽可能多地出售商品。当第一个顾客进入后,商品位置不能再调整。你需要计算在最优调整下,最多可以卖出多少件商品。输入变量说明:
n:货物架的格子数m:顾客想要购买的商品种类数s:货物架上商品的初始顺序c:顾客想要购买的商品种类
测试样例
样例1:
输入:
n = 3 ,m = 4 ,s = "abc" ,c = "abcd"
输出:3
样例2:
输入:
n = 4 ,m = 2 ,s = "abbc" ,c = "bb"
输出:2
样例3:
输入:
n = 5 ,m = 4 ,s = "bcdea" ,c = "abcd"
输出:4
问题给出的格式是
def solution(n: int, m: int, s: str, c: str) -> int:
# write code here
return 0
if name == 'main':
print(solution(3, 4, "abc", "abcd") == 3)
print(solution(4, 2, "abbc", "bb") == 2)
print(solution(5, 4, "bcdea", "abcd") == 4)
}
这道题目是一道考察贪心算法的题目,不过当时自己对于这类题目还是存在不理解的地方,尽管有点基本的想法,但仅仅是想法,代码能力以及逻辑思维水平很差,无法解决。不仅是这道题,在刷题过程中碰到有类似情况的时候,总会感到棘手难堪。
不过每当这个时候,我都会在右侧Marscod AI对话框里点击“给我一些代码提示”如下图所示
这个功能对我来说帮助很大,极大的提高了我的思维逻辑,ai会给我一些基本的思路逻辑提示,这让我能够看到我的思维是如何一步一步转化为代码的,见下图
在提示下,将问题逐步分解,然后具体考虑每个小的逻辑功能要怎么实现,这样的刷题体验让我有很大的成就感,虽然很多时候有了代码提示也不能正确写出题解,这个时候我会尽自己所能把能实现的代码尽力写下来,遇到实在不会的、卡壳的地方,我会接着点击“帮我检查一下编辑区的代码”
ai会自动检测已经完成的代码纠错,并继续给我进行提示
通过类似的做题方法——自己先思考,尽力写自己能实现的代码,然后依靠Marscode AI进一步完善自己的代码,最终完成题解——我感觉自己在刷题中收获了不少经验知识,进一步加深了对相对应知识点的理解。
总之,我在Marscode AI刷题中收获良多。