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("没有答案"); } }
执行时长:这。。。
最优方法:
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("没有答案"); } }
执行时长:
个人总结:多思考题干,多探索解决方案。
题目原文: Two Sum
题目解析: Two Sum Solution
以上是关于LeeCode 第1题的主要内容,如果未能解决你的问题,请参考以下文章
Leecode 496. 下一个更大元素 I——Leecode每日一题系列
题意解读+详细题解-Leecode 319. 灯泡开关——Leecode每日一题系列