LeetCode刷题:存在重复元素-创新互联
题目:
为龙口等地区用户提供了全套网页设计制作服务,及龙口网站建设行业解决方案。主营业务为做网站、网站制作、龙口网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!给你一个整数数组 nums 。如果任一值在数组中出现至少两次 ,返回 true;如果数组中每个元素互不相同,返回 false 。
示例 1:
输入:nums = [1,2,3,1]
输出:true
示例 2:
输入:nums = [1,2,3,4]
输出:false
代码实现:
class Solution {public:
bool cmp(int i,int j)
{return i& 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;
}
};
思路很简单:先排序,对排序后的元素前后进行比较即可。
这里主要对C++自带的sort排序函数的使用作一些介绍:
- 使用必须包含头文件
#include
using namespace std;
- 如果是对vector类型数据排序,假设定义的vector变量为
vector
,则如下:num
//cmp是自定义的比较器(判断函数)
sort(num.begin(), num.end(), cmp)
- 如果是对array类型数据排序,假设a表示要排序的数组,含n个元素,则如下:
//cmp是自定义的比较器(判断函数)
sort(a,a+n,cmp);
下面的代码是一个简单的测试:
#include#include#include
using namespace std;
bool cmp(int i, int j)
{return i >j;
}
int main() {//array元素排序
int nums[] = {1,5,2,3};
sort(nums, nums+4, cmp);
cout<< "--------------"<< endl;
for (int i = 0; i< sizeof(nums)/sizeof(nums[0]); i++) {cout<< nums[i]<< endl;
}
cout<< "--------------"<< endl;
//vector元素排序
vectornums1 = {1,5,2,3 };
sort(nums1.begin(), nums1.end(), cmp);
cout<< "--------------"<< endl;
for (int i = 0; i< nums1.size(); i++) {cout<< nums1[i]<< endl;
}
cout<< "--------------"<< endl;
system("pause");
return 0;
}
这里的cmp函数就是自定义的比较器,即将对应的元素按从大到小的顺序进行排序。
输出的结果为:
--------------
5
3
2
1
--------------
--------------
5
3
2
1
--------------
( C++竟然没有现成的获取数组长度的函数,还得用sizeof(arr) / sizeof(arr[0])
)
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
新闻标题:LeetCode刷题:存在重复元素-创新互联
新闻来源:http://ybzwz.com/article/pjsps.html