Leetcode——两数之和

这题有一个很简单的解决办法,就是暴力求解法,跟其他语言是一样的,但是就只是语言的书写形式上不一样。

思路:两层循环遍历,一个值一个值的试,最后找出最终的结果

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        n = len(nums)#获取列表的长度
        for i in range(n):#从0开始 对列表进行遍历
            for j in range(i+1,n):#从i+1开始进行遍历
                if(nums[i] + nums[j] == target):#进行判断两者的值是否为要求的值
                    return [i,j]
        return []
        

疑惑:因为刚开始学,还有很多东西不懂,再加上没有编译器去实践,只能在Leetcode上面实践,但是我 发现了一个问题和一个没解决的事情

①当 所要求的的结果在列表中的出现次数不只是一次时,例如:[2,6,8,8,9] 中,如果输出结果为10的位置的话 ,就会出现两个结果,在Leetcode上是报错的,我想这是属于一个特殊情况,但是不应该是报错的,所以这个需要在编译器上去验证。

②除了用暴力解法去解决问题外,我还发现了另外一个方法,在第一个数已经确定的情况下,然后在列表中进行判断目标值减去确定值的值是否存在,如果存在就记住下标,如果不存在就换一个确定的值,依次类推。这个思路不难,但是我遇到了问题,目前还不知道怎么解决,等环境装好以后进行调试看最后问题出现在哪里。

总结:Leetcode刷题不仅能熟练代码的能力,还能加强思考的能力,开拓思维。不仅在Leetcode上能运行成功,还要在自己的编译器上运行成功才行,它的编译器有一定的限制和它只是算法,要掌握完整的才行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值