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

数组中重复的数字

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;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
10-12 10:48
已编辑
秋招之苟:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务