当前位置:网站首页>LeetCode #1.两数之和
LeetCode #1.两数之和
2022-07-29 05:24:00 【张楚明ZCM】
1.两数之和

方法一:枚举法(暴力破解)
时间复杂度 
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
n = len(nums)
for i in range(n):
for j in range(i + 1, n):
if nums[i] + nums[j] == target:
return [i, j]
return []利用len()函数获取数组的长度并赋值给n
然后两层循环。
因为题目要求同一元素不能两次出现,所以i和j必不相同。所以内层循环j的范围从i+1开始。
当循环查到数组nums[i]+nums[j]等于target时,返回下标i,和j。
由于循环中可能不存在合适的i和j,而函数一定要有返回值,所以最后要加上return[]
LeetCode中的
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:在pycharm中会显示报错,NameError: name 'List' is not defined

导入typing包即可
from typing import List由于python过于随意,容易忘记传递参数类型。因此引入了typing模块,可以指定变量类型。
- typing模块的作用:
- 类型检查,防止运行时出现参数和返回值类型不符合。
- 作为开发文档附加说明,方便使用者调用时传入和返回参数类型。
- 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒。
pycharm运行测试结果

方法二:
哈希表法
时间复杂度
哈希函数
功能:输入数据,生成整数
主要特点:1.不同的参数->不同的整数
2.同样的参数->同样的整数
利用的一些函数
Python enumerate() 函数
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
语法 enumerate(sequence, [start=0])

Python dict() 函数
dict() 函数用于创建一个字典。
利用哈希表算法
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hash_table = dict()
for i, num in enumerate(nums):
if target - num in hash_table:
return [hash_table[target-num], i]
hash_table[nums[i]] = i
return []pycharm测试结果

边栏推荐
- 进程与进程的概念
- LeetCode #35.搜索插入位置
- STM32 MDK(Keil5) Contents mismatch错误总结
- 顺序表和链表
- 滑动窗口 Leetcode 76.最小覆盖子串(困难) 76.76. MinimumWindow Substring (Hard)
- Huawei cloud 14 day Hongmeng device development -day1 source code acquisition
- DP4301—SUB-1G高集成度无线收发芯片
- 【软件工程之美 - 专栏笔记】29 | 自动化测试:如何把Bug杀死在摇篮里?
- Huawei cloud 14 day Hongmeng device development -day5 drive subsystem development
- ArduinoIDE + STM32Link烧录调试
猜你喜欢

2022 spring recruit - Hesai technology FPGA technology post (one or two sides, collected from: Digital IC workers and FPGA Explorers)

【软件工程之美 - 专栏笔记】27 | 软件工程师的核心竞争力是什么?(上)

【RoboMaster】从零开始控制RM电机(2)-CAN通信原理及电调通信协议

STM32 printf问题总结 semihosting microLIB理解

传统模型预测控制轨迹跟踪——波浪形轨迹(功能包已经更新)

物联网倾斜监测解决方案

【软件工程之美 - 专栏笔记】23 | 架构师:不想当架构师的程序员不是好程序员

shell工具finalShell

Abstract encapsulation inheritance polymorphism

Hal library learning notes-13 application of I2C and SPI
随机推荐
Abstract encapsulation inheritance polymorphism
网络爬虫
利用云打码来破解登录遇到验证码的问题
低功耗蓝牙5.0芯片nrf52832-QFAA
CV520国产替代Ci521 13.56MHz 非接触式读写器芯片
Hal library learning notes-14 ADC and DAC
从头安装MYSQL(MYSQL安装文档-解压版)
Zero basics FPGA (5): counter of sequential logic circuit design (with introduction to breathing lamp experiment and simple combinational logic design)
顺序表和链表
Huawei cloud 14 day Hongmeng device development -day3 kernel development
【软件工程之美 - 专栏笔记】17 | 需求分析到底要分析什么?怎么分析?
crawl笔记
LeetCode #557.反转字符串中的单词 III
SimpleFOC调参2-速度、位置控制
关于【链式前向星】的自学理解
LeetCode #344.反转字符串
Rowkey设计
Ml8 self study notes LDA principle formula derivation
Understanding of synchronized eight lock phenomenon
【软件工程之美 - 专栏笔记】22 | 如何为项目做好技术选型?
