mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-02-22 09:12:08 +00:00
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
This commit is contained in:
parent
134c7ab3d0
commit
2e216ab558
|
@ -22,13 +22,14 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# https://gist.github.com/harigro/28df9ec639f74f217473f85065acf9d8
|
# https://gist.github.com/harigro/28df9ec639f74f217473f85065acf9d8
|
||||||
|
|
||||||
from typing import List, Dict
|
from typing import List, Dict
|
||||||
|
|
||||||
|
|
||||||
def divide_array_to_graph(arr: List[int], base: int) -> Dict[int, List[int]]:
|
def divide_array_to_graph(arr: List[int], base: int) -> Dict[int, List[int]]:
|
||||||
"""
|
"""
|
||||||
Splits an array into smaller parts and returns them in a dictionary, simulating a graph
|
Splits an array into smaller parts and returns them in a dictionary, simulating a graph
|
||||||
structure where each part of the array is a node connected to other parts.
|
structure where each part of the array is a node connected to other parts.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
@ -36,7 +37,7 @@ def divide_array_to_graph(arr: List[int], base: int) -> Dict[int, List[int]]:
|
||||||
base (int): The divisor that determines the number of parts.
|
base (int): The divisor that determines the number of parts.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Dict[int, List[int]]: A dictionary representing the graph structure,
|
Dict[int, List[int]]: A dictionary representing the graph structure,
|
||||||
where each key is a node and the value is a list of connected nodes.
|
where each key is a node and the value is a list of connected nodes.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
@ -46,21 +47,23 @@ def divide_array_to_graph(arr: List[int], base: int) -> Dict[int, List[int]]:
|
||||||
{0: [1, 2, 3, 4], 1: [5, 6, 7, 8]}
|
{0: [1, 2, 3, 4], 1: [5, 6, 7, 8]}
|
||||||
"""
|
"""
|
||||||
length = len(arr)
|
length = len(arr)
|
||||||
parts = len(arr)//base # Desired number of parts
|
parts = len(arr) // base # Desired number of parts
|
||||||
part_size = length // parts # Size of each part
|
part_size = length // parts # Size of each part
|
||||||
|
|
||||||
# Divide the array into smaller parts
|
# Divide the array into smaller parts
|
||||||
result = [arr[i * part_size: (i + 1) * part_size] for i in range(parts)]
|
result = [arr[i * part_size : (i + 1) * part_size] for i in range(parts)]
|
||||||
|
|
||||||
# Insert the result into a dictionary with keys from 0 to 3
|
# Insert the result into a dictionary with keys from 0 to 3
|
||||||
result_dict = {i: result[i] for i in range(parts)}
|
result_dict = {i: result[i] for i in range(parts)}
|
||||||
|
|
||||||
return result_dict
|
return result_dict
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# Example usage
|
# Example usage
|
||||||
array = [1, 2, 3, 4, 5, 6, 7, 8]
|
array = [1, 2, 3, 4, 5, 6, 7, 8]
|
||||||
print(divide_array_to_graph(array, 2))
|
print(divide_array_to_graph(array, 2))
|
||||||
|
|
||||||
import doctest
|
import doctest
|
||||||
doctest.testmod()
|
|
||||||
|
doctest.testmod()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user