实战AI生成LeetCode算法答案 应届生开挂利器 GitHub Copilot开启AI自动生成代码的时代

Posted AI架构师易筋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实战AI生成LeetCode算法答案 应届生开挂利器 GitHub Copilot开启AI自动生成代码的时代相关的知识,希望对你有一定的参考价值。

1. GitHub Copilot 为开发人员实现以下内容

  • 获取基于 AI 的编码建议:获取与项目的上下文和样式约定相匹配的代码建议,并循环通过不同的选项来决定接受、拒绝或编辑什么。
  • 使用您喜欢的环境:将 GitHub Copilot 与流行的编辑器集成,包括 Neovim、JetBrains IDE、Visual Studio 和 Visual Studio Code,作为不显眼的扩展。
  • 在陌生领域自信地编写代码:使用新语言编写代码或尝试新事物,让 GitHub Copilot 建议数十种语言的语法和代码,这样您就可以花更多时间边做边学。

2. 实战Visual Studio Code

Visual Studio Code 插件 搜索 copilot

在右下角可以启用或者禁用 Copilot


创建js文件,输入function calculateDaysBetweenDates(begin, end) 花括号里面回车,生成灰色的代码

Mac 选择下一个的生成代码 option + [, 或者 option + ]

tab 后就表示接收方案。

function calculateDaysBetweenDates(begin, end) 
    var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
    var firstDate = new Date(begin);
    var secondDate = new Date(end);
    var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
    return diffDays;

2.1 我们进阶玩耍一下,生成LeetCode上面的答案

题目:https://leetcode.com/problems/binary-tree-preorder-traversal/submissions/
把题目编程注释,填写如下:
输入一下代码:

# 144. Binary Tree Preorder Traversal
# Given the root of a binary tree, return the preorder traversal of its nodes' values.
# Example 1:
# Input: root = [1,null,2,3]
# Output: [1,2,3]

# Example 2:
# Input: root = []
# Output: []

# Example 3:
# Input: root = [1]
# Output: [1]
 
# Constraints:
# The number of nodes in the tree is in the range [0, 100].
# -100 <= Node.val <= 100

# Definition for a binary tree node.
class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:

生成代码1:递归实现,深度优先算法

生成答案二:遍历实现,广度优先算法

LeetCode 提交一下,通过

这就是生成的代码

class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        if not root:
            return []
        res = [root.val]
        res += self.preorderTraversal(root.left)
        res += self.preorderTraversal(root.right)
        return res

3. GitHub Copilot 代码建议优势

3.1 经过数十亿行代码的训练,GitHub Copilot 将自然语言提示转化为数十种语言的编码建议。

3.2 专注于解决更大的问题

花更少的时间创建样板和重复的代码模式,而将更多时间花在重要的事情上:构建出色的软件。写一条评论来描述您想要的逻辑,GitHub Copilot 将立即建议代码来实现该解决方案。

3.3 与您最喜欢的编辑器一起继续飞行

GitHub Copilot 直接集成到您的编辑器中,包括 Neovim、JetBrains IDE、Visual Studio 和 Visual Studio Code,并且速度足够快,可以在您键入时使用。

3.4 在陌生领域自信地编码

无论您是使用新语言或框架,还是只是学习编码,GitHub Copilot 都可以帮助您找到自己的方式。解决错误,或学习如何使用新框架,而无需花费大部分时间浏览文档或搜索网络。

在 GitHub,我们的使命之一是构建让开发人员满意的技术。自去年推出 GitHub Copilot 技术预览版以来,人工智能是赋能下一代开发人员的最佳工具之一,这一点变得非常清楚。

人工智能已经在我们的日常生活中扮演副驾驶的角色。它可以帮助我们写电子邮件和论文,自动生成亲人的相册,甚至可以充当数字助理来帮助我们订购杂货。但直到现在,人工智能还没有改进代码,开发软件的过程几乎完全是手动的。

现在情况正在改变。今天,我很高兴地宣布,我们将向个人开发人员普遍提供GitHub Copilot 。您的 AI 配对程序员就在这里。

借助 GitHub Copilot,在软件历史上尚属首次,开发人员可以广泛利用 AI 来编写和完成代码。就像编译器和开源的兴起一样,我们相信 AI 辅助编码将从根本上改变软件开发的性质,为开发人员提供一种新工具,让他们更轻松、更快地编写代码,让他们的生活更快乐。

等待已经结束
我们专门将 GitHub Copilot 设计为编辑器扩展,以确保没有任何东西妨碍您的工作。GitHub Copilot 将全球开发人员的集体知识提炼成一个编辑器扩展,它可以实时建议代码,帮助您专注于最重要的事情:构建出色的软件。

当您键入代码或评论时,GitHub Copilot 会建议下一行代码。但这不仅仅是一个单词或一行代码。GitHub Copilot 可以建议完整的方法、样板代码、整个单元测试,甚至是复杂的算法。

在过去 12 个月中,我们的技术预览版中有超过 120 万开发人员,开始使用 GitHub Copilot 的人很快告诉我们,它已成为他们日常工作流程中不可或缺的一部分。在启用它的文件中,近 40% 的代码是由 GitHub Copilot 使用 Python 等流行的编码语言编写的,我们预计这一数字还会增加。这为开发人员创造了更多的时间和空间来专注于解决更大的问题和构建更好的软件。

现在,您可以免费试用 60 天,让 GitHub Copilot 的强大功能在您喜欢的环境中工作。

亲自使用GitHub Copilot

3.5 对经过验证的学生和流行开源项目的维护者免费

如果没有 GitHub 充满活力的学生和创作者社区,GitHub Copilot 就不可能实现。为了支持和回馈这些社区,我们将 GitHub Copilot 免费提供给经过验证的学生和流行开源项目的维护者。

如果您是学生并想参与该计划,请申请 GitHub Student Pack以开始使用。如果您是开源维护者,请查看我们的常见问题解答,了解您是否有资格免费开始使用 GitHub Copilot。

笔者已经开启…

3.6 今年晚些时候进入公司

GitHub Copilot 是我们向开发人员赋能 AI 的第一步。从今天开始,它现在可供所有开发人员使用,我们将在今年晚些时候开始向公司提供它。🚀

参考

https://github.blog/2022-06-21-github-copilot-is-generally-available-to-all-developers/

以上是关于实战AI生成LeetCode算法答案 应届生开挂利器 GitHub Copilot开启AI自动生成代码的时代的主要内容,如果未能解决你的问题,请参考以下文章

AI已经会刷LeetCode了

九章算法 基础算法 强化算法 系统设计 大数据 安卓 leetcode 高清视频

九章算法 基础算法 强化算法 系统设计 大数据 安卓 leetcode 高清视频

惊了,AI已经学会刷LeetCode了!

AI应用开发实战 - 定制化视觉服务的使用

北大学霸LeetCode刷题笔记!(建议收藏,熟读并背诵)