您现在的位置是:主页 > news > 如何做好购物网站/山东做网站
如何做好购物网站/山东做网站
admin2025/5/2 20:28:44【news】
简介如何做好购物网站,山东做网站,如何快速搭建自己的网站,厦门注册公司流程和费用多少给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums [2, 7, 11, 15], target …

给定一个整数数组 nums
和一个目标值 target
,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
这在LeetCode上面是一道简单的题,what?简单,( ╯□╰ ),我一开始都没想到怎么做,看了答案和评论,大致给出了下3种解题方法(使用Java实现)
方法1、暴力法,使用嵌套循环,也是最容易想到的方法,具体代码如下:

该方法使用了两个循环,第一个循环,循环n次,第二个循环(n-1)次,相对于,从第二个元素开始循环,所以时间复杂度为T(n)=O(n^2),空间复杂度为:O(n)=1
方法2、两遍哈希表(以空间换取速度)

该方法使用了两次迭代,也就是使用了两个for循环,具体思路都在代码里,该方法的时间复杂度为T(n)=O(n),但是空间复杂度加大了,我们这里创建了一个哈希表,哈希表中存储的数据取决于数组,存了n个元素,所以是T(n)=O(n)。
方法3、一遍哈希表

这里注意,不存在自己和自己比了,上面是两个循环,这里只有一个,每次放入之前都判断一下符合条件的值在不在里面,如果在,直接返回,不在,该数据放入哈希表中,因为放入哈希表的数据都是按数组索引的大小依次放的,所以返回的时候,应该先返回符合条件值的索引,再返回这次添加的那个元素的索引。
时间复杂度:T(n)=O(n)
空间复杂度:T(n)=O(n)
总结:这是简单的算法题,但是自己算法基础薄弱导致没有多种思路,对于大神来说肯定是简单的,但是对于我这种战斗力不足5的渣,还是继续努力吧,BATJ,必须得刷鸭。