leetcode

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 9a137a14aa7520676879cb76dc485fc85a4fcf49
parent 2f54c7eed7f0ff91af4519422a389ebb91e5fd7d
Author: AndrewLockVI <andrewlaack1@gmail.com>
Date:   Fri,  7 Apr 2023 10:21:58 -0500

Completed question

Diffstat:
Acontains-duplicate/a.out | 0
Acontains-duplicate/contains-duplicate.cpp | 34++++++++++++++++++++++++++++++++++
Acontains-duplicate/contains-duplicateV2.cpp | 50++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 84 insertions(+), 0 deletions(-)

diff --git a/contains-duplicate/a.out b/contains-duplicate/a.out Binary files differ. diff --git a/contains-duplicate/contains-duplicate.cpp b/contains-duplicate/contains-duplicate.cpp @@ -0,0 +1,34 @@ +#include <map> +#include <iostream> +#include <vector> +using namespace std; + + +//Leet Ratings +// Speed Memory +//Total 186ms 70.8MB +//Beats 23.71% 29.11% + +// I chose to use maps because I did not know +// that unordered lists exist. I will fix and +// see the difference. I suspect it will be +// margianlly faster and use far less memory. + + +bool containsDuplicate(vector<int>& nums) { + map <int, int> maps; + bool dupe = false; + for(int i = 0; i < nums.size() ; ++i){ + if(maps.find(nums[i])->second){ + dupe = true; + break; + } + maps.insert(pair(nums[i] , 1)); + } + return dupe; +} + +int main(){ +vector<int> input = {0 , 5 , 2, 4, 5 , 8}; +cout << boolalpha << containsDuplicate(input) << endl; +} diff --git a/contains-duplicate/contains-duplicateV2.cpp b/contains-duplicate/contains-duplicateV2.cpp @@ -0,0 +1,50 @@ +#include <map> +#include <iostream> +#include <unordered_set> +#include <vector> + +using namespace std; + + +//Leet Ratings +// Speed Memory +//Total 135ms 69.6MB +//Beats 70.46% 39.69% + +//I switched from using a map with keys and vals +//to using an unordered_list and it is way faster. +//It is almost 50ms faster than before! + +bool containsDuplicate(vector<int>& nums) { + + unordered_set <int> us; + + bool dupe = false; + for(int i = 0; i < nums.size() ; ++i){ + + if(us.find(nums[i]) != us.end()){ + dupe = true; + break; + } + + us.insert(nums[i]); + } + + return dupe; + +} + + + + + + + + + + + +int main(){ +vector<int> input = {0 , 5 , 2, 4, 5 , 8}; +cout << boolalpha << containsDuplicate(input) << endl; +}