From 21a432744cdced18ec8076ea85fef6e55c0bbe43 Mon Sep 17 00:00:00 2001 From: abahrani Date: Fri, 22 Mar 2024 09:42:10 -0700 Subject: [PATCH 1/4] fix file extension of question 234 --- ...{234-palindrome-linked-list => 234-palindrome-linked-list.cpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Leetcode/{234-palindrome-linked-list => 234-palindrome-linked-list.cpp} (100%) diff --git a/Leetcode/234-palindrome-linked-list b/Leetcode/234-palindrome-linked-list.cpp similarity index 100% rename from Leetcode/234-palindrome-linked-list rename to Leetcode/234-palindrome-linked-list.cpp From e5ccef8f23bb9b67a545e018b4c08704c9dfeb20 Mon Sep 17 00:00:00 2001 From: abahrani Date: Sun, 24 Mar 2024 00:27:43 -0700 Subject: [PATCH 2/4] leetcode 287 --- Leetcode/287-find-the-duplicate-number.cpp | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Leetcode/287-find-the-duplicate-number.cpp diff --git a/Leetcode/287-find-the-duplicate-number.cpp b/Leetcode/287-find-the-duplicate-number.cpp new file mode 100644 index 0000000..22842dd --- /dev/null +++ b/Leetcode/287-find-the-duplicate-number.cpp @@ -0,0 +1,27 @@ +class Solution { +public: + /* + Solution explanation: + Short explanation: checkout turtle and rabbit algorithm on cycle detection + Complete explanation: TBD + */ + int findDuplicate(vector& nums) { + int slow=nums[0],fast=nums[0]; + + while (true) { + slow = nums[slow]; + fast = nums[nums[fast]]; + if (slow == fast) { + // do while is that you? + break; + } + } + slow = nums[0]; + while (slow != fast) { + slow = nums[slow]; + fast = nums[fast]; + } + + return slow; + } +}; \ No newline at end of file From 69bcd53177b5023c36e56286f583bfe5d2f31599 Mon Sep 17 00:00:00 2001 From: abahrani Date: Sun, 24 Mar 2024 00:52:58 -0700 Subject: [PATCH 3/4] leetcode 19 --- .../19-remove-nth-node-from-end-of-list.cpp | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Leetcode/19-remove-nth-node-from-end-of-list.cpp diff --git a/Leetcode/19-remove-nth-node-from-end-of-list.cpp b/Leetcode/19-remove-nth-node-from-end-of-list.cpp new file mode 100644 index 0000000..6e7d816 --- /dev/null +++ b/Leetcode/19-remove-nth-node-from-end-of-list.cpp @@ -0,0 +1,27 @@ +/** + * Definition for singly-linked list. + * struct ListNode { + * int val; + * ListNode *next; + * ListNode() : val(0), next(nullptr) {} + * ListNode(int x) : val(x), next(nullptr) {} + * ListNode(int x, ListNode *next) : val(x), next(next) {} + * }; + */ +class Solution { +public: + ListNode* removeNthFromEnd(ListNode* head, int n) { + ListNode* p1=head,*p2=head; + for(int i=0; inext; + } + if (p2 == nullptr) return head->next; + while (p2->next != nullptr) { + p1 = p1->next; + p2 = p2->next; + } + auto tmp = p1-> next; + p1->next = tmp->next; + return head; + } +}; \ No newline at end of file From c86b934981bb458b8e145101441bc1c39e79f148 Mon Sep 17 00:00:00 2001 From: abahrani Date: Tue, 26 Mar 2024 11:39:27 -0700 Subject: [PATCH 4/4] leet code 41-hard --- Leetcode/41-first-missing-positive.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Leetcode/41-first-missing-positive.cpp diff --git a/Leetcode/41-first-missing-positive.cpp b/Leetcode/41-first-missing-positive.cpp new file mode 100644 index 0000000..52cc4b5 --- /dev/null +++ b/Leetcode/41-first-missing-positive.cpp @@ -0,0 +1,24 @@ +class Solution { +public: + int firstMissingPositive(vector& nums) { + for(int index=0; index < nums.size(); index++) { + if (nums[index] > 0 && nums[index] < nums.size() + 1) { + int tmp = nums[nums[index]-1]; + nums[nums[index] - 1] = nums[index]; + nums[index] = tmp; + } + } + for(int index=0; index < nums.size(); index++) { + while (nums[index] > 0 && nums[index] < nums.size() + 1) { + if (nums[nums[index] - 1] == nums[index]) break; + int tmp = nums[nums[index]-1]; + nums[nums[index] - 1] = nums[index]; + nums[index] = tmp; + } + } + for(int index=0; index < nums.size(); index++) { + if (nums[index]!=index+1) return index+1; + } + return nums.size() + 1; + } +}; \ No newline at end of file