分享

[数组]1. 两数之和

 时间剧毒 2019-08-29

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


private void button1_Click(object sender, EventArgs e)

        {

            int[] nums ={ 2, 4, 6, 44, 22, 11, 55, 88, 9, 10 };

            int target = 12;

            int[] arr = SoluSum(nums, target);

        }

        public int[] TwoSum(int[] nums, int target)

        {

            int[] arr = new int[2];

            for (int i = 0; i < nums.Length; i++)

            {

                for (int j = i + 1; j < nums.Length; j++)

                {

                    if (nums[i] + nums[j] == target)

                    {

                        arr = new int[] { i, j };

                        break;

                    }

                }

            }

            return arr;

        }

        public int[] SoluSum(int[] nums, int target)

        {

            int[] arr = new int[2];

            Dictionary<int, int> dic = new Dictionary<int, int>();

            for (int i = 0; i < nums.Length; i++) { 

                   int k=target-nums[i];

                   if (dic.ContainsKey(k)) {

                       int j = int.Parse(dic[k].ToString());  //获取dic的值 加上本次循环的次数

                       arr = new int[] { j, i };

                       break;

                   }

                   dic[nums[i]] = i;

            }

            return arr;

        }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多