• LeetCode|Two Sum


    Questioin Description:

    Given an array of integers, return indices of the two numbers such that they add up to a specific target.

    You may assume that each input would have exactly one solution, and you may not use the same element twice.

    Example:Given nums = [2, 7, 11, 15], target = 9,

    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].

    ----------------------------------------
    Dividing line-----------------------------------------------------------------------------
    Here is my anwer.The programming language is C#.The run code status is finished,howerer ,the Submission result is "Time Limit Exceeded".
    Obviously,the algorithm complexity does not meet the requirements.
    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++){
                dic.Add(i,nums[i]);
            }
            for(int i=0;i<nums.Length;i++)
            {
                int complement=target-nums[i];
                if(dic.ContainsValue(complement))
                {
                        var keys= dic.Where(m => m.Value == complement).Select(q => q.Key);
                        foreach (var item in keys)
                        {
                            if(item==i)
                            {
                                continue;
                            }
                            return new int[] { i, item };
                        }
                }
            }
            throw new Exception("there is no answer");
        }
    }
     Welcome to discuss technical issues with me.
  • 相关阅读:
    程序格式
    java数据类型
    java-helloworld
    原生字符串
    字符串常见操作19个操作
    字符串函数操作
    【字符串切片操作和range函数用法】
    【字符串拼接之两种方法】
    C#中ref和out的区别使用
    c语言内部函数、外部函数多文件编译总结(vs2015编译环境)
  • 原文地址:https://www.cnblogs.com/dayang12525/p/7124840.html
Copyright © 2020-2023  润新知