1. Two Sum查找列表中两数加和等于特定值Python Java
给定一个整数数组,返回两个数字的位置,以便它们加起来成为一个特定值。
假设每个输入都只有一个解决方案,并且不会两次使用同一元素。
Input: [2, 7, 11, 15],target:9
Output:[0, 1]
因为肯定会有两个数相加等于target, 并且是有序list, 所以遍历list里面的数时按顺序就可以
Method 1 两层循环遍历list
每次对第i个数字进行操作, 判断其后面的数与它相加是否等于target
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]
'''
nums=[1,2,3,4] target=7
i=1>>j=2,3,4 加和不等于7
i=2>>j=3,4 ...
i=3>>j=4 加和等于7
'''
时间复杂度为1(n-1)+2(n-2)+...(n-1)1的累加
Method 2 单层循环字典定位
建立一个字典temp, i表示在nums中的位置, j表示数值, 如果target-j的值不存在字典里,那么就把temp[j]=i存入字典, 如果存在就返回i和target-j在字典中对应的value也就是i值
class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:temp={}for i,j in enumerate(nums):if target-j not in temp:temp[j]=ielse:return [i, temp[target-j]]
时间复杂度O(n)
method2速度比method1快
Java
- 简历一个map
- 如果target-nums[currentNum]存在map中, 返回map中target-nums[currentNum]对应的value(位置)
- 如果不存在, 将nums[curentNum]和对应位置存储到map中
class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++) {if (map.containsKey(target - nums[i])) {return new int[]{map.get(target - nums[i]), i};} else {map.put(nums[i], i);}}return new int[]{0, 0};}
}
1. Two Sum查找列表中两数加和等于特定值Python Java相关推荐
- 查找数组中两两之和等于X的整数对(C语言实现)
王道数据结构线性章节的思维拓展 一个长度为N的整形数组A[1-N],给定整数X,设计一个时间复杂度不超过O(nlog2^n)的算法,查找数组中所有两两之和等于X的整数对(每个元素只输出一次) 书上有可 ...
- Python查找列表中相加等于s的n个数字(combinations的使用)
from random import randrange from itertools import combinations print("查找列表中相加等于s的n个数字: ") ...
- 查找有向图中两个顶点之间是否存在路径
查找有向图中两个顶点之间是否存在路径 给定一个有向图和其中的两个顶点,检查是否存在从第一个给定顶点到第二个顶点的路径. Consider the following Graph:Input : (u, ...
- python 余数_python中两数相除取余数怎么运算
在Python中取余数可以通过取模运算符%或通过divmod()函数来计算. 1.取模运算符%: 所谓取模运算,就是计算两个数相除之后的余数,符号是%.如a % b就是计算a除以b的余数.用数学语言来 ...
- 找出数组中两数之和为指定值的所有整数对
一,问题描述 给定一个整型数组(数组中的元素可重复),以及一个指定的值.打印出数组中两数之和为指定值的 所有整数对 二,算法分析 一共有两种方法来求解.方法一借助排序,方法二采用HashSet 方法一 ...
- Python产生100个1—100的随机数放入列表Num中,输出列表中的数,然后将它们排序,并输出排序结果。
import random #内建函数 Num=[] for i in range(101):Num.append(random.randint(1,100)) #append()将参数添加到列表末尾 ...
- Java中两数交换引发的值传递问题及解决方案
Java中两数交换引发的值传递问题及解决方案 今天导师分享了一个有趣的代码,记录一下,让我们一起看看~ //交换两个整数 private static void swap(int i, int j) ...
- Js两数加起来=目标数的下标,返回的下标按升序排列
描述 :给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列.(注:返回的数组下标从1开始算起,保证target一定可以由数 ...
- python找列表中相邻数的个数_利用python求相邻数的方法示例
前言 本文主要给大家介绍了关于利用python求相邻数的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 什么是相邻数? 比如5,相邻数为4和6,和5相差1的数,连续相差为1的 ...
最新文章
- 软件架构设计 温昱著 - 读书笔记
- CloudStack学习-1
- Golang加密md5
- spring bean中scope=prototype“的作用
- kali linux fuzz工具集简述
- 最新版富文本编辑器UEditor操作教程
- 陶陶摘苹果(信息学奥赛一本通-T1103)
- 测试显示富士通UHF RFID亚麻标签可在1.5T及3T的MRI系统内使用
- 回溯法采用的搜索策略_数值优化|笔记整理(3)——线搜索中的步长选取方法,线性共轭梯度法...
- mybatis 数据库配置-事务处理
- pyspark对应的scala代码PythonRDD对象
- 梦幻一场——关于《梦断代码》
- python点击屏幕坐标获取_python+appium 点击屏幕坐标操作(qq头像为例)
- python中集合可以使用下标吗_Python之集合
- 路由器IP地址的配置
- 从网上下载一个vue项目,跑起来的全过程
- 深信服easyconnect下载_深信服新一代数据防泄密解决方案荣登数安天下榜中榜
- 导航栏调透明度HTML,导航栏透明度问题
- 2022煤气上岗证题目及答案
- 老路《用得上的商学课》学习笔记(6-10课)
热门文章
- Android 监听屏幕唤醒、关闭和解锁的广播
- 用了postman,接口测试不用愁了
- python读写tif文件
- UE4中修改模型mesh资源的枢轴坐标原点位置
- HTML的样式及引入样式的三种类型
- 每日新闻:抖音杀入小程序战场;懂车帝发布SaaS系统 ; 汉得开源其企业级PaaS平台;甲骨文推出“第二代云” 向AWS发起挑战...
- DeleteObject()
- AD账号导入--dsadd user
- 单片机实验(十五)74LS47数码管译码
- hibernate 二级缓存 @cache注解