弟中弟的Leetcode总结——数组类(四)
弟中弟的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总结——数组类(四)相关推荐
- 弟中弟的Leetcode总结——数组类(十一)
弟中弟的Leetcode总结--数组类(十一) 题目描述 Single Number Given a non-empty array of integers, every element appear ...
- 弟中弟的Leetcode总结——数组类(十)
弟中弟的Leetcode总结--数组类(十) 题目描述 Climbing Stairs You are climbing a stair case. It takes n steps to reach ...
- 弟中弟的Leetcode总结——数组类(五)
弟中弟的Leetcode总结--数组类(五) 题目描述 Remove Duplicates from Sorted Array Given a sorted array nums, remove th ...
- 弟中弟的Leetcode总结——数组类(二)
弟中弟的Leetcode总结--数组类(二) 题目描述 Container With Most Water Given n non-negative integers a1, a2, -, an , ...
- 弟中弟的Leetcode总结——数组类(八)
弟中弟的Leetcode总结--数组类(八) 题目描述 Combination Sum Given a set of candidate numbers (candidates) (without d ...
- 弟中弟的Leetcode总结——数组类(九)
弟中弟的Leetcode总结--数组类(九) 题目描述 Subsets Given a set of distinct integers, nums, return all possible subs ...
- 弟中弟的Leetcode总结——数组类(六)
弟中弟的Leetcode总结--数组类(六) 题目描述 3Sum Closest Given an array nums of n integers and an integer target, fi ...
- 弟中弟的Leetcode总结——数组类(七)
弟中弟的Leetcode总结--数组类(七) 题目描述 Maximum Subarray Given an integer array nums, find the contiguous subarr ...
- 弟中弟的Leetcode总结——字符串类(一)
弟中弟的Leetcode总结--字符串类(一) 题目描述 Longest Substring Given a string, find the length of the longest substr ...
最新文章
- .net数据控件的冒泡事件
- drupal 6.0 入门教程
- python随机列表文本_在python中从单词列表返回随机单词
- mysql empty table_【MySQL】 empty table and delete table.
- 微信支付服务器验证的java_Java中的微信支付(3):API V3对微信服务器响应进行签名验证...
- Hyper-V 测试
- Windows ping TCP端口工具之tcping
- 2000-2018年各省研发投入面板数据
- Django的BUG:ImportError: cannot import name 'patterns'
- 苹果4如何添加时间插件_iPhone如何添加输入法?苹果手机怎样添加手写输入?...
- QT 多显示屏获取屏幕分辨率
- Divan and bitwise operations(组合数+思维)
- 这么多人问的JVM的垃圾回收到底是个啥?
- CARLA 笔记(02)— Ubuntu 安装 CARLA(服务端、客户端、安装 miniconda、创建虚拟环境、更换 pip 源、生成交通流、人工控制车辆按键)
- 健身和计算机未来哪个好,健身教练未来的发展前景原来这么好,你知道吗?
- 电影评分预测系统分析
- arcgis for js通过框架配置实现点线面及echarts绘制
- AMD双核所有驱动,补丁,优化下载地址和安装方法
- SEO教程之网站长尾关键词拓展方式及工具。
- qpython终端怎么使用_ATX-uiautomator2 使用 QPython 在 Android 手机内执行自动化 -及wsl安装使用【未成功】...