4 sum leetcode python

thaibinh468

New member
#4Sum #leetcode #Python #array #algorithm

## 4 tổng trong LeetCode với Python

Trong bài viết này, chúng tôi sẽ giải quyết vấn đề 4 tổng trong LeetCode bằng Python.Vấn đề 4 tổng là một vấn đề kinh điển trong khoa học máy tính.Nó được cung cấp một mảng các số nguyên `nums` và nhiệm vụ là tìm tất cả các tứ giác trong mảng tổng cộng về 0.

Một bốn người là một nhóm gồm bốn số nguyên.Ví dụ: `[1, 2, 3, 4]` là một hình nhân.

Vấn đề 4 tổng là một vấn đề đầy thách thức vì nó liên quan đến việc tìm kiếm tất cả các kết hợp có thể có của bốn số nguyên trong một mảng.Cách tiếp cận ngây thơ sẽ là lặp đi lặp lại trên tất cả các kết hợp có thể của bốn số nguyên trong mảng, nhưng điều này sẽ rất kém hiệu quả.

Một cách tiếp cận hiệu quả hơn là sử dụng bảng băm.Bảng băm là một cấu trúc dữ liệu có thể lưu trữ các cặp giá trị khóa.Trong trường hợp này, chúng ta có thể sử dụng bảng băm để lưu trữ tổng của tất cả các cặp số nguyên có thể có trong mảng.Sau đó, chúng ta có thể lặp lại tất cả các bộ ba có thể trong mảng và kiểm tra xem tổng của bộ ba có trong bảng băm không.Nếu có, thì chúng tôi đã tìm thấy một bộ tứ tổng hợp về 0.

Đây là mã Python cho vấn đề 4 tổng:

`` `Python
def bốn_sum (nums):
"" "
Tìm thấy tất cả các tứ giác trong mảng đã cho tổng số về 0.

Thông số:
Nums: Một mảng số nguyên.

Trả lại:
Một danh sách tất cả các tứ giác trong mảng tổng cộng về 0.
"" "

# Sắp xếp mảng.

nums.sort ()

# Tạo bảng băm để lưu trữ tổng của tất cả các cặp số nguyên có thể có trong mảng.

sums = {}
Đối với I trong phạm vi (Len (nums)):
Đối với J trong phạm vi (i + 1, len (nums)):
sums [nums + nums [j]] = true

# Lặp lại tất cả các bộ ba có thể trong mảng.

Quadruplets = []
Đối với I trong phạm vi (Len (nums)):
Đối với J trong phạm vi (i + 1, len (nums)):
Đối với k trong phạm vi (j + 1, len (nums)):
# Kiểm tra xem tổng của bộ ba có trong bảng băm không.

Nếu nums + nums [j] + nums [k] bằng tổng:
# Triple Sums về 0, vì vậy chúng tôi đã tìm thấy một bốn người.

Quadruplets.Append ([nums , nums [j], nums [k], -(nums + nums [j] + nums [k])])

trả lại bốn lần
`` `

## Độ phức tạp thời gian

Độ phức tạp thời gian của thuật toán tổng 4 là O (n^3).Điều này là do chúng ta cần lặp lại tất cả các kết hợp có thể có của bốn số nguyên trong mảng, đó là O (n^4).Tuy nhiên, chúng ta có thể giảm độ phức tạp thời gian xuống O (n^2) bằng cách sử dụng bảng băm để lưu trữ tổng của tất cả các cặp số nguyên có thể có trong mảng.

## Độ phức tạp không gian

Độ phức tạp không gian của thuật toán 4 tổng là O (n^2).Điều này là do chúng ta cần sử dụng bảng băm để lưu trữ tổng của tất cả các cặp số nguyên có thể có trong mảng.

## Phần kết luận

Vấn đề 4 tổng là một vấn đề kinh điển trong khoa học máy tính.Đó là một vấn đề đầy thách thức bởi vì nó liên quan đến việc tìm kiếm tất cả các kết hợp có thể có của bốn số nguyên trong một mảng.Tuy nhiên, nó có thể được giải quyết hiệu quả bằng cách sử dụng bảng băm.
=======================================
#4Sum #leetcode #Python #array #algorithm

## 4 Sum in Leetcode with Python

In this article, we will solve the 4 Sum problem in Leetcode using Python. The 4 Sum problem is a classic problem in computer science. It is given an array of integers `nums`, and the task is to find all the quadruplets in the array that sum to zero.

A quadruplet is a group of four integers. For example, `[1, 2, 3, 4]` is a quadruplet.

The 4 Sum problem is a challenging problem because it involves finding all the possible combinations of four integers in an array. The naive approach would be to iterate over all the possible combinations of four integers in the array, but this would be very inefficient.

A more efficient approach is to use a hash table. A hash table is a data structure that can store key-value pairs. In this case, we can use a hash table to store the sums of all the possible pairs of integers in the array. Then, we can iterate over all the possible triples in the array and check if the sum of the triple is in the hash table. If it is, then we have found a quadruplet that sums to zero.

Here is the Python code for the 4 Sum problem:

```python
def four_sum(nums):
"""
Finds all the quadruplets in the given array that sum to zero.

Parameters:
nums: An array of integers.

Returns:
A list of all the quadruplets in the array that sum to zero.
"""

# Sort the array.

nums.sort()

# Create a hash table to store the sums of all the possible pairs of integers in the array.

sums = {}
for i in range(len(nums)):
for j in range(i + 1, len(nums)):
sums[nums + nums[j]] = True

# Iterate over all the possible triples in the array.

quadruplets = []
for i in range(len(nums)):
for j in range(i + 1, len(nums)):
for k in range(j + 1, len(nums)):
# Check if the sum of the triple is in the hash table.

if nums + nums[j] + nums[k] in sums:
# The triple sums to zero, so we have found a quadruplet.

quadruplets.append([nums, nums[j], nums[k], -(nums + nums[j] + nums[k])])

return quadruplets
```

## Time Complexity

The time complexity of the 4 Sum algorithm is O(n^3). This is because we need to iterate over all the possible combinations of four integers in the array, which is O(n^4). However, we can reduce the time complexity to O(n^2) by using a hash table to store the sums of all the possible pairs of integers in the array.

## Space Complexity

The space complexity of the 4 Sum algorithm is O(n^2). This is because we need to use a hash table to store the sums of all the possible pairs of integers in the array.

## Conclusion

The 4 Sum problem is a classic problem in computer science. It is a challenging problem because it involves finding all the possible combinations of four integers in an array. However, it can be solved efficiently using a hash table.
 
Đưa ra một mảng num của N số nguyên, trả về một câu trả lời mảng sao cho câu trả lời bằng tổng các phần tử của NUM từ INDEX I đến N - 1.

Ví dụ:

Đầu vào: nums = [1,2,3]
Đầu ra: [6]
 
Join ToolsKiemTrieuDoGroup
Back
Top
AdBlock Detected

We get it, advertisements are annoying!

Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

I've Disabled AdBlock