网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

GPT4做Leetcode的能力

时间:2023-04-28 15:27

人气:

作者:admin

标签: 代码  GPT  算法 

导读:虽然一次周赛的几个题目说明不了太多问题,比如这个周赛的Hard题目就是板子题,算不上Hard,也许把第三题和第四题的顺序换一下比较合适。但是,GPT4的表现已经严重超出了我的预期...

虽然一次周赛的几个题目说明不了太多问题,比如这个周赛的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的人的表现如何。

4c3d0b6c-e593-11ed-ab56-dac502259ad0.png

为了公平起见,我这里选取了LeetCode第 102 场双周赛(https://leetcode.cn/contest/biweekly-contest-102/)也就是2023年4月15日的这一场。我打算用GPT4来尝试解开这场周赛的4道题目,但是不一定能都解开,只是测试一下GPT4的写算法的能力。

我将全程只指挥GPT4写代码来解题,我自己不做任何的Coding工作。

先建立一个GPT4的新对话:

4c4b8c64-e593-11ed-ab56-dac502259ad0.png

在这里插入图片描述

0x1. 第一题

第一题是个Easy的题目,描述如下:

4c5276fa-e593-11ed-ab56-dac502259ad0.png

接下来,我们先把题面输入到GPT4。

4c5c017a-e593-11ed-ab56-dac502259ad0.png

4c653dd0-e593-11ed-ab56-dac502259ad0.png

4c6da7ae-e593-11ed-ab56-dac502259ad0.png



GPT4给了我们一个回复,感觉挺对的,但是这种格式不能让Leetcode直接通过,我们再让GPT4更新一下格式:

4c79d510-e593-11ed-ab56-dac502259ad0.png

4c82a1fe-e593-11ed-ab56-dac502259ad0.png

接下来就是紧张的时刻,我们把这个类的代码提交给Leetcode。

4c89800a-e593-11ed-ab56-dac502259ad0.png

结果错误,Leetcode返回了错误的例子。我们把这个错误的例子再返回给GPT4让它自己debug。

4c93b7d2-e593-11ed-ab56-dac502259ad0.png

我们把它修正后的代码提交给Leetcode。

4c9e6628-e593-11ed-ab56-dac502259ad0.png

现在GPT4顺利通过了第一道题目。

0x2. 第二题

4ca9fae2-e593-11ed-ab56-dac502259ad0.png

在这里插入图片描述

我们问一下GPT4

4cb18d0c-e593-11ed-ab56-dac502259ad0.png

4cbfb45e-e593-11ed-ab56-dac502259ad0.png

4cccf588-e593-11ed-ab56-dac502259ad0.png

我们提交给Leetcode试试。

4cd3e7c6-e593-11ed-ab56-dac502259ad0.png

直接通过,GPT4真有点强。

0x3. 第三题

4cde24a2-e593-11ed-ab56-dac502259ad0.png

问问GPT4:

4ce8c628-e593-11ed-ab56-dac502259ad0.png

4cefd8a0-e593-11ed-ab56-dac502259ad0.png

4cf592d6-e593-11ed-ab56-dac502259ad0.png

4cfd17d6-e593-11ed-ab56-dac502259ad0.png

这个问题感觉还是比较麻烦的,GPT4给出的方案感觉一眼假,不过我们不妨运行一下它给的代码。

4d05a6d0-e593-11ed-ab56-dac502259ad0.png

我们发现编译就报错了。我们返回这个结果给GPT4:

4d0c43e6-e593-11ed-ab56-dac502259ad0.png

4d154662-e593-11ed-ab56-dac502259ad0.png

现在确实可以编译了,但我们发现这个程序连样例都无法通过。显然,GPT4根本没有理解这道题目的意思,结果倾向于是“胡说八道”。再加强一些提示:

4d1fe52c-e593-11ed-ab56-dac502259ad0.png

4d28223c-e593-11ed-ab56-dac502259ad0.png

4d33024c-e593-11ed-ab56-dac502259ad0.png

最后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能否解开。

4d3dcc9a-e593-11ed-ab56-dac502259ad0.png

4d4be8ac-e593-11ed-ab56-dac502259ad0.png

4d5668cc-e593-11ed-ab56-dac502259ad0.png

4d624a02-e593-11ed-ab56-dac502259ad0.png

在这里插入图片描述

我们来看一下GPT4给出的答案能否通过样例。

4d6cab00-e593-11ed-ab56-dac502259ad0.png

是可以通过给出的样例的。我们提交试试。

4d77415a-e593-11ed-ab56-dac502259ad0.png

这道题GPT4的完整代码实现如下:

classGraph{
public:
Graph(intn,vector<vector<int>>&edges){
this->n=n;
for(constauto&edge:edges){
adjList[edge[0]].push_back({edge[1],edge[2]});
}
}

voidaddEdge(vector<int>edge){
adjList[edge[0]].push_back({edge[1],edge[2]});
}

intshortestPath(intnode1,intnode2){
vector<int>dist(n,INT_MAX);
dist[node1]=0;

priority_queueint,int>,vectorint,int>>,greaterint,int>>>pq;
pq.push({0,node1});

while(!pq.empty()){
intcurrNode=pq.top().second;
intcurrDist=pq.top().first;
pq.pop();

if(currNode==node2)returncurrDist;

if(currDist>dist[currNode])continue;

for(constauto&neighbor:adjList[currNode]){
intnextNode=neighbor.first;
intedgeCost=neighbor.second;

if(currDist+edgeCost< dist[nextNode]) {
                    dist[nextNode] = currDist + edgeCost;
                    pq.push({dist[nextNode], nextNode});
                }
            }
        }
        return-1;
}

private:
intn;
unordered_map<int,vectorint,int>>>adjList;
};

虽然这道题很难说是Hrad的难度,但1A真的太吓人了。。。

0x5. 总结+预测

虽然一次周赛的几个题目说明不了太多问题,比如这个周赛的Hard题目就是板子题,算不上Hard,也许把第三题和第四题的顺序换一下比较合适。但是,GPT4的表现已经严重超出了我的预期。

对于这次周赛的四个题目,GPT4的表现如下:

题目1: 错了一次,简单提示后修正了错误,2A了。题目2: 1A题目3: 无法通过提示的方法让GPT4做对,WA。题目4: 1A。

不得不说,GPT4在模拟,模板题方面已经具备了不错的理解和处理能力,感觉在更强大的数据和更大模型的加持下以后大语言模型的做题能力能赶上一大半人类。| 从提升算法能力的角度来说,我不建议任何读者使用GPT4来做Leetcode。

审核编辑 :李倩


温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信