LeeCode 第1题

Posted 响马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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题的主要内容,如果未能解决你的问题,请参考以下文章

Leecode 496. 下一个更大元素 I——Leecode每日一题系列

C++ LeeCode 爬楼梯

C++ LeeCode 爬楼梯

题意解读+详细题解-Leecode 319. 灯泡开关——Leecode每日一题系列

Leecode 268. 丢失的数字——Leecode每日一题系列

Leecode 1218. 最长定差子序列——Leecode每日一题系列