From 4c6121d84508d56583e52238b33f4dbb4885b801 Mon Sep 17 00:00:00 2001 From: Komal Harshita Date: Tue, 21 Oct 2025 12:42:24 +0530 Subject: [PATCH 01/11] Add a_very_big_sum algorithm to maths folder --- maths/special_numbers/a_very_big_sum.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 maths/special_numbers/a_very_big_sum.py diff --git a/maths/special_numbers/a_very_big_sum.py b/maths/special_numbers/a_very_big_sum.py new file mode 100644 index 000000000000..f0223aaf8c8e --- /dev/null +++ b/maths/special_numbers/a_very_big_sum.py @@ -0,0 +1,20 @@ +from typing import List + +def a_very_big_sum(arr: List[int]) -> int: + """ + Return the sum of all integers in the input array. + + >>> a_very_big_sum([2, 4, 6, 2, 4, 6, 3]) + 27 + >>> a_very_big_sum([]) + 0 + >>> a_very_big_sum([1000000000, 2000000000]) + 3000000000 + """ + if not all(isinstance(x, int) for x in arr): + raise ValueError("All elements in the array must be integers") + + total = 0 + for number in arr: + total += number + return total From 2e5b8980304014f131c23d43a7a08e624c23de8b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 07:15:36 +0000 Subject: [PATCH 02/11] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/special_numbers/a_very_big_sum.py | 1 + 1 file changed, 1 insertion(+) diff --git a/maths/special_numbers/a_very_big_sum.py b/maths/special_numbers/a_very_big_sum.py index f0223aaf8c8e..d1d59674e035 100644 --- a/maths/special_numbers/a_very_big_sum.py +++ b/maths/special_numbers/a_very_big_sum.py @@ -1,5 +1,6 @@ from typing import List + def a_very_big_sum(arr: List[int]) -> int: """ Return the sum of all integers in the input array. From aceb290a19c885085d0f0220e7cf2666971c2e01 Mon Sep 17 00:00:00 2001 From: Komal Harshita Date: Tue, 21 Oct 2025 12:51:47 +0530 Subject: [PATCH 03/11] fixed error --- maths/special_numbers/a_very_big_sum.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/maths/special_numbers/a_very_big_sum.py b/maths/special_numbers/a_very_big_sum.py index f0223aaf8c8e..7ef5c53e65e5 100644 --- a/maths/special_numbers/a_very_big_sum.py +++ b/maths/special_numbers/a_very_big_sum.py @@ -1,20 +1,20 @@ -from typing import List - -def a_very_big_sum(arr: List[int]) -> int: +def a_very_big_sum(arr: list[int]) -> int: """ Return the sum of all integers in the input array. - >>> a_very_big_sum([2, 4, 6, 2, 4, 6, 3]) - 27 + >>> a_very_big_sum([2, 4, 6]) + 12 >>> a_very_big_sum([]) 0 - >>> a_very_big_sum([1000000000, 2000000000]) - 3000000000 """ - if not all(isinstance(x, int) for x in arr): - raise ValueError("All elements in the array must be integers") - total = 0 - for number in arr: - total += number + for i in arr: + total += i return total + +if __name__ == "__main__": + # Example usage + arr = [2, 4, 6, 2, 4, 6, 3] + result = a_very_big_sum(arr) + print(f"Sum of {arr} is {result}") + From 7a0f65306d224f3917a3caf23997f850c21cbb6a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 07:22:54 +0000 Subject: [PATCH 04/11] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/special_numbers/a_very_big_sum.py | 1 - 1 file changed, 1 deletion(-) diff --git a/maths/special_numbers/a_very_big_sum.py b/maths/special_numbers/a_very_big_sum.py index 2a88d90c9d5d..d2e992798f33 100644 --- a/maths/special_numbers/a_very_big_sum.py +++ b/maths/special_numbers/a_very_big_sum.py @@ -24,4 +24,3 @@ def a_very_big_sum(arr: List[int]) -> int: arr = [2, 4, 6, 2, 4, 6, 3] result = a_very_big_sum(arr) print(f"Sum of {arr} is {result}") - From 2666979c72e276b065ce20086dc0ef447150612f Mon Sep 17 00:00:00 2001 From: Komal Harshita Date: Tue, 21 Oct 2025 12:53:22 +0530 Subject: [PATCH 05/11] format fixed --- maths/special_numbers/a_very_big_sum.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/maths/special_numbers/a_very_big_sum.py b/maths/special_numbers/a_very_big_sum.py index 2a88d90c9d5d..2c5385e6fa6b 100644 --- a/maths/special_numbers/a_very_big_sum.py +++ b/maths/special_numbers/a_very_big_sum.py @@ -1,11 +1,4 @@ -<<<<<<< HEAD def a_very_big_sum(arr: list[int]) -> int: -======= -from typing import List - - -def a_very_big_sum(arr: List[int]) -> int: ->>>>>>> 2e5b8980304014f131c23d43a7a08e624c23de8b """ Return the sum of all integers in the input array. @@ -25,3 +18,4 @@ def a_very_big_sum(arr: List[int]) -> int: result = a_very_big_sum(arr) print(f"Sum of {arr} is {result}") + From ca7004d4b4c473bebd6e24cd90ab5ae0c9cc0c52 Mon Sep 17 00:00:00 2001 From: Komal Harshita Date: Tue, 21 Oct 2025 13:25:08 +0530 Subject: [PATCH 06/11] final commit --- maths/special_numbers/a_very_big_sum.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/maths/special_numbers/a_very_big_sum.py b/maths/special_numbers/a_very_big_sum.py index a746a2bb5f9d..9496b88bea85 100644 --- a/maths/special_numbers/a_very_big_sum.py +++ b/maths/special_numbers/a_very_big_sum.py @@ -12,13 +12,9 @@ def a_very_big_sum(arr: list[int]) -> int: total += i return total + if __name__ == "__main__": # Example usage arr = [2, 4, 6, 2, 4, 6, 3] result = a_very_big_sum(arr) print(f"Sum of {arr} is {result}") -<<<<<<< HEAD - - -======= ->>>>>>> 7a0f65306d224f3917a3caf23997f850c21cbb6a From 49b642318d8623e89d9c8918364c7b9d1f5e90d8 Mon Sep 17 00:00:00 2001 From: Komal Harshita Date: Sun, 26 Oct 2025 17:04:14 +0530 Subject: [PATCH 07/11] Add algorithm: single_number using XOR --- maths/special_numbers/a_very_big_sum.py | 20 -------------------- maths/special_numbers/single_number.py | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 20 deletions(-) delete mode 100644 maths/special_numbers/a_very_big_sum.py create mode 100644 maths/special_numbers/single_number.py diff --git a/maths/special_numbers/a_very_big_sum.py b/maths/special_numbers/a_very_big_sum.py deleted file mode 100644 index 9496b88bea85..000000000000 --- a/maths/special_numbers/a_very_big_sum.py +++ /dev/null @@ -1,20 +0,0 @@ -def a_very_big_sum(arr: list[int]) -> int: - """ - Return the sum of all integers in the input array. - - >>> a_very_big_sum([2, 4, 6]) - 12 - >>> a_very_big_sum([]) - 0 - """ - total = 0 - for i in arr: - total += i - return total - - -if __name__ == "__main__": - # Example usage - arr = [2, 4, 6, 2, 4, 6, 3] - result = a_very_big_sum(arr) - print(f"Sum of {arr} is {result}") diff --git a/maths/special_numbers/single_number.py b/maths/special_numbers/single_number.py new file mode 100644 index 000000000000..b8a8b1d1917a --- /dev/null +++ b/maths/special_numbers/single_number.py @@ -0,0 +1,22 @@ +def single_number(nums: list[int]) -> int: + """ + Find the element that appears only once in a list where every other element appears twice. + + This algorithm uses bitwise XOR to cancel out duplicate numbers. + + >>> single_number([2, 2, 1]) + 1 + >>> single_number([4, 1, 2, 1, 2]) + 4 + >>> single_number([1]) + 1 + """ + res = 0 + for n in nums: + res ^= n + return res + + +if __name__ == "__main__": + example = [4, 1, 2, 1, 2] + print(single_number(example)) # Output: 4 From aaaf44763cc495e1f948c42947a60984888ae481 Mon Sep 17 00:00:00 2001 From: Komal Harshita Date: Sun, 26 Oct 2025 17:18:35 +0530 Subject: [PATCH 08/11] Fix: format docstring line length --- maths/special_numbers/single_number.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/maths/special_numbers/single_number.py b/maths/special_numbers/single_number.py index b8a8b1d1917a..fd2bc12674dd 100644 --- a/maths/special_numbers/single_number.py +++ b/maths/special_numbers/single_number.py @@ -1,22 +1,15 @@ def single_number(nums: list[int]) -> int: """ - Find the element that appears only once in a list where every other element appears twice. + Find the element that appears only once in a list + where every other element appears twice. This algorithm uses bitwise XOR to cancel out duplicate numbers. - - >>> single_number([2, 2, 1]) - 1 - >>> single_number([4, 1, 2, 1, 2]) - 4 - >>> single_number([1]) - 1 """ res = 0 for n in nums: res ^= n return res - if __name__ == "__main__": example = [4, 1, 2, 1, 2] print(single_number(example)) # Output: 4 From 1838432d83f8517bbe2d481718a6f4b8af0bb788 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 26 Oct 2025 11:48:59 +0000 Subject: [PATCH 09/11] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/special_numbers/single_number.py | 1 + 1 file changed, 1 insertion(+) diff --git a/maths/special_numbers/single_number.py b/maths/special_numbers/single_number.py index fd2bc12674dd..14e6de8744db 100644 --- a/maths/special_numbers/single_number.py +++ b/maths/special_numbers/single_number.py @@ -10,6 +10,7 @@ def single_number(nums: list[int]) -> int: res ^= n return res + if __name__ == "__main__": example = [4, 1, 2, 1, 2] print(single_number(example)) # Output: 4 From 538cbe1175db55b6e2af6da1a57d563dc7db5fc0 Mon Sep 17 00:00:00 2001 From: Komal Harshita Date: Tue, 28 Oct 2025 22:44:23 +0530 Subject: [PATCH 10/11] docs: add doctests for single_number function --- maths/special_numbers/single_number.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/maths/special_numbers/single_number.py b/maths/special_numbers/single_number.py index 14e6de8744db..2b1cb9efc27f 100644 --- a/maths/special_numbers/single_number.py +++ b/maths/special_numbers/single_number.py @@ -4,13 +4,16 @@ def single_number(nums: list[int]) -> int: where every other element appears twice. This algorithm uses bitwise XOR to cancel out duplicate numbers. + + >>> single_number([2, 2, 1]) + 1 + >>> single_number([4, 1, 2, 1, 2]) + 4 + >>> single_number([1]) + 1 """ res = 0 for n in nums: res ^= n return res - -if __name__ == "__main__": - example = [4, 1, 2, 1, 2] - print(single_number(example)) # Output: 4 From 5f6f99c19826a78956c1c35a7bdfaee003a4eb1b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 17:15:22 +0000 Subject: [PATCH 11/11] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/special_numbers/single_number.py | 1 - 1 file changed, 1 deletion(-) diff --git a/maths/special_numbers/single_number.py b/maths/special_numbers/single_number.py index 2b1cb9efc27f..6789f5d1ef17 100644 --- a/maths/special_numbers/single_number.py +++ b/maths/special_numbers/single_number.py @@ -16,4 +16,3 @@ def single_number(nums: list[int]) -> int: for n in nums: res ^= n return res -