两数之和(Python + Java)
给定一个整数数组 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]
Python:
思路一:暴力求解:两层for循环遍历列表
def sums(nums,target):for i in range(len(nums)):num = nums[i]for j in range(i+1,len(nums)):if nums[j] == target - num:return i,j
思路二:采用枚举对象,enumerate() 函数将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,用字典存储整数及其下标
def enum(nums, target):dic = {}for index,el in enumerate(nums):if target - el not in dic: # in操作符用于判断键是否存在于字典中dic[el] = index # 存储数值和下标else:return [dic[target - el], index]if __name__ == '__main__':nums = [2, 7, 11, 15]target = 9print(enum(nums,target))enumerate(nums)返回值:
0 2
1 7
2 11
3 15
输出:[0, 1]
Java:使用HashMap实现键值对的映射
import java.util.HashMap;
import java.util.Map;// 两数之和
public class TwoSum {public static void main(String[] arg){int[] arr = {2,7,11,15};int target = 9;for(int i : twosum(arr, target)){System.out.println(i);}}public static int[] twosum(int[] nums,int target) {int[] arr = new int[2];Map<Integer, Integer> map = new HashMap<>();for(int i = 0;i < nums.length;i++){int num = target - nums[i];if(map.containsKey(num)){ //检查 hashMap 中是否存在指定的 key 对应的映射关系arr[0] = map.get(num); //获取指定 key 对应对 valuearr[1] = i;}map.put(nums[i], i);}return arr;}
}
两数之和(Python + Java)相关推荐
- swift golang java,解决两数之和 (Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang)
解决两数之和(Javascript, Java, C#, Swift, Kotlin, Python,C++, Golang) 给定一个整数数组,返回两个数字的索引,以便它们加起来成为一个特定的目标. ...
- leetCode:twoSum 两数之和 【JAVA实现】
LeetCode 两数之和 给定一个整数数组,返回两个数字的索引,使它们相加到特定目标. 您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素. 更多文章查看个人博客 个人博客地址:t ...
- LeetCode第一题:两数之和(Java)
文章目录 前言 一.题目内容 二.解题过程 1. 解题思路 2. 解题代码 三.提交结果 总结 前言 坚持下去便可胜利.只要心还在,梦想还在,我们还可以坚持直至胜利.没有过不去的坎,只有害怕的心.莫害 ...
- 【LeetCode笔记】1. 两数之和(JAVA、哈希表)
文章目录 一. 题目描述 二. 解法 ① 暴力破解 ② 静态哈希表 1. 为什么用哈希表来做 2. 特殊情况:两数相同,map映射覆盖 ③ 动态哈希表 ④ 未解之谜 诶嘿,经典开头题目 一. 题目描述 ...
- 两数之和python哈希_LeetCode-python 1.两数之和
类型:哈希表.数组.双指针 题目:给定一个整数数组 nums 和一个目标值 target,请你在 该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标.可以假设每种输入只会对应一个答案.但是, ...
- Leetcode有java版么_leetcode 1. 两数之和(Java版)
题目描述:(题目难度,简单) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你 ...
- 两数之和Python解法
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同 ...
- 1. 两数之和(Java)
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标.你可以假设每种输入只会对应一个答案.但是,数组中同一个 ...
- 《漫画算法2》源码整理-6 两数之和 三数之和
两数之和 import java.util.*;public class TwoSum {public static List<List<Integer>> twoSum(in ...
- java三位整数倒序相加_用单向链表实现两数倒序相加(java实现)
很久没做算法题了,准备重操旧业,于是刷了一波LeetCode,看到一个比较经典的链表算法题,分享出来. 题目 给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将 ...
最新文章
- 串口下载器rts线不接可以吗_【单片机自学】1.单片机的开发环境及下载过程教程...
- element-- 修改MessageBox 弹框 中确定和取消按钮顺序
- 从内存中加载并启动一个exe
- linux 进程死循环,Linux下如何处理一次用户态进程死循环问题
- linux查看运行钟的tomcat,linux查看tomcat启动运行日志
- 前端学习(972):swiper插件使用 参数更改
- python实战学习之matplotlib绘图续
- python判断_python的判断
- 关于unity2019.3.11.f在烘焙光照贴图时闪退的问题
- 2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础
- IO-01. 表格输出(5)
- Sum nyoj215
- spring 事务源码(三)如何保证被@Transactional标记方法中的所有sql都在一个事务内
- 怎样使用U盘启动盘安装乌班图系统
- Web前端开发师必备的8个工具
- Http请求格式和响应格式
- sql中on和where的区别在哪
- Windows取证——CHNTPW工具使用(可更改 Windows 密码)
- JS - 解决鼠标单击、双击事件冲突问题(原生js实现)
- 场景编程集锦 - 吉米的总统梦想