算法1

作者: 7_c5dc | 来源:发表于2019-05-18 23:16 被阅读0次
image.png image.png

//最优解法

bool duplicate(int numbers[], int lenght, int *duplication) {
    //非空判断
    if (numbers == nil || lenght <= 0) {
        return false;
    }

    //数组元素有效性判断
    for (int i = 0; i < lenght; i++) {
        if (numbers[i] < 0 || numbers[i] > lenght - 1) {
            return false;
        }
    }

    for (int i = 0; i < lenght; i ++) {
        while (numbers[i] != i) {
            if (numbers[i] == numbers[numbers[i]]) {
                *duplication = numbers[I];
                return true;
            }
            int temp = numbers[I];
            numbers[i] = numbers[temp];
            numbers[temp] = temp;
        }
    }
    return false;
}

时间复杂度o(n),空间复杂度o(1)不需要分配空间

//其它解法 排序
//hash

bool duplicateHash(int numbers[], int lenght, int *duplication) {
    //非空判断
    if (numbers == nil || lenght <= 0) {
        return false;
    }

    //数组元素有效性判断
    for (int i = 0; i < lenght; i++) {
        if (numbers[i] < 0 || numbers[i] > lenght - 1) {
            return false;
        }
    }
    int *result = (int *)malloc(sizeof(int) * lenght);
    for (int i = 0; i < lenght; i ++) {
        result[i] = 0;
    }
    for (int i = 0; i < lenght; i ++) {
        int index = numbers[i];
        if (result[index] == 0) {
            result[index] ++;
        } else {
            *duplication = numbers[i];
            return true;
        }
    }
    return false;
}

相关文章

  • 路径规划文集

    1、最短路径规划算法——A*算法 1)A*算法原理形象阐释; 2)A*算法原理;

  • 大数据实例 | 你想知道搜索引擎排名怎么来的嘛---PageRa

    目录 什么是PageRank算法 算法原理(1) 算法原理(2) 看论文推荐 1. 什么是PageRank算法 P...

  • 算法1

    前言:重新复习算法相关内容,随便找了本算法书,记录一下心得,书名是《算法设计与分析——C++语言描述》,陈慧南编著...

  • 算法 - 1

    1. 快速排序1.1 学习分而治之1.2 快速排序的Demo方法1.3 快速排序的图解 2. 二分查找2.1 二分...

  • 算法(1)

    算法: 第一讲: 1.快速解决问题的能力2.分析问题的能力(时间复杂度和空间复杂度)3.沟通能力(统一专业术语) ...

  • 算法 1

    算法 merge-two-sorted-lists 解决办法: 递归 解决方法:backtracking solu...

  • [算法] 1

    矩阵从一个点出发,沿一个方向(八个方向)连续求和,不折返,求和最大的起点、方向、长度和最大和。假定: 矩阵起点[0...

  • 算法(1)

    算法定义:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。通俗来...

  • 算法1

    这里是我算法练习的一些例子,当作思维训练,题目来主要来自自剑指offer,我用python作为实现语言,个别可能没...

  • 算法1

    //最优解法 时间复杂度o(n),空间复杂度o(1)不需要分配空间 //其它解法 排序//hash

网友评论

      本文标题:算法1

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