zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    七、基础数据类型补充
    JavaScript DOM 鼠标拖拽
    JavaScript JSON 与 AJAX
    JavaScript DOM 事件模型
    JavaScript DOM 样式操作
    JavaScript DOM 常用尺寸
    JavaScript 日期与计时器
    JavaScript DOM 基础
    JavaScript 数组
    JavaScript 对象拷贝
  • 原文地址:https://www.cnblogs.com/bro-ma/p/6722941.html
Copyright © 2011-2022 走看看