剑指offer题解 | #数组中重复的数字#

数组中重复的数字

https://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param numbers int整型一维数组 
 * @param numbersLen int numbers数组长度
 * @return int整型
 */
#include <stdbool.h>
int duplicate(int* numbers, int numbersLen )
 {
    // write code here
    /* 两层循环暴力遍历
    for(int a=0;a<=numbersLen-2;a++)
        {
            for(int b=a+1;b<=numbersLen-1;b++)
            {
                if(numbers[a]==numbers[b]) 
                {
                    return numbers[a];
                }
            }
        }
        return -1;
    */
    /*两层循环排序再一层遍历
    for(int a=0;a<=numbersLen-2;a++)
        {
            for(int b=a+1;b<=numbersLen-1;b++)
            {
                if(numbers[a]>numbers[b]) 
                {
                    int t=0;
                    t=numbers[a];
                    numbers[a]=numbers[b];
                    numbers[b]=t;
                }
            }
        }
    for(int a=0;a<=numbersLen-2;a++)
        {
            if(numbers[a]==numbers[a+1])
            {
            return numbers[a];
            }
        }
    return -1;
    */
    /*下标法
    int i = 0;
    int t = 0;
        while (i < numbersLen) {
            if (i == numbers[i]) {
                i++;
            }   
            else {
                if (numbers[numbers[i]] == numbers[i]) {
                    return numbers[i];
                }
                else {
                    // 交换
                    t=numbers[numbers[i]];
                    numbers[numbers[i]]=numbers[i];
                    numbers[i]=t;
                }
            }
        }
        return -1;
    */
    /*哈希count和map查字典发以及布尔数组法(核心思想一样)*/
    bool bol[10000]={0};
    for(int i=0;i<numbersLen;i++)
    {
        if(bol[numbers[i]]!=0)
        {
            return numbers[i];
        }
        bol[numbers[i]] = 1;
    }
    return -1;
}

小新练习随记,勿喷谢谢

全部评论

相关推荐

11-06 16:50
门头沟学院 Java
用微笑面对困难:word打字比赛二等奖的我,也要来凑合凑合
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务