Amazon CodeWhisperer让力扣不再用力code!

这篇具有很好参考价值的文章主要介绍了Amazon CodeWhisperer让力扣不再用力code!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

书接上文《爱编程 why not AI编程》,通过前文的对于Amazon CodeWhisperer的介绍、入门指南、相关课程以及【云上探索实验室】活动,各位读者们应该对于Amazon CodeWhisperer有了一些了解,那么作者今天将该通过本篇文章来介绍用Amazon CodeWhisperer去解力扣(LeetCode)的题目。
总所周知,力扣(LeetCode,下面直接称呼为力扣)是万千程序员的编码训练场,提供了大量不同题型、不同难度的题目,想必同学们在学习的过程中,从简单到难的题目都有做过,并且较多的应该是算法题,有些题做起来让人总是有些“秃然”,那么下面的操作都是算法题,咱们看看Amazon CodeWhipserer的表现如何

由奢入俭难

同理,做题也是,从简单入手,饭要一口口吃,路要一步步走,题要从简到难刷,那么下面的案例,作者分别在力扣上找到简单、中等及困难三个等级的题目,让Amazon CodeWhisperer来解题看看,这位“AI编码助手”到底是什么功力的程序员

易如反掌

两数之和(1)

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 **和为目标值 **target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。

示例 1:
输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
输入:nums = [3,2,4], target = 6 输出:[1,2]
示例 3:
输入:nums = [3,3], target = 6 输出:[0,1]

题解

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(len(nums)):
            for j in range(i+1,len(nums)):
                if nums[i]+nums[j]==target:
                    return [i,j]

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS
Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

优化

有意思的来啦,作者在需求下面加了一句话 “给出时间和空间最优解”,那么程序也随之进行了优化

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        dic = {}
        for i, num in enumerate(nums):
            if num in dic:
                return [dic[num], i]
            dic[target - num] = i
        return []

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS
Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

结果

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS
方法二较于方法一,由于减少了循环,虽然内存消耗有所提高,但是执行时间缩减了近百倍,可见用好提示词,也是一个使用CodeWhisperer的好法子。但是,要说的一点,像这样的提示词不一定每次都奏效。

最长公共前缀(14)

编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

示例 1:
输入:strs = [“flower”,“flow”,“flight”] 输出:“fl”
示例 2:
输入:strs = [“dog”,“racecar”,“car”] 输出:“” 解释:输入不存在公共前缀。

提示:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 仅由小写英文字母组成

题解

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs:
            return ""
        prefix = strs[0]
        for i in range(1, len(strs)):
            while strs[i].find(prefix) != 0:
                prefix = prefix[0:len(prefix)-1]
                if not prefix:
                    return ""
        return prefix
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if not strs:
            return ""
        for i in range(len(strs[0])):
            for j in range(1,len(strs)):
                if i >= len(strs[j]) or strs[j][i] != strs[0][i]:
                    return strs[0][:i]
        return strs[0]

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

结果

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

中规中矩

通过上面两道简单的算法题,Amazon CodeWhisperer解答起来可算是易如反掌,那么接下来提升难度,开始解答中等难度的题目,看看Amazon CodeWhisperer表现如何

两数相加(2)

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例 1:
Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807.
示例 2:
输入:l1 = [0], l2 = [0] 输出:[0]
示例 3:
输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9] 输出:[8,9,9,9,0,0,0,1]

提示:

  • 每个链表中的节点数在范围 [1, 100] 内
  • 0 <= Node.val <= 9
  • 题目数据保证列表表示的数字不含前导零

题解

class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        head = ListNode(0)
        cur = head
        carry = 0
        while l1 or l2 or carry:
            if l1:
                carry += l1.val
                l1 = l1.next
            if l2:
                carry += l2.val
                l2 = l2.next
            cur.next = ListNode(carry % 10)
            cur = cur.next
            carry //= 10
        return head.next

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

结果

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

字符串转换整数(atoi)(8)

