From 43a5b5ec0dae251172e6a380a0bc699f3d87cffd Mon Sep 17 00:00:00 2001 From: Ajinesh Pratap Singh <152050389+ajinesh703@users.noreply.github.com> Date: Sun, 22 Sep 2024 12:41:55 +0530 Subject: [PATCH 1/5] Create Stack.py --- Stack.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Stack.py diff --git a/Stack.py b/Stack.py new file mode 100644 index 0000000000000..1c70a86177166 --- /dev/null +++ b/Stack.py @@ -0,0 +1,26 @@ +def largest_rectangle_area(heights): + stack = [] + max_area = 0 + index = 0 + + while index < len(heights): + if not stack or heights[stack[-1]] <= heights[index]: + stack.append(index) + index += 1 + + else: + top_of_stack = stack.pop() + area = (heights[top_of_stack]* ((index - stack[-1] -1) if stack else index)) + + max_area = max(max_area,area) + + while stack: + top_of_stack = stack.pop() + area = (heights[top_of_stack] * ((index - stack[-1] -1) if stack else index)) + max_area = max(max_area, area) + + return max_area + +histogram = [2, 1, 5, 6, 2, 3] + +print(largest_rectangle_area(histogram)) From a3675f76b5a6052654b7521a90c8773079967abd Mon Sep 17 00:00:00 2001 From: Ajinesh Pratap Singh <152050389+ajinesh703@users.noreply.github.com> Date: Thu, 26 Sep 2024 22:58:27 +0530 Subject: [PATCH 2/5] Create Dog Pattern --- Dog Pattern | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Dog Pattern diff --git a/Dog Pattern b/Dog Pattern new file mode 100644 index 0000000000000..5f1982852c696 --- /dev/null +++ b/Dog Pattern @@ -0,0 +1,10 @@ +def dog_pattern(): + + print(" / \__") + print(" ( @\__") + print("/ o") + print("/ (_____") + print("\ u )") + print(" `----------") + +dog_pattern() From abf1f4ee85171a2091163ef67924e0f16a9091b7 Mon Sep 17 00:00:00 2001 From: Ajinesh Pratap Singh <152050389+ajinesh703@users.noreply.github.com> Date: Sat, 28 Sep 2024 19:17:14 +0530 Subject: [PATCH 3/5] Create Merge sort --- Merge sort | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Merge sort diff --git a/Merge sort b/Merge sort new file mode 100644 index 0000000000000..912dc262678b2 --- /dev/null +++ b/Merge sort @@ -0,0 +1,44 @@ +import os + +def merge_sort_files(file_input, file_output): + # Read input file + with open(file_input, 'r') as f: + arr = list(map(int, f.read().split())) + + # Sort the array + arr = merge_sort(arr) + + # Write sorted data to the output file + with open(file_output, 'w') as f: + f.write(" ".join(map(str, arr))) + +def merge_sort(arr): + if len(arr) <= 1: + return arr + + mid = len(arr) // 2 + left_half = merge_sort(arr[:mid]) + right_half = merge_sort(arr[mid:]) + + return merge(left_half, right_half) + +def merge(left, right): + result = [] + i = j = 0 + while i < len(left) and j < len(right): + if left[i] <= right[j]: + result.append(left[i]) + i += 1 + else: + result.append(right[j]) + j += 1 + + result.extend(left[i:]) + result.extend(right[j:]) + return result + +# Example usage +input_file = "unsorted.txt" +output_file = "sorted.txt" +merge_sort_files(input_file, output_file) +print(f"Sorted data written to {output_file}") From a5be9d05a144f2e27a44cc86ee6c2f97bda54ee3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 1 Dec 2024 17:50:02 +0000 Subject: [PATCH 4/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- Dog Pattern | 2 +- Merge sort | 8 ++++---- Stack.py | 43 ++++++++++++++++++++++--------------------- 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/Dog Pattern b/Dog Pattern index 5f1982852c696..dabd3fd1fd278 100644 --- a/Dog Pattern +++ b/Dog Pattern @@ -1,5 +1,5 @@ def dog_pattern(): - + print(" / \__") print(" ( @\__") print("/ o") diff --git a/Merge sort b/Merge sort index 912dc262678b2..2981063681114 100644 --- a/Merge sort +++ b/Merge sort @@ -4,10 +4,10 @@ def merge_sort_files(file_input, file_output): # Read input file with open(file_input, 'r') as f: arr = list(map(int, f.read().split())) - + # Sort the array arr = merge_sort(arr) - + # Write sorted data to the output file with open(file_output, 'w') as f: f.write(" ".join(map(str, arr))) @@ -15,11 +15,11 @@ def merge_sort_files(file_input, file_output): def merge_sort(arr): if len(arr) <= 1: return arr - + mid = len(arr) // 2 left_half = merge_sort(arr[:mid]) right_half = merge_sort(arr[mid:]) - + return merge(left_half, right_half) def merge(left, right): diff --git a/Stack.py b/Stack.py index 1c70a86177166..5885ff975fc37 100644 --- a/Stack.py +++ b/Stack.py @@ -1,25 +1,26 @@ def largest_rectangle_area(heights): - stack = [] - max_area = 0 - index = 0 - - while index < len(heights): - if not stack or heights[stack[-1]] <= heights[index]: - stack.append(index) - index += 1 - - else: - top_of_stack = stack.pop() - area = (heights[top_of_stack]* ((index - stack[-1] -1) if stack else index)) - - max_area = max(max_area,area) - - while stack: - top_of_stack = stack.pop() - area = (heights[top_of_stack] * ((index - stack[-1] -1) if stack else index)) - max_area = max(max_area, area) - - return max_area + stack = [] + max_area = 0 + index = 0 + + while index < len(heights): + if not stack or heights[stack[-1]] <= heights[index]: + stack.append(index) + index += 1 + + else: + top_of_stack = stack.pop() + area = heights[top_of_stack] * ((index - stack[-1] - 1) if stack else index) + + max_area = max(max_area, area) + + while stack: + top_of_stack = stack.pop() + area = heights[top_of_stack] * ((index - stack[-1] - 1) if stack else index) + max_area = max(max_area, area) + + return max_area + histogram = [2, 1, 5, 6, 2, 3] From 852ce0912de04451a431552ff5faf8e69f72974f Mon Sep 17 00:00:00 2001 From: Ajinesh Pratap Singh <152050389+ajinesh703@users.noreply.github.com> Date: Mon, 2 Dec 2024 20:22:06 +0530 Subject: [PATCH 5/5] Create Maximum Numbers --- Maximum Numbers | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Maximum Numbers diff --git a/Maximum Numbers b/Maximum Numbers new file mode 100644 index 0000000000000..e81f52cd352dd --- /dev/null +++ b/Maximum Numbers @@ -0,0 +1,9 @@ +def find_max(node): + if node is None: + return float('-inf') + left_max = find_max(node.left) + right_max = find_max(node.right) + return max(node.value, left_max, right_max) + +# Test the max value function +print("\nMaximum value in the tree:", find_max(root))