两数和的目标 python (初学者vs程序员)

news/2024/7/24 12:45:43 标签: 算法, 数据结构

题目描述

1)给定一个整数列表,在列表中,从前向后查找两个元素使其相加之和等于目标数,并返回两个整数在列表中的下标。如果没有符合条件的数字,输出False,本题假设题目的解唯一。‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬
2)注意:分两次input()分别读入整数列表和目标数;输出采用列表形式。例如,依次输入整数列表 [2,7,11,15] 和9,输出[0, 1]。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬
3)输入代码并提交解答。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

注意:提交代码时请删除input()函数中的参数,否则会出现错误。

直接暴力(初学者爱用的for循环)

numslist = eval(input())
target = int(input())
 
flag = 0
for i in range(len(numslist)):
    for j in range(i + 1, len(numslist)):
        if numslist[i] + numslist[j] == target:
            print("[{}, {}]".format(i, j))
            flag = 1
if flag == 0:
    print("False")  

通过了

直接两层for循环一个一个试,直到找到target

进阶(程序员)

numslist = eval(input())
target = int(input())

dic = {}
res = []
for i in range(0,len(numslist)):
    n = target - numslist[i]

    if n not in dic:
        dic[numslist[i]] = i
    else:
        res = [dic[n],i]
        break

if len(res):
    print(res)
else:
    print("False")

利用字典dic保存数字num。遍历查找数字num与目标数target的“互补数”时只需查找dic[target - num]是否存在即可。

时间复杂度:O(n),因为dic的存取开销为O(1)。

初学者vs程序员

这两段代码是用来寻找数组中两个元素的和等于给定目标值的索引对。

第一段代码使用了嵌套的循环来遍历所有可能的索引对,并判断元素的和是否等于目标值。如果找到了满足条件的索引对,则输出该索引对;如果没有找到,输出"False"。

第二段代码使用了字典来存储已遍历过的元素及其索引。在遍历数组时,每次计算当前元素与目标值之间的差值,并检查差值是否存在于字典中。如果存在,则说明找到了满足条件的索引对,将对应的索引存入结果列表并结束循环。如果遍历完数组后仍未找到满足条件的索引对,则输出"False"。

两段代码的主要区别在于实现的方式不同。第一段代码使用了嵌套的循环,时间复杂度为O(n^2),而第二段代码利用字典的查找特性,时间复杂度为O(n)。因此,第二段代码的效率更高。


http://www.niftyadmin.cn/n/5132770.html

相关文章

数据结构,及分类(存储分类、逻辑分类)介绍

一、数据结构: 数据是软件开发的核心。在软件开发过程中基本上就是对数据的新增、删除、修改、查看的操作。 如何合理存储数据,如何有效提升数据操作开发效率,都是软件开发中的重中之重。使用合理的数据结构是非常重要的。 1.1简介&#xff…

基于引力搜索算法的无人机航迹规划-附代码

基于引力搜索算法的无人机航迹规划 文章目录 基于引力搜索算法的无人机航迹规划1.引力搜索搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用引力搜索算法来优化无人机航迹规划。 …

超详细的Windows 11虚拟机安装教程

准备安装文件创建虚拟机Windows安装 准备安装文件 1、安装好VMware WorkStation 16 Pro(越新越好) 2、下载好Windows 11系统镜像 其中VMware的安装教程看我往期推送,至少用我提供的16.2版本,低版本的会出现蓝屏问题。Windows …

java项目之机房预约系统(ssm框架)

项目简介 机房预约系统实现了以下功能: 管理员:个人中心、学生管理、教师管理、机房号管理、机房信息管理、申请预约管理、取消预约管理、留言板管理、论坛管理、系统管理。学生:个人中心、机房信息管理、申请预约管理、取消预约管理、留言…

【算法|动态规划 | 01背包问题No.2】AcWing 423. 采药

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【AcWing算法提高学习专栏】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程&a…

Transformer在计算机视觉领域的研究综述

论文地址:https://kns.cnki.net/kcms/detail/11.2127.TP.20221009.1217.003.html 目录 摘 要 1. Transformer 基本结构 1.1 位置编码 (1) 绝对位置编码 (2) 相对位置编码 1.2 自注意力机制 (1) 多头注意力 (2) 局部注意力 (3) 稀疏注意力机制 1.3 前馈神…

从InnoDB索引的数据结构,去理解索引

从InnoDB索引的数据结构,去理解索引 1、InnoDB 中的 BTree1.1、BTree 的组成1.2、BTree中的数据页 2、聚簇索引2.1、聚簇索引的特点2.2、聚簇索引的结构示例2.3、聚簇索引的优缺点 3、非聚簇索引3.1、非聚簇索引结构示例3.2、关于回表3.3、聚簇索引和非聚簇索引的区…

API商品数据接口调用实战:爬虫与数据获取

一、引言 在当今的数字化世界中,API(应用程序接口)已经成为获取数据的主要方式。通过调用API,我们可以轻松地获取到各种商品数据,为数据分析、商业决策等提供支持。本文将介绍如何使用爬虫技术调用API商品数据接口&am…