虽然 ChatGPT 令人印象深刻,但它似乎无法轻松给出复杂问题的正确答案。我尝试使用 ChatGPT 解决前 10 个 Leetcode 难题(标记在热门面试问题下)以验证相同的问题。
您可以在此处找到问题:问题集。其中一些包括著名的问题,例如滞留雨水和滑动窗户。
我不会在本文中浪费您的时间来展示 ChatGPT 提供的所有提示、代码和响应。相反,我将从整体经验中浓缩我的观察和学习。基本做法是将Leetcode题目的全部或部分作为提示给ChatGPT。
这是结果的摘要。
- 两个排序数组的中位数 ——第一次尝试,直接解决方案,无需更改代码/进一步分析。无论哪种方式,这都是一个简单的问题。一分钟完成。
- 正则表达式匹配——第一次尝试,给了一个运行代码。然而,它只通过了 287/353 个测试用例。对于模式比字符串长的边缘场景,代码失败。这也很令人印象深刻。然后我用 ChatGPT 重试,包括所有示例,并寻找优化的解决方案。它提出了一种使用动态编程的方法,并且在没有任何代码更改的情况下通过了所有测试用例。在大约 15 分钟内完成,因为我正在尝试不同的修改以得出 DP 解决方案。请注意,我没有提到在任何地方使用 DP。
- 合并 k 个排序列表——前三次尝试,它没有给出正确的解决方案。也有语法错误。最初,它试图给出一个使用堆的解决方案。然后我刷新并修改提示并使其简短明了。像那样,我得到了一个解决方案,它首先创建一个辅助函数来合并两个列表并使用它来合并所有列表。无需更改代码。所有测试用例都通过了。约 10 分钟内完成。
- 第一个缺失阳性——第 5 次重试,它成功了!无需更改代码。所有测试用例都通过了。约 6 分钟内完成。它给出的前几个解决方案都结束了,要么有语法错误,要么没有通过测试用例。然后我刷新所有内容并尝试在