首页 > 代码库 > 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("没有答案"); }}
执行时长:这。。。
最优方法:
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题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。