1.Two Sum

来源:互联网 发布:如何通过80端口攻击 编辑:程序博客网 时间:2024/06/05 10:06

1.Two Sum

题目

给定一个整数数组,如果相加能够得到给定的目标值,就返回它们的索引,
可以假定每个输入只有一种解决方法,并且相同的元素不能使用两次。

例子:
给定数组 nums = [2,7,11,15], target = 9,
因为 nums[0] + nums[1] = 2 + 7 = 9,
返回 [0, 1]

代码块

class Solution {    public int[] twoSum(int[] nums, int target) {       int index[]={0,0};       for(int i = 0 ; i < nums.length; i++){           for(int j = i + 1; j < nums.length; j++){               if(nums[i] + nums[j] == target){                    index[0] = i;                    index[1] = j;               }           }       }       return index;    }}

代码分析

本题采用暴力破解法。设置一个索引数组,该数组有两个元素(Two Sum),用来存放目标值的索引。
遍历数组,固定一个,然后向后循环,但是题目中给出了由于相同的元素不能使用两次,所以j > i + 1;找到符合的元素就把他们的索引放到数组中。最后返回这个索引数组即可。
时间复杂度为O(n^2),因为有两个for循环。

还可以使用哈希MAP可以降低时间复杂度,但是我不会。

原创粉丝点击