请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。
函数 myAtoi(string s) 的算法如下:

  1. 读入字符串并丢弃无用的前导空格
  2. 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。
  3. 读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。
  4. 将前面步骤读入的这些数字转换为整数(即,“123” -> 123, “0032” -> 32)。如果没有读入数字,则整数为 0 。必要时更改符号(从步骤 2 开始)。
  5. 如果整数数超过 32 位有符号整数范围 [−231, 231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被固定为 −231 ,大于 231 − 1 的整数应该被固定为 231 − 1 。
  6. 返回整数作为最终结果。

注意:

  • 本题中的空白字符只包括空格字符 ’ ’ 。
  • 除前导空格或数字后的其余字符串外,请勿忽略 任何其他字符。

示例 1:
输入:s = “42” 输出:42
解释:加粗的字符串为已经读入的字符,插入符号是当前读取的字符。

  • 第 1 步:“42”(当前没有读入字符,因为没有前导空格)
  • 第 2 步:“42”(当前没有读入字符,因为这里不存在 ‘-’ 或者 ‘+’)
  • 第 3 步:“42”(读入 “42”)
  • 解析得到整数 42 。 由于 “42” 在范围 [-231, 231 - 1] 内,最终结果为 42 。

示例 2:
输入:s = " -42" 输出:-42
解释:

  • 第 1 步:" -42"(读入前导空格,但忽视掉)
  • 第 2 步:" -42"(读入 ‘-’ 字符,所以结果应该是负数)
  • 第 3 步:" -42"(读入 “42”)
  • 解析得到整数 -42 。 由于 “-42” 在范围 [-231, 231 - 1] 内,最终结果为 -42 。

示例 3:
输入:s = “4193 with words” 输出:4193
解释:

  • 第 1 步:“4193 with words”(当前没有读入字符,因为没有前导空格)
  • 第 2 步:“4193 with words”(当前没有读入字符,因为这里不存在 ‘-’ 或者 ‘+’)
  • 第 3 步:“4193 with words”(读入 “4193”;由于下一个字符不是一个数字,所以读入停止)
  • 解析得到整数 4193 。 由于 “4193” 在范围 [-231, 231 - 1] 内,最终结果为 4193 。

提示:

  • 0 <= s.length <= 200
  • s 由英文字母(大写和小写)、数字(0-9)、’ ‘、’+‘、’-’ 和 ‘.’ 组成

题解

class Solution:
    def myAtoi(self, str: str) -> int:
        str = str.strip()
        if not str:
            return 0
        if str[0] == '-' or str[0] == '+':
            sign = 1 if str[0] == '+' else -1
            str = str[1:]
        else:
            sign = 1
        res = 0
        for i in str:
            if i.isdigit():
                res = res * 10 + int(i)
            else:
                break
        res = res * sign
        if res < -2**31:
            return -2**31
        elif res > 2**31 - 1:
            return 2**31 - 1
        else:
            return res

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

结果

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

千辛万苦?

经过前面4个题的体验,历经简单到中等难度,到这一阶段直接上强度,力扣将其划分为“困难”级别的题目,这里仅仅准备了两道题作为“困难“级别的演示,具体的可以到视频中看,那么下面大家看看Amazon CodeWhisperer能否轻松应对该试题吧!

寻找两个正序数组的中位数(4)

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数
算法的时间复杂度应该为 O(log (m+n)) 。

示例 1:
输入:nums1 = [1,3], nums2 = [2] 输出:2.00000
解释:合并数组 = [1,2,3] ,中位数 2
示例 2:
输入:nums1 = [1,2], nums2 = [3,4] 输出:2.50000
解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5
提示:

  • nums1.length == m
  • nums2.length == n
  • 0 <= m <= 1000
  • 0 <= n <= 1000
  • 1 <= m + n <= 2000
  • -106 <= nums1[i], nums2[i] <= 106

题解

class Solution:
    def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
        nums = nums1 + nums2
        nums.sort()
        n = len(nums)
        if n % 2 == 0:
            return (nums[n//2-1] + nums[n//2])/2
        else:
            return nums[n//2]

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

结果

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

最长有效括号(32)

困难
相关标签
相关企业
给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。

示例 1:
输入:s = “(()” 输出:2 解释:最长有效括号子串是 “()”
示例 2:
输入:s = “)()())” 输出:4 解释:最长有效括号子串是 “()()”
示例 3:
输入:s = “” 输出:0

题解

class Solution:
    def longestValidParentheses(self, s: str) -> int:
        stack = []
        stack.append(-1)
        res = 0
        for i in range(len(s)):
            if s[i] == '(':
                stack.append(i)
            else:
                stack.pop()
                if len(stack) == 0:
                    stack.append(i)
                else:
                    res = max(res, i - stack[-1])
        return res

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

结果

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

优缺点

  • 通过本次5道题的一个简单测试,其中有包含2题简单、2题中等以及1题困难,咱们可以基于上面的实验结果可以看到的是–Amazon CodeWhisperer可以轻松应对,其中可以通过增加额外提示词来优化给出的解决方案,例如,"给出最优解"等,让Amazon CodeWhisperer尝试去用不同的解题方法生成代码,以达到基于之前代码的时间和空间的最优解。

  • 虽然Amazon CodeWhisperer的表现不错,但是,也有Amazon CodeWhisperer无法应对的题目,例如,力扣10题其实也是在本篇文章测试范围内,但是按照本篇文章的测试方法让Amazon CodeWhisperer给出解题代码,但没有成功,也许有”中文“的问题的影响

Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS

总结

通过上述6个力扣题目测试,可以看到Amazon CodeWhisperer在处理算法题目方面,从易到难都可以轻松应对,但也不是完全全能型的,例如在某些力扣的困难题目操作中,以python3为例,无法成功的根据题目生成代码,甚至于出现在函数中出现"pass"的情况。
总的来说,Amazon CodeWhisperer在代码理解和生成方面在不错的表现,并且可根据用户的要求,尽可能的对代码进行优化,有时还会根据提示词的不同,给出一些代码建议以及解题思路。对于无法解答的题目,也是很直白的给出"Pass"这样的直白回答,也是一个非常诚实的程序员。的确有一些问题无法解决,但是作为一个推出时间不太长的服务,其本身还有很长的过程需要走,就现目前而言,仅仅提供了个人免费版、专业版,那么后续官方肯定会推出企业版,同时Amazon CodeWhisperer也会不断的更新优化,不断完善其功能,发展为“六边形战士”!

最后,根据亚马逊云科技官方消息,“2023年10月9日,储瑞松将接替张文翊,担任亚马逊全球副总裁、亚马逊云科技大中华区执行董事”,从作者本人的角度而言,结合储总在AI方面的经历,亚马逊云科技推出生成式AI新服务—Amazon Bedrock,以及亚马逊云科技推出的全托管式产品向Anthropic注资至多40亿美元,这一系列的动作,可以看出亚马逊云科技在AI方面发展的强劲势头!让我们期待亚马逊云科技能够推出更多更好的人工智能产品!

亚马逊云科技宣布大中华区新任领导人
亚马逊云科技全托管生成式 AI 服务 Amazon Bedrock 现已正式可用
重磅丨亚马逊宣布与 Anthropic 展开战略合作,共同推进生成式 AI 发展

福利时间到

现目前Amazon CodeWhisperer同样还有【云上实验室】活动,广大程序员同学可以参加到活动中,大家在使用Amazon CodeWhisperer的同时,还可以向活动方提出自己宝贵的反馈、建议等,同时还可以获取丰厚的奖品!
不仅如此,咱们还有Innovate大会,拥抱生成式 AI,花样玩法待解锁。想获得最新AI资讯,亚马逊云科技生成式 AI构建者大会将于10月24日在北京举行,届时大咖云集,将为大家带来最新前沿技术和成功案例,现场还有动手实践以及专为Builders 进阶的开源工具体验,报名入口看这里:http://c.suo.nz/daeuR
Amazon CodeWhisperer让力扣不再用力code!,Amazon Web Services (AWS),leetcode,算法,职场和发展,CodeWhisperer,AI编码助手,亚马逊云科技,AWS
想要用技术实验、产品体验、案例应用等方式,亲身感受最新、最热门的亚马逊云科技开发者工具与服务,来云上探索实验室发现 Amazon CodeWhisperer 的更多可能:http://c.suo.nz/aadBL
想要快速上手 Amazon CodeWhisperer,官方免费课程《Amazon CodeWhisperer 入门》带你30分钟上车,牵手 AI 编程伴侣,开启云职场新工作方式。
三个平台随意挑,轻松开启学习之旅:
Skill Builder:
http://c.suo.nz/7Rfjz
网易云课堂:
http://c.suo.nz/7RfjJ
CSDN:
http://c.suo.nz/crAyg文章来源地址https://www.toymoban.com/news/detail-713468.html

到了这里,关于Amazon CodeWhisperer让力扣不再用力code!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 Amazon SageMaker 和 Amazon CodeWhisperer,解锁数据见解

    : [Amazon Web Services re:Invent 2023, Amazon Kendra, Generative Ai, Amazon Sagemaker, Amazon Kendra, Amazon Bedrock, Vector Databases] 本文字数: 1700, 阅读完需: 8 分钟 如视频不能正常播放,请前往bilibili观看本视频。 https://www.bilibili.com/video/BV19j41157Ux 由于数据准备、清理、探索和可视化效率低下,从

    2024年02月04日
    浏览(49)
  • Amazon CodeWhisperer——探索高效编程范式

    在CSDN上看到的Amazon活动就去看了看,整个体验过程还是非常Nice的,我使用的是VSCode测试的,语言选择了python,在测试AI代码提示的过程中感受到了很多的快捷之处,再次留下个印记,也算给大家提供一个提升高效编码的方案。 活动主页:亚马逊云科技开发者社区 在正式说明

    2024年02月06日
    浏览(43)
  • Amazon CodeWhisperer:AI 编程助手

    文章作者:prigioni 1. 什么是 Amazon CodeWhisperer? Amazon CodeWhisperer 能够理解以自然语言(英语)编写的注释,并能实时生成多条代码建议,以此提高开发人员生产力。该服务可以直接在集成开发环境(IDE)的代码编辑器中给出关于整个功能和逻辑代码块(通常包含多达 10-15 行代

    2024年02月03日
    浏览(54)
  • 【Amazon】云上探索实验室—了解 AI 编程助手 Amazon Codewhisperer

    用技术实验、产品体验、案例应用等方式,亲身感受最新、最热门的亚马逊云科技开发者工具与服务。发挥您的想象和创造,以文章、视频、代码 Demo 等形式分享见解。您的分享可以帮助到更多开发者进行学习与开发,为技术实践提供更多的可能性。 云上探索实验室开展至今

    2024年02月04日
    浏览(51)
  • 利用 Amazon CodeWhisperer 激发孩子的编程兴趣

    我是一个程序员,也是一个父亲。工作之余我会经常和儿子聊他们小学信息技术课学习的 Scratch 和 Kitten 这两款图形化的少儿编程工具。 我儿子有一次指着书房里显示器上显示的 Visual Studio Code 问我,“为什么我们上课用的开发界面,和爸爸你每天工作用的样子不一样?” 所

    2024年02月03日
    浏览(47)
  • 免费:实时 AI 编程助手 Amazon CodeWhisperer

    点 ,一起程序员弯道超车之路 现已正式推出实时 AI 编程助手 Amazon CodeWhisperer,包括 CodeWhisperer 个人套餐,所有开发人员均可免费使用。最初于去年推出的预览版 CodeWhisperer 让开发人员能够保持专注、高效,帮助他们快速、安全地编写代码,无需因离开 IDE 去研究某件事而

    2024年01月23日
    浏览(43)
  • Amazon CodeWhisperer 审查:最新的 AI 代码伴侣

    最近,亚马逊云科技宣布了一项机器学习支持的服务,该服务通过根据开发人员在自然语言中的评论和他们在集成开发环境中的代码生成代码建议来帮助提高开发人员的工作效率。这项 名为 Amazon CodeWhisprer  的服务仍处于预览阶段,可以免费使用。这项服务类似于微软去年推

    2024年02月03日
    浏览(38)
  • 搭建智能桥梁,Amazon CodeWhisperer助您轻松编程

    今年的ChatGPT热潮之后,AI大模型的应用日益广泛,虽然AI编码暂时不能完全替代程序员,但随着时代的变迁和趋势的发展,我们不必过于焦虑。我们应该积极适应变化,顺应趋势,勇敢尝试用AI来辅助编码工作。 今天让虚竹哥带大家了解下Amazon CodeWhisperer。 从官方的介绍中,

    2024年02月08日
    浏览(36)
  • Amazon CodeWhisperer——从此编程变的简单起来

    在当今数字化时代,编程已成为一项至关重要的技能。从软件开发到数据分析,从人工智能到云计算,编程的应用范围越来越广泛。然而,对于许多初学者来说,编程却是一个充满挑战和复杂性的领域。 正因如此,我们迫切需要一种能够消除编程难题、降低学习曲线的工具。

    2024年02月07日
    浏览(37)
  • Amazon CodeWhisperer 正式发布可免费供个人使用

    文章作者:sunny 亚马逊云科技日前推出了实时 AI 编程助手 Amazon CodeWhisperer,包括个人套餐和专业套餐,所有开发人员均可免费使用个人套餐。Amazon CodeWhisperer 让开发人员能够保持专注、高效,帮助他们快速、安全地编写代码,无需因离开 IDE 去研究某件事而中断流程。 亚马逊

    2024年02月05日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包