From abed6f9c3f1562287ae1db54b578cc2c60e2b5cf Mon Sep 17 00:00:00 2001 From: NessaMuthoni Date: Wed, 16 Oct 2024 17:07:31 +0300 Subject: [PATCH 1/2] Added the Alice bob challenge --- MonotonicArr Solution/digit-game.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 MonotonicArr Solution/digit-game.py diff --git a/MonotonicArr Solution/digit-game.py b/MonotonicArr Solution/digit-game.py new file mode 100644 index 0000000..0d49b90 --- /dev/null +++ b/MonotonicArr Solution/digit-game.py @@ -0,0 +1,20 @@ +def alice_wins(nums): + # Separate the single-digit and double-digit numbers + single_digit_sum = sum(num for num in nums if 1 <= num <= 9) + double_digit_sum = sum(num for num in nums if 10 <= num <= 99) + # Total sum of all numbers + total_sum = single_digit_sum + double_digit_sum + + # If Alice chooses all single digits, Bob gets the double digits + # Alice wins if her sum is strictly greater than Bob's sum + if single_digit_sum > double_digit_sum: + return True + # If Alice chooses all double digits, Bob gets the single digits + if double_digit_sum > single_digit_sum: + return True + # If neither condition is true, Alice cannot win + return False + +print(alice_wins([1, 2, 3, 4, 10])) +print(alice_wins([1, 2, 3, 4, 5, 14])) +print(alice_wins([7,11,3,8,5])) \ No newline at end of file From 06fee0eee370c30092f7d03dd6cc0e875479fed7 Mon Sep 17 00:00:00 2001 From: NessaMuthoni Date: Wed, 13 Nov 2024 10:16:27 +0300 Subject: [PATCH 2/2] My soution to the binary search question --- MaxNegPos Solution/MaxNegPos_num.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 MaxNegPos Solution/MaxNegPos_num.py diff --git a/MaxNegPos Solution/MaxNegPos_num.py b/MaxNegPos Solution/MaxNegPos_num.py new file mode 100644 index 0000000..d74e02f --- /dev/null +++ b/MaxNegPos Solution/MaxNegPos_num.py @@ -0,0 +1,13 @@ +import bisect +#this module helps to do the binary search automatically +def maximumPosNeg(nums): + first_non_negative = bisect.bisect_left(nums, 0) + first_positive = bisect.bisect_right(nums, 0) + neg = first_non_negative + pos = len(nums) - first_positive + return max(pos,neg) + +nums = [-3, -2, -1, 0, 0, 1, 2, 3] +nums1 = [-2, -1,0 ,0 , 1 , 2 , 3 ,4] +print(maximumPosNeg(nums)) +print(maximumPosNeg(nums1)) \ No newline at end of file