题解 | #数组中重复的数字#

数组中重复的数字

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

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型vector 
     * @return int整型
     */
    int duplicate(vector<int>& n) {
      
        if(n.size()==0)
            return -1;
//         sort(n.begin(),n.end());
//         for(int i=0;i<n.size()-1;i++)
//         {
//             if(n[i]==n[i+1])
//                 return n[i];
//         }
//         return -1;
//     }
        ///////////////////////////////////////////第二种///////////////
//         set<int> s;
//         for(int i=0;i<n.size();i++)
//         {
//             if(s.find(n[i])==s.end())
//                 s.insert(n[i]);
//             else
//                 return n[i];
//         }
//         return -1;
       
        //////////////////////第三种////////////
        for(int i =0;i<n.size();++i)
        {
            while(n[i]!=i)
            {
                if(n[i]==n[n[i]])
                    return n[i];
                else 
                    swap(n[i],n[n[i]]);
            }
        }
        return -1;
    }
};
全部评论

相关推荐

昨天 11:07
河南大学 Java
宇宙厂 测开 n*15
丘丘给个offer:有后选后
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务