leetcode -数据结构-数组-217. 存在重复元素
首先将 数组排序 然后再用循环测试 前后两项 是否有相同的
重点是 我不会c++ 的排序 所以 先理一下c++ 的排序
排序用sort() 函数
sort() 函数用法如下
1、sort函数可以三个参数也可以两个参数,必须的头文件#include < algorithm>和using namespace std; 2、它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n)
3、Sort函数有三个参数:(第三个参数可不写) (1)第一个是要排序的数组的起始地址。 (2)第二个是结束的地址(最后一位要排序的地址) (3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
用法 eg:
#include <iostream>
#include <algorithm>
int main()
{
int a[20]={2,4,1,23,5,76,0,43,24,65},i;
sort(a,a+20);
for(i=0;i<20;i++)
cout<<a[i]<<endl;
return 0;
}
然后来看最后的那个判断前后两项 是否相同的那个循环
for(int i = 0;i<num.size - 1;i++)
{
if(num[i]==num[i+1])
{
return true;
}
}
return false;
最后是AC代码
class Solution {
public:
bool containsDuplicate(vector<int>& nums) {
sort(nums.begin(),nums.end());
for(int i= 0 ; i<nums.size()-1;i++)
{
if(nums[i]==nums[i+1])
return true;
}
return false;
}
};
|