leetcode算法题目:两数之和
一、算法题目:
解析:我的思想是利用两个循环遍历只需找到一组即可break;所以返回的数组result长度设置为2即可,用result[0]接收i值,用result[1]接收j值,由于可能一个i值不可接收到对应的j值,所以每次都要堆result[0]进行更新如代码:
for(int i=0;i<nums.length-1;i++){
result[0]=i;
for(int j=i+1;j<nums.length;j++){
对于j值的处理只需判断result数组的两个值的和是否为target即可;如true则break;同时也跳出外层循环;返回结果。
附代码:
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] result=new int[2];
boolean flag=false;
for(int i=0;i<nums.length-1;i++){
result[0]=i;
for(int j=i+1;j<nums.length;j++){
if((nums[i]+nums[j])==target){
result[1]=j;
flag=true;
break;
}
}
if(flag==true) break;
}
return result;
}
}
查看题解之后才发现此题可以运用hashmap来解决,更加方便简单。