首页 > 代码库 > LeeCode 第1题

LeeCode 第1题

要求:

  给定一个整数(int)数组(Array)和一个目标数值(Target),找出数组中两数之和等于目标值(target)的两个元素的下标位置,

假设:结果唯一,数组中元素不会重复。

 

本人思路:分别正序、倒序遍历数组求得结果。

代码如下:

技术分享
public class Solution {    public int[] TwoSum(int[] nums, int target) {               for(int i=0;i<nums.Length;i++)        {            for(int j=nums.Length-1;j>0;j--)            {                if(nums[i]+nums[j]==target)                {                    return new int[]{i,j};                }            }                     }         throw new Exception("没有答案");    }}
View Code

   执行时长:技术分享这。。。    

   

  最优方法:  

技术分享
public class Solution {    public int[] TwoSum(int[] nums, int target) {                          Dictionary<int, int> dic = new Dictionary<int, int>();            for (int i = 0; i < nums.Length; i++)            {                int tag = target - nums[i];                if (dic.ContainsKey(tag))                {                    return new int[] { dic[tag], i };                }                else                {                    dic.Add(nums[i], i);                }            }            throw new Exception("没有答案");    }}
View Code

  执行时长:技术分享

  

  个人总结:多思考题干,多探索解决方案。

 

  题目原文: Two Sum

 

  题目解析: Two Sum Solution

 

LeeCode 第1题