第5章-10.两数之和 (30分)(列表实现和字典实现)

给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,解是唯一的。找不到则显示 "no answer"。输出的下标按从小到大排序。用一重循环加字典实现。

输入格式:

在一行中给出这组数。 在下一行输入目标数

输出格式:

在一行中输出这两个数的下标,用一个空格分开。

输入样例1:

在这里给出一组输入。例如:

2,7,11,15
9

输出样例1:

在这里给出相应的输出。例如:

0 1

输入样例2:

在这里给出一组输入。例如:

3,6,9
10

输出样例2:

在这里给出相应的输出。例如:

no answer用字典实现
 1 # 两数之和-用字典实现
 2 # Author: cnRick
 3 # Time  : 2020-4-4
 4 nums = list(map(int,input().split(‘,‘)))
 5 n = int(input())
 6 resultDict = dict()
 7 isNoAnswer = True
 8 for i in nums:
 9     resultDict[i] = n - i
10 for i,j in resultDict.items():
11     if j in nums:
12         print("{:d} {:d}".format(nums.index(i),nums.index(j)))
13         isNoAnswer = False
14         break
15 if isNoAnswer == True:
16     print("no answer")
17     

用列表实现

 1 # 两数之和-用字典实现
 2 # Author: cnRick
 3 # Time  : 2020-4-4
 4 nums = list(map(int,input().split(‘,‘)))
 5 n = int(input())
 6 resultDict = dict()
 7 isNoAnswer = True
 8 for i in nums:
 9     resultDict[i] = n - i
10 for i,j in resultDict.items():
11     if j in nums:
12         print("{:d} {:d}".format(nums.index(i),nums.index(j)))
13         isNoAnswer = False
14         break
15 if isNoAnswer == True:
16     print("no answer")
17     

参考代码:https://blog.csdn.net/weixin_45948920/article/details/104706570

原文地址:https://www.cnblogs.com/dreamcoding/p/12630678.html

时间: 2024-10-09 11:19:41

第5章-10.两数之和 (30分)(列表实现和字典实现)的相关文章

【LeetCode】 两数之和 twoSum

两数之和 (简单) 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数: 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 例如: 给定 nums = [2,7,11,15] ,target = 9 因为 nums[0] + nums[1] = 9: 因此返回 [0,1]: v1.0代码如下: 正数.0或重复值通过测试: 异常用例: [-1, -2, -3, -4, -5] -8; 输出 [] /** * @param {number[]} nums * @par

给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X

题目:给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X 思路一: 1,先采用归并排序对这个数组排序, 2,然后寻找相邻<k,i>的两数之和sum,找到恰好sum>x的位置,如果sum=x则返回true, 3,找到位置后,保持i不变,从k处向前遍历,直到找到A[k]+A[i]等于x,并返回TRUE,如果找不到,则返回false. 论证步骤3:当前找到的位置恰好A[k]+A[i]>x,且前一位置的sum<x: 所以A[i]前面的数(不包括A[i])无论取哪两个数都

LeetCode 167. Two Sum II - Input array is sorted (两数之和之二 - 输入的是有序数组)

Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where index1 m

找出数组中两数之和为指定值的所有整数对

一,问题描述 给定一个整型数组(数组中的元素可重复),以及一个指定的值.打印出数组中两数之和为指定值的 所有整数对 二,算法分析 一共有两种方法来求解.方法一借助排序,方法二采用HashSet 方法一: 先将整型数组排序,排序之后定义两个指针left和right.left指向已排序数组中的第一个元素,right指向已排序数组中的最后一个元素 将 arr[left]+arr[right]与 给定的元素比较,若前者大,right--:若前者小,left++:若相等,则找到了一对整数之和为指定值的元素

LeetCode——两数之和

最近在家拧三阶魔方,把初级的玩法掌握了,也就是可以还原六个面了,速度不快,但是也很兴奋.三阶魔方的初级玩法按照套路拧就可以了,每一步需要完成的任务,该步骤转动的方法基本都是固定的,而且变化也并不是特别多.只要按照套路多练习,不考虑速度的情况下还原一个三阶魔方还是很容易的. 编程入门和还原魔方其实差不多,最初也是掌握套路后反复的练习,先从一个生手变成一个熟手,然后再去提高.分享一个段子,在知乎上看到的,如下: 陈康肃公尧咨善射,当世无双,公亦以此自矜.尝射于家圃,有卖油翁释担而立,睨之,久而不去.

leetcode刷题--两数之和(简单)

一.序言 第一次刷leetcode的题,之前从来没有刷题然后去面试的概念,直到临近秋招,或许是秋招结束的时候才有这个意识,原来面试是需要刷题的,面试问的问题都是千篇一律的,只要刷够了题就差不多了,当然你的基础也要扎实,毕竟在技术面的时候很容易露馅的. 所以奉劝各位还未毕业,在大三或大二的师弟师妹早点刷题,心里也有底气进入求职大军,毕竟大四开始刷题的话时间上有些太紧了,推荐刷题的话就是牛客和leetcode. 回归正题,这次记录的是leetcode刷的第一题--两数之和. 二.审题 审题真的很重要

两个常见位操作面试题 不用加减乘除运算符计算两数之和及a b 3

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net <两个常见位操作面试题不用加减乘除运算符计算两数之和及a=b*3> 地址:http://blog.csdn.net/morewindows/article/details/8710737转载请标明出处,谢谢. 欢迎关注微博:http://weibo.com/MoreWindows 上一篇<位操作基础篇之位操作全面总结>

LeetCode刷题:第一题 两数之和

从今天开始刷LeetCode 第一题:两数之和 题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素. 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 代码如下: 1 /** 2 * Note: The retur

167. Two Sum II - Input array is sorted两数之和

1. 原始题目 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2. 说明: 返回的下标值(index1 和 index2)不是从零开始的. 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素. 示例: 输入: numbers = [2, 7, 11, 15], target = 9 输出: [1,2] 解释: 2 与 7 之和等于目标数 9 .因此 in