弟中弟的Leetcode总结——数组类(四)

题目描述

Two Sum

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].

思路——Naive Solution

看到这题的第一反应是两重循环判断结束,时间复杂度是O(n^2)。然而提交后发现超时了。。。因此需要另寻他法。

思路——Improved Solution

思考了一下怎样可以降低时间复杂度。可以将数组进行排序。但是最后要输出的是原来的下标,因此将数组复制一下。然后再设置两个指针,一个指向最前,一个指向最后,开始的时候相加的和一定是大于等于target的值的,因此当后面的指针不断向前,直到小于等于的时候停止,再判断如果和小于target,则移动前面的指针,如果和等于target,直接输出原有的下标即可。
有一个需要注意的地方就是在寻找下标的时候,如果是两个相同的值相加等于target,例如输入[3,3] 6,那么在得到两个值为3后需要判断一下下标是否正确。

代码(py3)

class Solution:def twoSum(self, nums, target):""":type nums: List[int]:type target: int:rtype: List[int]"""leng=len(nums)#复制数组作为下标参考nu=nums[:]nums.sort();for i in range(leng):j=leng-1while(nums[i]+nums[j]>target):j=j-1if(nums[i]+nums[j]==target):x=nu.index(nums[i])y=nu.index(nums[j])if(x==y):nu[x]=1000000y=nu.index(nums[j])return [min(x,y),max(x,y)]

弟中弟的Leetcode总结——数组类(四)相关推荐

  1. 弟中弟的Leetcode总结——数组类(十一)

    弟中弟的Leetcode总结--数组类(十一) 题目描述 Single Number Given a non-empty array of integers, every element appear ...

  2. 弟中弟的Leetcode总结——数组类(十)

    弟中弟的Leetcode总结--数组类(十) 题目描述 Climbing Stairs You are climbing a stair case. It takes n steps to reach ...

  3. 弟中弟的Leetcode总结——数组类(五)

    弟中弟的Leetcode总结--数组类(五) 题目描述 Remove Duplicates from Sorted Array Given a sorted array nums, remove th ...

  4. 弟中弟的Leetcode总结——数组类(二)

    弟中弟的Leetcode总结--数组类(二) 题目描述 Container With Most Water Given n non-negative integers a1, a2, -, an , ...

  5. 弟中弟的Leetcode总结——数组类(八)

    弟中弟的Leetcode总结--数组类(八) 题目描述 Combination Sum Given a set of candidate numbers (candidates) (without d ...

  6. 弟中弟的Leetcode总结——数组类(九)

    弟中弟的Leetcode总结--数组类(九) 题目描述 Subsets Given a set of distinct integers, nums, return all possible subs ...

  7. 弟中弟的Leetcode总结——数组类(六)

    弟中弟的Leetcode总结--数组类(六) 题目描述 3Sum Closest Given an array nums of n integers and an integer target, fi ...

  8. 弟中弟的Leetcode总结——数组类(七)

    弟中弟的Leetcode总结--数组类(七) 题目描述 Maximum Subarray Given an integer array nums, find the contiguous subarr ...

  9. 弟中弟的Leetcode总结——字符串类(一)

    弟中弟的Leetcode总结--字符串类(一) 题目描述 Longest Substring Given a string, find the length of the longest substr ...

最新文章

  1. .net数据控件的冒泡事件
  2. drupal 6.0 入门教程
  3. python随机列表文本_在python中从单词列表返回随机单词
  4. mysql empty table_【MySQL】 empty table and delete table.
  5. 微信支付服务器验证的java_Java中的微信支付(3):API V3对微信服务器响应进行签名验证...
  6. Hyper-V 测试
  7. Windows ping TCP端口工具之tcping
  8. 2000-2018年各省研发投入面板数据
  9. Django的BUG:ImportError: cannot import name 'patterns'
  10. 苹果4如何添加时间插件_iPhone如何添加输入法?苹果手机怎样添加手写输入?...
  11. QT 多显示屏获取屏幕分辨率
  12. Divan and bitwise operations(组合数+思维)
  13. 这么多人问的JVM的垃圾回收到底是个啥?
  14. CARLA 笔记(02)— Ubuntu 安装 CARLA(服务端、客户端、安装 miniconda、创建虚拟环境、更换 pip 源、生成交通流、人工控制车辆按键)
  15. 健身和计算机未来哪个好,健身教练未来的发展前景原来这么好,你知道吗?
  16. 电影评分预测系统分析
  17. arcgis for js通过框架配置实现点线面及echarts绘制
  18. AMD双核所有驱动,补丁,优化下载地址和安装方法
  19. SEO教程之网站长尾关键词拓展方式及工具。
  20. qpython终端怎么使用_ATX-uiautomator2 使用 QPython 在 Android 手机内执行自动化 -及wsl安装使用【未成功】...

热门文章

  1. 进行新类检测以及概念漂移适应的半监督分类框架SACCOS论文阅读笔记
  2. ESP32 开发笔记(八)ESP32 MP3 播放器
  3. 前端学习:基础HTML和HTML5
  4. Delphi 使用之函数
  5. STM32F103ZET6程序移植为C8T6+C8T6下载程序flash timeout的解决方案
  6. android接入谷歌支付
  7. VUE中简单封装二次确认组件
  8. 7.9编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。
  9. 输入姓名、密码的python代码
  10. Java-类的方法练习--实现客户姓名的添加、显示及查询