数组算法

作者: coderPoo | 来源:发表于2019-07-16 00:02 被阅读0次

    1、数组中不重复的数只有一个,并找出

    思路 :初始化一个值 int a = 0; 遍历数组每个 item^a ;最后a的值就是不重复的值
    时间 O(n) ,空间S(1)

    2、数组中不重复的数大于一个,

    思路 :遍历数组,使用map记录数字出现的次数;再遍历map,找出次数为1的数
    时间 O(n) ,空间S(n)

    3、找出第一个不重复的数

    思路:1、两层for循环 O(n*n)

    ```
    for (int i = 0; i < count; i++) {
        
            for (int j =0;j <count ;j++){
                    if (i!=j && a[j]==a[i]) {    
                            return j;
                  }
          }
        if    j = a.count -1 return 没找到;
    }
    
    
    2、第一次遍历数组,使用map记录记录每个元素的个数 map[value] ++;
                         第二次遍历,找到 第一个map[value] == 1的元素
        ```
          for (value in a) {
         
            map[value] ++;
        }
    
        for (value in a) {
            if (map[value] == 1) {
                return  value;
          }
       }
    

    O(n) S(n)

    4、数组中找到第一个重复的数字

    思路:遍历数组,存入字典 map[value] ++;如果map[value] 包含这个数据说明已经存在

    相关文章

      网友评论

        本文标题:数组算法

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