这个标题或许听起来很斗胆,很有点击率,但现实就是如此……

几天前,我偶尔发现了LinkedIn上的一个帖子(不幸的是,我没有保存链接),其间一个程序员展现了他对LeetCode应战的处理方案。代码很好,帖子得到了几十个人的喜爱,这无疑是名副其实的。我决定将这些要求反馈给ChatGPT-4,看看它是否能了解并处理这个问题。结果是……风趣的,我花了一些时刻对人工智能进行实验,修改了提示,看看它对结果有什么影响。

应战

首先,我希望你看一下LeetCode问题并测验处理它。花点时刻,想一想。然后,谷歌一下。是的,在互联网上查找最佳处理方案。

给出两个整数数组pushedpopped ,每个数组都有不同的值,假如这或许是初始空仓库上一连串推和弹操作的结果,则回来true不然回来false

例子1:

Input: pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
Output: true
Explanation: We might do the following sequence:
push(1), push(2), push(3), push(4),
pop() -> 4,
push(5),
pop() -> 5, pop() -> 3, pop() -> 2, pop() -> 1

例2:

Input: pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
Output: false
Explanation: 1 cannot be popped before 2.

约束条件:

  • 1 <= pushed.length <= 1000

  • 0 <= pushed[i] <= 1000

  • pushed 的一切元素都是唯一的

  • popped.length == pushed.length

  • popped 是 的一个置换。pushed

完结了吗?

好了,还记得我让你动脑筋,用谷歌查找吗?所以,假如机器生成的处理方案刚好更有用,那么 “这不公正,因为它是在互联网的数据上训练出来的 “的说法是不被承受的。

开释克拉肯

当我开始要求ChatGPT处理这个应战时,我从LeetCode复制了这个任务。但是,在这种情况下,它或许的确看起来像人工智能从它的 “回忆 “深处拉出的处理方案,没有经过多少 “考虑”。因而,让咱们重新表述一下要求,看看机器是否可以处理它。这是我使用的提示:

ChatGPT-4的表现优于90%的开发者

输出:

ChatGPT-4的表现优于90%的开发者

不错,根据LeetCode的统计,这是个均匀的处理方案,或多或少。现在让咱们进一步推进咱们心爱的人工智能,并要求它加强代码:

ChatGPT-4的表现优于90%的开发者

ChatGPT-4的表现优于90%的开发者

这就是作业变得真实风趣的地方!它不只供给了一个优雅的处理方案,没有分配仓库,并且还解说了这种优化或许发生的潜在问题。让咱们在LeetCode上检查一下吧:

ChatGPT-4的表现优于90%的开发者

数字是不言而喻的,对吗?当然,有些人或许会以为LeetCode的基准不一致,这是一个合理的观念。尽管如此,现实是,人工智能立即发生了一个像样的处理方案,并以一种不是每个软件工程师都能做到的方式改进了它。

下一步是什么?

那么,咱们的作业安全吗?

是的(除非你为埃隆-马斯克作业)

打个比方,今天的ChatGPT(以及GitHub Copilot等其他人工智能帮手)就像一个电动东西,可以钻洞、打螺丝、锯东西等等。但是,假如你只是把它放在地上,它不会为你制作房子。更重要的是,不熟练的人乃至或许用这种东西损伤自己。另一方面,有经验的工程师可以利用人工智能的力量和潜力,大幅进步他们的作业质量。

就到这里吧。干杯!