最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

217. 存在重復(fù)元素

2023-02-21 21:35 作者:就tm你叫玉璽啊  | 我要投稿

題目:

給你一個整數(shù)數(shù)組?nums?。如果任一值在數(shù)組中出現(xiàn)?至少兩次?,返回?true?;如果數(shù)組中每個元素互不相同,返回?false?。

示例 1:

輸入:nums = [1,2,3,1]

輸出:true

示例 2:

輸入:nums = [1,2,3,4]

輸出:false

示例?3:

輸入:nums = [1,1,1,3,3,4,3,2,4,2]

輸出:true

提示:

  • 1 <= nums.length <= 10^5

  • -10^9 <= nums[i] <= 10^9

代碼示例:
(1)

class Solution {

public:

? ? bool containsDuplicate(vector<int>& nums)

? ? {

? ? ? ? set<int>num1;

? ? ? ? for(auto x:nums)

? ? ? ? {

? ? ? ? ? ? num1.insert(x);

? ? ? ? }

? ? ? ? if(nums.size()==num1.size())

? ? ? ? {

? ? ? ? ? ? return 0;

? ? ? ? }

? ? ? ? return 1;

? ? }

};

第一時間想到的是用set容器的特性:不存在重復(fù)元素。把vector里面的每一個元素insert進(jìn)set容器中,然后比較set容器和原來的vector的長度,如果一樣長,則沒有重復(fù)元素,如果不一樣長,則有重復(fù)元素。

結(jié)果證明方法確實可行,但是因為時間復(fù)雜度大,提示中數(shù)據(jù)量很大導(dǎo)致花了很長時間,而且內(nèi)存占用高達(dá)七十兆,顯然是不太好的。

接下來就想辦法優(yōu)化一下算法

第二次的代碼如下:

class Solution {

public:

? ? bool containsDuplicate(vector<int>& nums)

? ? {

? ? ? ? sort(nums.begin(),nums.end());

? ? ? ? int x = nums.size();

? ? ? ? for(int i = 0;i<x-1;i++)

? ? ? ? {

? ? ? ? ? ? if(nums[i]==nums[i+1])

? ? ? ? ? ? {

? ? ? ? ? ? ? ? return 1;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return 0;

? ? }

};

這一次利用sort函數(shù),把vector的元素排好序,然后通過比較相鄰的元素是否相等來判斷是否存在相等的元素。這樣的好處在于代碼更簡潔,耗時以及內(nèi)存更小

217. 存在重復(fù)元素的評論 (共 條)

分享到微博請遵守國家法律
安康市| 左云县| 阿鲁科尔沁旗| 福建省| 内丘县| 吉首市| 阳东县| 昭平县| 财经| 三明市| 天等县| 铜陵市| 丽江市| 保康县| 陵川县| 黄陵县| 灌云县| 勃利县| 绥棱县| 青阳县| 靖江市| 北票市| 友谊县| 定陶县| 多伦县| 孙吴县| 布尔津县| 武隆县| 万年县| 铜山县| 康乐县| 定陶县| 长沙市| 天长市| 长丰县| 沅江市| 平潭县| 扎鲁特旗| 武乡县| 拜城县| 唐山市|