mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-02-24 09:58:39 +00:00
Compare commits
No commits in common. "238fe8c494ab5be80c96441095d1c8958f95c04d" and "a71f22dae54f830dbf68b3bd5e5e8d540e338a4c" have entirely different histories.
238fe8c494
...
a71f22dae5
@ -1,53 +0,0 @@
|
|||||||
def max_product_subarray(numbers: list[int]) -> int:
|
|
||||||
"""
|
|
||||||
Returns the maximum product that can be obtained by multiplying a
|
|
||||||
contiguous subarray of the given integer list `nums`.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
>>> max_product_subarray([2, 3, -2, 4])
|
|
||||||
6
|
|
||||||
>>> max_product_subarray((-2, 0, -1))
|
|
||||||
0
|
|
||||||
>>> max_product_subarray([2, 3, -2, 4, -1])
|
|
||||||
48
|
|
||||||
>>> max_product_subarray([-1])
|
|
||||||
-1
|
|
||||||
>>> max_product_subarray([0])
|
|
||||||
0
|
|
||||||
>>> max_product_subarray([])
|
|
||||||
0
|
|
||||||
>>> max_product_subarray("")
|
|
||||||
0
|
|
||||||
>>> max_product_subarray(None)
|
|
||||||
0
|
|
||||||
>>> max_product_subarray([2, 3, -2, 4.5, -1])
|
|
||||||
Traceback (most recent call last):
|
|
||||||
...
|
|
||||||
ValueError: numbers must be an iterable of integers
|
|
||||||
>>> max_product_subarray("ABC")
|
|
||||||
Traceback (most recent call last):
|
|
||||||
...
|
|
||||||
ValueError: numbers must be an iterable of integers
|
|
||||||
"""
|
|
||||||
if not numbers:
|
|
||||||
return 0
|
|
||||||
|
|
||||||
if not isinstance(numbers, (list, tuple)) or not all(
|
|
||||||
isinstance(number, int) for number in numbers
|
|
||||||
):
|
|
||||||
raise ValueError("numbers must be an iterable of integers")
|
|
||||||
|
|
||||||
max_till_now = min_till_now = max_prod = numbers[0]
|
|
||||||
|
|
||||||
for i in range(1, len(numbers)):
|
|
||||||
# update the maximum and minimum subarray products
|
|
||||||
number = numbers[i]
|
|
||||||
if number < 0:
|
|
||||||
max_till_now, min_till_now = min_till_now, max_till_now
|
|
||||||
max_till_now = max(number, max_till_now * number)
|
|
||||||
min_till_now = min(number, min_till_now * number)
|
|
||||||
|
|
||||||
# update the maximum product found till now
|
|
||||||
max_prod = max(max_prod, max_till_now)
|
|
||||||
|
|
||||||
return max_prod
|
|
@ -1,9 +1,8 @@
|
|||||||
import socket
|
if __name__ == "__main__":
|
||||||
|
import socket # Import socket module
|
||||||
|
|
||||||
|
sock = socket.socket() # Create a socket object
|
||||||
def main():
|
host = socket.gethostname() # Get local machine name
|
||||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
||||||
host = socket.gethostname()
|
|
||||||
port = 12312
|
port = 12312
|
||||||
|
|
||||||
sock.connect((host, port))
|
sock.connect((host, port))
|
||||||
@ -14,14 +13,11 @@ def main():
|
|||||||
print("Receiving data...")
|
print("Receiving data...")
|
||||||
while True:
|
while True:
|
||||||
data = sock.recv(1024)
|
data = sock.recv(1024)
|
||||||
|
print(f"{data = }")
|
||||||
if not data:
|
if not data:
|
||||||
break
|
break
|
||||||
out_file.write(data)
|
out_file.write(data) # Write data to a file
|
||||||
|
|
||||||
print("Successfully received the file")
|
print("Successfully got the file")
|
||||||
sock.close()
|
sock.close()
|
||||||
print("Connection closed")
|
print("Connection closed")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user