首页 > 其他 > 详细

leetecode 两数之和

时间:2020-07-01 00:23:54      阅读:54      评论:0      收藏:0      [点我收藏+]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

技术分享图片
   // 暴力循环  时间复杂度:O(n*n) 空间复杂度:O(1) 
        public static int []SumByDoubleNum(int[]num, int target)
        {
            for (int i = 0; i < num.Length; i++)
            {
                for (int j= i+1; j<num.Length; j++)
                {
                    if (num[i] + num[j] == target)
                    {

                        return new int[] { i, j };
                    }
                   
                }
            }
            return  new int[] {0,0 };
        }
        //哈希表  时间复杂度:O(n) 空间复杂度:O(n) 空间换时间
        public static int[] SumByDoubleNum1(int[] num, int target)
        {
            Dictionary<int, int> dic = new Dictionary<int, int>();
            for (int i = 0; i < num.Count(); i++)
            {
                int complement = target - num[i];
                if (dic.ContainsKey(complement) && dic[complement] != 1)
                {
                    return new int[] { i, dic[complement] };
                }
                if (!dic.ContainsKey(num[i]))
                {
                    dic.Add(num[i], i);
                }
            }
            return new int[] { 0,0};
        }
两数之和

 

leetecode 两数之和

原文:https://www.cnblogs.com/amazing-ld/p/13216725.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!