虽然一次周赛的几个题目说明不了太多问题,比如这个周赛的hard题目就是板子题,算不上hard,也许把第三题和第四题的顺序换一下比较合适。但是,gpt4的表现已经严重超出了我的预期。对于这次周赛的四个题目,gpt4的表现如下:题目1: 错了一次,简单提示后修正了错误,2a了。题目2: 1a。题目3: 无法通过提示的方法让gpt4做对,wa。题目4: 1a。不得不说,gpt4在模拟,模板题方面已经具备了不错的理解和处理能力,感觉在更强大的数据和更大模型的加持下以后大语言模型的做题能力能赶上一大半人类。| 从提升算法能力的角度来说,我不建议任何读者使用gpt4来做leetcode。
0x0. 前言 gpt4论文(https://cdn.openai.com/papers/gpt-4.pdf)的第4节展示了gpt4的各种能力,在表格的最后三行展示了gpt4做leetcode的能力,我比较感兴趣,所以本文打算来探索一下这种能力。看一下gpt4配合一个只发出prompt的人的表现如何。
为了公平起见,我这里选取了leetcode第 102 场双周赛(https://leetcode.cn/contest/biweekly-contest-102/)也就是2023年4月15日的这一场。我打算用gpt4来尝试解开这场周赛的4道题目,但是不一定能都解开,只是测试一下gpt4的写算法的能力。
我将全程只指挥gpt4写代码来解题,我自己不做任何的coding工作。
先建立一个gpt4的新对话:
在这里插入图片描述 0x1. 第一题 第一题是个easy的题目,描述如下:
接下来,我们先把题面输入到gpt4。
gpt4给了我们一个回复,感觉挺对的,但是这种格式不能让leetcode直接通过,我们再让gpt4更新一下格式:
接下来就是紧张的时刻,我们把这个类的代码提交给leetcode。
结果错误,leetcode返回了错误的例子。我们把这个错误的例子再返回给gpt4让它自己debug。
我们把它修正后的代码提交给leetcode。
现在gpt4顺利通过了第一道题目。
0x2. 第二题
在这里插入图片描述 我们问一下gpt4
我们提交给leetcode试试。
直接通过,gpt4真有点强。
0x3. 第三题
问问gpt4:
这个问题感觉还是比较麻烦的,gpt4给出的方案感觉一眼假,不过我们不妨运行一下它给的代码。
我们发现编译就报错了。我们返回这个结果给gpt4:
现在确实可以编译了,但我们发现这个程序连样例都无法通过。显然,gpt4根本没有理解这道题目的意思,结果倾向于是“胡说八道”。再加强一些提示:
最后gpt4输出的代码仍然无法通过样例。这道题,gpt4应该是无能为力了。
从这道题目,我们可以看到gpt4的局限性,那就是对于这种思维性的题目,gpt4很难理解这道题目暗含的意思,设计的算法也是错误的。
题解可以参考:https://leetcode.cn/problems/cousins-in-binary-tree-ii/solution/bfssuan-liang-ci-pythonjavacgo-by-endles-b72a/
0x4. 第4题 接下来我们看一下第4题,这个题是比较模板的题,我们看一下gpt4能否解开。
在这里插入图片描述 我们来看一下gpt4给出的答案能否通过样例。
是可以通过给出的样例的。我们提交试试。
这道题gpt4的完整代码实现如下:
class graph {public: graph(int n, vector
& edges) { this->n = n; for (const auto& edge : edges) { adjlist[edge[0]].push_back({edge[1], edge[2]}); } } void addedge(vector edge) { adjlist[edge[0]].push_back({edge[1], edge[2]}); } int shortestpath(int node1, int node2) { vector dist(n, int_max); dist[node1] = 0; priority_queue, greater> pq; pq.push({0, node1}); while (!pq.empty()) { int currnode = pq.top().second; int currdist = pq.top().first; pq.pop(); if (currnode == node2) return currdist; if (currdist > dist[currnode]) continue; for (const auto& neighbor : adjlist[currnode]) { int nextnode = neighbor.first; int edgecost = neighbor.second; if (currdist + edgecost < dist[nextnode]) { dist[nextnode] = currdist + edgecost; pq.push({dist[nextnode], nextnode}); } } } return -1; }private: int n; unordered_map> adjlist;}; 虽然这道题很难说是hrad的难度,但1a真的太吓人了。。。
0x5. 总结+预测 虽然一次周赛的几个题目说明不了太多问题,比如这个周赛的hard题目就是板子题,算不上hard,也许把第三题和第四题的顺序换一下比较合适。但是,gpt4的表现已经严重超出了我的预期。
对于这次周赛的四个题目,gpt4的表现如下:
题目1: 错了一次,简单提示后修正了错误,2a了。题目2: 1a题目3: 无法通过提示的方法让gpt4做对,wa。题目4: 1a。
不得不说,gpt4在模拟,模板题方面已经具备了不错的理解和处理能力,感觉在更强大的数据和更大模型的加持下以后大语言模型的做题能力能赶上一大半人类。| 从提升算法能力的角度来说,我不建议任何读者使用gpt4来做leetcode。
华为智选车载智慧屏:搭载鸿蒙 OS 2.0 系统 与Mate40 系列一同发布
大陆集团汽车业务重组:分拆赚钱和不赚钱的
iPhone6翻新机和山寨机的鉴别方法
并联电容器和串联电容器的作用
Intel驱动开始默认搜集数据
GPT4做Leetcode的能力
刷脸支付与5G的相遇,是否是下一个现象级支付方式
中国半导体市场需求约为全球的1/3 年均复合增速超过20%
bcd七段闪现译码器电路原理
iPhoneSE再次开售 你愿意花2000多元买一台3年前的苹果手机吗
电气维修方法论第二十七篇(排查过程的繁难故障2)
国内外人工智能专家聚首RAIC雷克大会
安捷伦直流电源分析仪N6705B开机跳闸维修
区块链技术应用程序Sweatcoin当用户运动时就会发放虚拟货币奖励
台积电报废10万晶圆 7nm成新主力
惠普改组管理层任命新COO和软件业务副总裁
海尔智家001号体验中心正式落成
未来可穿戴设备或将改变行动不便人士的生活
三星S8怎么样?三星S8评测:三星S8和小米6将在印度“开战”,谁略胜一筹?
中国集成电路产业迎来新契机