zoukankan      html  css  js  c++  java
  • 1.the sum (python)

    Given an array of integers, return indices of the two numbers such that they add up to a specific target.

    You may assume that each input would have exactly one solution, and you may not use the same element twice.

    Example

    Given nums = [2, 7, 11, 15], target = 9,

    Because nums[0] + nums[1] = 2 + 7 = 9,

    return [0, 1].

    首先,这道题是关于确定值查询的问题。最容易想到的是用一个空列表来接收返回的两个数字的索引。通过双重循环比较数组中是否有两个值之和等于目标值,且i!=j。有的话就把i,j的值存到空列表中。很显然这样做有明显的缺陷,时间复杂度为0(n^2)。

    为了提高时间复杂度,这里引进散列表查找(哈希)。什么是哈希算法?就是在记录存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置fkey)。简而言之,就是数据和存储位置构成一个映射关系。碰巧,python中的字典就是采用哈希算法编写的。每个关键字对应于一个键值。首先先建立一个空字典,然后逐个检查目标值-num[i] 是在列表中,不在的话,就把num[i]:i  键值对添加到字典中。直到有在列表中的就将两个下标存到列表中,最后返回列表即可。利用哈希算法。时间复杂度是on)。比上一种方法时间复杂度低。

    刷的第一道题,要加油啊!

    苟有恒,何必三更眠五更起;最无益,莫过一日暴十日寒。
  • 相关阅读:
    MYSQL profiling分析语句
    进程状态与僵尸进程、孤儿进程
    Nginx跨域设置
    Redis的应用场景
    Nginx的作用
    cgi、fast-cgi和php-fpm的介绍(作用)
    CoreDump开启和Swoole Tracker 3.0配置
    好题总结
    Atcoder总结 Part III
    Atcoder总结 Part II
  • 原文地址:https://www.cnblogs.com/shaer/p/9610359.html
Copyright © 2011-2022 走看看