美文网首页
求数组中和为100的两个数

求数组中和为100的两个数

作者: LEO_青蛙 | 来源:发表于2020-05-30 14:54 被阅读0次

    1、暴力法(两重循环)
    时间复杂度:O(n^2)
    2、快速排序+滑动指针
    先快速排序,得到升序的数组;
    然后使用头指针和尾指针,如果两个指针指向的两个数之和大于100,则尾指针往前移1位,如果小于100,则头指针往后移1位。
    3、哈希数组法(数组是乱序的)

    int[] data;//乱序数组
    bool[] sum = new bool[101];//全部初始化为false
    for(int i=0; i<data.Count; ++i)
    {
        if(data[i] > 100) continue;
        if(sum[100-data[i]]) return;//得到结果data[i]和100-data[i]
        sum[data[i]] = true;
    }
    

    相关文章

      网友评论

          本文标题:求数组中和为100的两个数

          本文链接:https://www.haomeiwen.com/subject/pgoczhtx.html