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

数组中重复的数字

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-29 15:51
嘉应学院 Java
后端转测开第一人:你把简历的学历改成北京交通大学 去海投1000份发现基本还是没面试
点赞 评论 收藏
分享
投递亚信科技(中国)有限公司等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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