commit 9a137a14aa7520676879cb76dc485fc85a4fcf49
parent 2f54c7eed7f0ff91af4519422a389ebb91e5fd7d
Author: AndrewLockVI <andrewlaack1@gmail.com>
Date: Fri, 7 Apr 2023 10:21:58 -0500
Completed question
Diffstat:
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;
+}