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://www.scyingshan.cn/article/pjsps.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 