leetcode刷题(一)

本文是作者在LeetCode上刷题的第一部分,包括TWO SUM、Reverse Integers和Largest Perimeter Triangle三道题目。文章详细介绍了每道题目的思路分析和Python解法,涉及哈希表、整数翻转以及寻找最大三角形周长的算法。
摘要由CSDN通过智能技术生成

leetcode刷题总结一
1.TWO SUM
题目描述:Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

思路分析1(我的思路):在给定的元素里,两次遍历,第一轮选定一个元素,第二轮在剩下的元素中找寻是否有与它相加等于目标值的元素
代码

class Solution:
    def twoSum(self, nums: List[int], target: int): 
        length = len(nums)
        result = []
        for i in range(length):
            for j in range(i,length):
                if i == j:
                    continue
                if nums[j]+nums[i] == target:
                    result = [i,j]
                    break
        return result

我 的 解 法 是 没 啥 含 量 的 暴 力 破 解 法 , 时 间 复 杂 度 为 O ( n 2 ) 我 的解法是没啥含量的暴力破解法,时间复杂度为O(n^{2}) O(n2)

思路分析2(字典解法)
第二种解法是用python中数据结构字典(哈希表)实现的,想法是
首先将第一个元素的下标为值,大小为键存入字典中,然后向后遍历,用目标值减去遍历到的元素,如果发现结果不在字典中,就将遍历到的元素和它的下标存入字典中,如果发现表中已有该元素,就输入它们的下标
代码

class Solution:
    def twoSum(self
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值