zoukankan      html  css  js  c++  java
  • 算法——两数求和

    题目

    给定一个整数数组nums 和 一个目标值target,请你在数组中找出和为目标值的那 两个整数,并返回他们的数组下标。
    你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
    示例:

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

    思路:

    1. 两次轮询,两两相加
    2. 一次轮询,对比差值

    解答

    方法一:

            /// <summary>
            /// 方法一:暴力破解法
            /// </summary>
            /// <param name="numbers"></param>
            /// <param name="target"></param>
            /// <returns></returns>
            public static int[] GetNumIndex1(int[] numbers, int target)
            {
                for (int i = 0; i < numbers.Length; i++)
                {
                    for (int j = i + 1; j < numbers.Length; j++)
                    {
                        if (numbers[i] + numbers[j] == target)
                        {
                            return new int[] { i, j };
                        }
                    }
                }
                return new int[] { -1, -1 };
            }
    

    方法二:

            /// <summary>
            /// 方法二:hash一遍轮询
            /// </summary>
            /// <param name="numbers"></param>
            /// <param name="target"></param>
            /// <returns></returns>
            public static int[] GetNumIndex2(int[] numbers, int target)
            {
                Hashtable hashtable = new Hashtable();
                for (int i = 0; i < numbers.Length; i++)
                {
                    int diffVal = target - numbers[i];
                    if (hashtable.Contains(diffVal))
                    {
                        return new int[] { (int)hashtable[diffVal], i };
                    }
                    else
                    {
                        hashtable.Add(numbers[i], i);
                    }
                }
                return new int[] { -1, -1 };
            }
    

    运行结果

    源码

  • 相关阅读:
    map和cmath
    优先级队列queue
    algorithm头文件(sort 函数)
    12
    利用sqlmap简单注入dvwa
    集群高可用之lvs+keepalive
    集群高可用之lvs
    zabbix的配置之新版微信报警(二)
    Python升级版本2.6到2.7
    zabbix的安装(一)监控os资源:内存,cpu,io,负载,带宽
  • 原文地址:https://www.cnblogs.com/yinpeng186/p/12255324.html
Copyright © 2011-2022 走看看