青训营X豆包MarsCode 技术训练营刷题心得| 豆包MarsCode AI 刷题

46 阅读4分钟

这篇青训营 X 豆包MarsCode 技术训练营伴学笔记我选择的方向是方向一:学习方法与心得。

虽然不是算法选手,但这一篇或许可以提供一些AI刷题上的技巧?借助豆包MarsCode AI更好刷题!

如果不知道豆包MarsCode AI,刷题链接在juejin.cn/problemset 。 还有更多利用豆包MarsCode AI的经验和技巧在微信公众号豆包MarsCode!(0基础上手也很轻松)

下面是豆包MarsCode AI刷题的页面(可以选择题型和状态进行刷题)

image.png 下面举了一些例子进行AI刷题技巧+经验展示 (可以分别输入指令对思路、图解、代码详解进行辅助。)

image.png AI代码陪练是来帮助我们提高代码能力的。

如果遇到题目想了很久没有思路,可以输入这样的指令“假如你现在是一名算法专家,你能告诉我解决这道题的思路是什么吗?”

下面是AI的回答:

当然可以!解决这道题的关键在于理解题目中给出的条件:除了一个数字之外,所有的数字都恰好出现了两次。我们可以利用异或运算(XOR)的特性来解决这个问题。

解题思路
  1. 异或运算的特性

    • 异或运算(XOR)是一种位运算,具有以下特性:

      • a ^ a = 0:任何数与自身异或的结果是0。
      • a ^ 0 = a:任何数与0异或的结果是它本身。
      • 异或运算满足交换律和结合律:a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b
  2. 利用异或运算

    • 由于题目中除了一个数字之外,所有的数字都恰好出现了两次,因此我们可以通过对数组中的所有数字进行异或运算,最终得到的结果就是那个只出现一次的数字。

    • 具体步骤如下:

      1. 初始化一个变量 result 为0。
      2. 遍历数组中的每一个数字,将 result 与当前数字进行异或运算。
      3. 最终 result 的值就是那个只出现一次的数字。
算法步骤
  1. 初始化 result 为0。

  2. 遍历数组 cards 中的每一个元素 card

    • 将 result 与 card 进行异或运算,即 result = result ^ card
  3. 返回 result,它就是那个只出现一次的数字。

时间复杂度
  • 该算法的时间复杂度为 O(n),其中 n 是数组的长度。因为我们只需要遍历一次数组。
空间复杂度
  • 该算法的空间复杂度为 O(1),因为我们只使用了一个额外的变量 result,没有使用额外的数据结构。

通过这种方式,我们可以在 O(n) 的时间复杂度和 O(1) 的空间复杂度内解决这个问题。

如果希望通过图解的方式辅助理解,可以在思路prompt后追加“可以以图解方式辅助我的理解吗?”

AI同样会输出相应图解进行辅助

image.png

如果希望给出正确代码及详解,可输入prompt“请根据题目要求输出完整、正确、可运行代码并做出详解,注意一定不要出错报错!请注意,函数名是solution!”

这对绝大多数题目适用,可以辅助大多数简单题和中等题。 AI同样会输出完整代码,后面附带详解

image.png

image.png

如果你想利用豆包MarsCode AI 进行刷题练习,你可以输入prompt“现在你是一名知识点总结专家,这道题涉及算法中哪些知识呢?我没做出来这道题你推荐我继续加强哪一方面的知识呢?如果我要弥补我这一方面的缺漏,我可以继续刷AI题库中的哪些题?”

AI会输出考察的知识点以及在本题哪些地方应用以及推荐刷题方向

image.png

image.png

image.png

然后对于没有做出来的题,学习后重新回来刷题快速检索的方法就是选择进行中状态的题目!

好了,这是我目前觉得一些比较好的刷题技巧和方法,希望对你有帮助,或许都是prompt相关的内容,但是或许方便AI刷题呢?