Giải pháp Leetcode Python pdf

LeetCode là một nền tảng cung cấp quyền truy cập vào hàng nghìn vấn đề lập trình và giúp người dùng nâng cao kỹ năng của họ cũng như chuẩn bị cho các cuộc phỏng vấn kỹ thuật thường là một phần của quy trình tuyển dụng cho các vị trí Kỹ thuật và Máy học

Trong phần hướng dẫn ngắn ngày hôm nay, chúng ta sẽ khám phá bài toán đầu tiên có tên là Hai Tổng và cố gắng giải nó theo cách tối ưu. Trong các cuộc phỏng vấn kỹ thuật, điều quan trọng không chỉ là tìm ra giải pháp cho một vấn đề cụ thể mà sự phức tạp về thời gian cũng là điều mà bạn thường được hỏi về

Bài toán hai tổng

Cho một mảng các số nguyên nums và một số nguyên target, trả về các chỉ số của hai số sao cho tổng của chúng bằng target

Bạn có thể cho rằng mỗi đầu vào sẽ có chính xác một giải pháp và bạn không thể sử dụng cùng một phần tử hai lần

Bạn có thể trả lời câu trả lời theo thứ tự bất kỳ

ví dụ 1

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].

ví dụ 2

Input: nums = [3,2,4], target = 6
Output: [1,2]

ví dụ 3

Input: nums = [3,3], target = 6
Output: [0,1]

Hạn chế

  • 2 <= nums.length <= 104
  • ________số 8
  • -109 <= target <= 109
  • Chỉ có một câu trả lời hợp lệ tồn tại

Nguồn. LeetCode

không phải như vậy. giải pháp tối ưu

Cách tiếp cận đơn giản nhất sẽ yêu cầu hai vòng lặp lồng nhau trong đó vòng lặp bên ngoài lặp qua tất cả các phần tử của danh sách và vòng lặp bên trong lặp lại từ chỉ mục hiện tại của vòng lặp bên ngoài cho đến cuối danh sách

from typing import Listclass Solution:    def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(i, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]

Độ phức tạp về thời gian của giải pháp trên là O(n²) khá. xấu

Giải bài toán trong O(n)

Vấn đề này sẽ được giải quyết hiệu quả hơn nếu bằng cách nào đó chúng ta có thể lặp lại danh sách các số chỉ một lần. Để làm như vậy, chúng ta có thể tận dụng một từ điển

Trong giải pháp bên dưới, trước tiên chúng tôi tạo một từ điển trống, nơi chúng tôi sẽ lưu trữ giá trị và chỉ mục của từng thành phần danh sách dưới dạng một cặp khóa tương ứng. Sau đó, chúng tôi lặp qua các chỉ số và giá trị của danh sách chứa các số của chúng tôi. Nếu sự khác biệt giữa giá trị đích và giá trị hiện tại trong danh sách đã được bao gồm dưới dạng khóa trong từ điển, thì điều đó có nghĩa là giá trị hiện tại và giá trị được lưu trữ trong từ điển là giải pháp cho vấn đề của chúng ta

Mặt khác, chúng tôi chỉ cần thêm giá trị và chỉ mục dưới dạng cặp khóa-giá trị trong từ điển của mình và tiếp tục lặp lại cho đến khi chúng tôi tìm thấy giải pháp mà mình đang tìm kiếm

from typing import Listclass Solution:    def twoSum(self, nums: List[int], target: int) -> List[int]:
values = {}
for idx, value in enumerate(nums):
if target - value in values:
return [values[target - value], idx]
else:
values[value] = idx

Trong giải pháp trên, chúng tôi lặp lại danh sách các số chỉ một và do đó độ phức tạp về thời gian của thuật toán là O(n), tốt hơn nhiều so với giải pháp đã triển khai trước đó

Suy nghĩ cuối cùng

Trong bài viết ngắn ngày hôm nay, chúng ta đã thảo luận về một số cách tiếp cận xung quanh bài toán Hai Tổng trong LeetCode. Ban đầu, chúng tôi đã tạo một giải pháp đơn giản dẫn đến hiệu suất kém, nhưng sau đó chúng tôi đã tận dụng các từ điển Python để triển khai một giải pháp với độ phức tạp về thời gian O(n)

Trở thành thành viên và đọc mọi câu chuyện trên Medium. Phí thành viên của bạn hỗ trợ trực tiếp cho tôi và các nhà văn khác mà bạn đọc. Bạn cũng sẽ có toàn quyền truy cập vào mọi câu chuyện trên Phương tiện

Bạn đã đăng ký. Chúng tôi sẽ đặt hàng trước các mặt hàng của bạn trong vòng 24 giờ kể từ khi chúng có sẵn. Khi sách mới được phát hành, chúng tôi sẽ tính phí theo phương thức thanh toán mặc định của bạn với mức giá thấp nhất có sẵn trong thời gian đặt hàng trước

Chào mừng LeetCode. Mình sẽ làm song song Codility và LeetCode

  • -------------1 đến 10-------------
  • hai tổng. giải pháp Python
  • Trung bình của hai mảng được sắp xếp. giải pháp Python
  • Chuỗi con dài nhất không có ký tự lặp lại. giải pháp Python
  • Cộng Hai Số. giải pháp Python
  • Chuỗi con Palindrome dài nhất. giải pháp Python
  • Chuyển đổi ZigZag. giải pháp Python
  • Số nguyên đảo ngược. giải pháp Python
  • Chuỗi sang số nguyên (atoi). giải pháp Python
  • Số đối xứng. giải pháp Python
  • Thùng chứa nhiều nước nhất. giải pháp Python
  • —————————————-11 đến 20————————————
  • Kết hợp biểu thức chính quy. giải pháp Python
  • Roman sang số nguyên. giải pháp Python
  • Số nguyên sang La mã. giải pháp Python
  • 3Sum. giải pháp Python
  • Tiền tố chung dài nhất. giải pháp Python
  • 3Sum gần nhất. giải pháp Python
  • Kết hợp chữ cái của một số điện thoại. giải pháp Python
  • 4Tổng. giải pháp Python
  • Xóa nút thứ N khỏi cuối danh sách. giải pháp Python
  • Dấu ngoặc đơn hợp lệ. giải pháp Python
  • —————————————-21 đến 30————————————
  • Tạo dấu ngoặc đơn. giải pháp Python
  • Hợp nhất k Danh sách được sắp xếp. giải pháp Python
  • Hoán đổi nút theo cặp. giải pháp Python
  • Các nút đảo ngược trong k-Group. giải pháp Python
  • Xóa phần tử. giải pháp Python
  • Xóa các bản sao khỏi mảng được sắp xếp. giải pháp Python
  • Chia Hai Số Nguyên. giải pháp Python
  • Triển khai strStr(). giải pháp Python
  • Chuỗi con nối tất cả các từ. giải pháp Python
  • Hoán vị tiếp theo. giải pháp Python
  • —————————————-31 đến 40————————————
  • Dấu ngoặc đơn hợp lệ dài nhất. giải pháp Python
  • Tìm kiếm một phạm vi. giải pháp Python
  • Tìm kiếm trong mảng được sắp xếp xoay. giải pháp Python
  • Sudoku hợp lệ. giải pháp Python
  • Tìm kiếm vị trí chèn. giải pháp Python
  • Sudoku Solver. giải pháp Python
  • Đếm và nói. giải pháp Python
  • Tổng kết hợp. giải pháp Python
  • Tổng kết hợp II. giải pháp Python
  • Lần đầu tiên thiếu tích cực. giải pháp Python
  • —————————————-41 đến 50————————————
  • bẫy nước mưa. giải pháp Python
  • nhân chuỗi. giải pháp Python
  • Kết hợp ký tự đại diện. giải pháp Python
  • hoán vị. giải pháp Python
  • Hoán vị II. giải pháp Python
  • Trò chơi nhảy II. giải pháp Python
  • Xoay hình ảnh. giải pháp Python
  • N-nữ hoàng. giải pháp Python
  • Pow(x, n). giải pháp Python
  • phép đảo ngữ. giải pháp Python
  • —————————————-51 đến 60————————————
  • N-Queens II. giải pháp Python
  • Phân đoạn tối đa. giải pháp Python
  • trò chơi nhảy. giải pháp Python
  • Ma trận xoắn ốc. giải pháp Python
  • Hợp nhất các khoảng thời gian. giải pháp Python
  • Xoay danh sách. giải pháp Python
  • Dãy hoán vị. giải pháp Python
  • Ma trận xoắn ốc II. giải pháp Python
  • Độ dài của từ cuối cùng. giải pháp Python
  • Chèn khoảng thời gian. giải pháp Python
  • —————————————-61 đến 70————————————
  • Tổng đường dẫn tối thiểu. giải pháp Python
  • Đường dẫn duy nhất. giải pháp Python
  • Con đường duy nhất II. giải pháp Python
  • Hợp nhất hai danh sách được sắp xếp. giải pháp Python
  • Cộng với một. giải pháp Python
  • Số hợp lệ. giải pháp Python
  • Thêm nhị phân. giải pháp Python
  • Đơn giản hóa đường dẫn. giải pháp Python
  • Leo cầu thang. giải pháp Python
  • bình phương(x). giải pháp Python
  • —————————————-71 đến 80————————————
  • Biện minh cho văn bản. giải pháp Python
  • Chỉnh sửa khoảng cách. giải pháp Python
  • Đặt Zeroes ma trận. giải pháp Python
  • Tìm kiếm Ma trận 2D. giải pháp Python
  • Sắp xếp màu sắc. giải pháp Python
  • Chuỗi con cửa sổ tối thiểu. giải pháp Python
  • Tìm từ. giải pháp Python
  • Tập hợp con. giải pháp Python
  • kết hợp. giải pháp Python
  • Tìm kiếm trong mảng được sắp xếp xoay vòng II. giải pháp Python
  • ————————————--81 đến 90————————————
  • Xóa các bản sao khỏi Mảng được sắp xếp II. giải pháp Python
  • Xóa các bản sao khỏi danh sách được sắp xếp. giải pháp Python
  • Loại bỏ các bản sao khỏi Danh sách đã sắp xếp II. giải pháp Python
  • Hình chữ nhật lớn nhất trong Biểu đồ. giải pháp Python
  • Hình chữ nhật tối đa. giải pháp Python
  • Chuỗi xáo trộn. giải pháp Python
  • Danh sách phân vùng. giải pháp Python
  • Mã xám. giải pháp Python
  • Hợp nhất mảng đã sắp xếp. giải pháp Python
  • tập con II. giải pháp Python
  • —————————————-91 đến 100———————————–
  • giải mã cách. giải pháp Python
  • Danh sách liên kết ngược II. giải pháp Python
  • Khôi phục địa chỉ IP. giải pháp Python
  • Cây tìm kiếm nhị phân duy nhất. giải pháp Python
  • Cây tìm kiếm nhị phân duy nhất II. giải pháp Python
  • Cây nhị phân Inorder Traversal. giải pháp Python
  • Chuỗi xen kẽ. giải pháp Python
  • Xác thực cây tìm kiếm nhị phân. giải pháp Python
  • Khôi phục cây tìm kiếm nhị phân. giải pháp Python
  • Cùng Cây. giải pháp Python. giải pháp Python
  • —————————————101 đến 110———————————–
  • Cây đối xứng. giải pháp Python
  • Cây nhị phân Cấp độ Zigzag Traversal. giải pháp Python
  • Trình duyệt thứ tự cấp độ cây nhị phân. giải pháp Python
  • Độ sâu tối đa của cây nhị phân. giải pháp Python
  • Xây dựng cây nhị phân từ Inorder và Postorder Traversal. giải pháp Python
  • Xây dựng cây nhị phân từ Preorder và Inorder Travers. giải pháp Python
  • Traversal thứ tự cấp độ cây nhị phân II. giải pháp Python
  • Chuyển đổi danh sách đã sắp xếp thành cây tìm kiếm nhị phân. giải pháp Python
  • Chuyển đổi mảng đã sắp xếp thành cây tìm kiếm nhị phân. giải pháp Python
  • Cây nhị phân cân bằng. giải pháp Python
  • —————————————111 đến 120———————————–
  • Độ sâu tối thiểu của cây nhị phân. giải pháp Python
  • Tổng đường dẫn. giải pháp Python
  • Đường dẫn tổng II. giải pháp Python
  • Làm phẳng cây nhị phân thành danh sách được liên kết. giải pháp Python
  • Dãy con riêng biệt*. giải pháp Python
  • Tam giác Pascal. giải pháp Python
  • Tam giác Pascal II. giải pháp Python
  • Điền vào các con trỏ bên phải tiếp theo trong mỗi nút. giải pháp Python
  • Điền vào các con trỏ bên phải tiếp theo trong mỗi nút II. giải pháp Python
  • Tam giác. giải pháp Python
  • —————————————121 đến 130———————————–
  • Thời điểm tốt nhất để mua và bán cổ phiếu. giải pháp Python
  • Thời điểm tốt nhất để mua và bán cổ phiếu II. giải pháp Python
  • Thời điểm tốt nhất để mua và bán cổ phiếu III. giải pháp Python
  • Cây nhị phân Tổng đường dẫn tối đa. giải pháp Python
  • Bảng chữ cái hợp lệ. giải pháp Python
  • thang từ. giải pháp Python
  • Thang chữ II. giải pháp Python
  • Chuỗi liên tiếp dài nhất. giải pháp Python
  • Tính tổng số gốc cho số lá. giải pháp Python
  • Khu vực xung quanh. giải pháp Python
  • —————————————131 đến 140———————————–
  • Phân vùng Palindrome. giải pháp Python
  • Phân vùng Palindrome II. giải pháp Python
  • Nhân bản đồ thị. giải pháp Python
  • Trạm xăng. giải pháp Python
  • Kẹo. giải pháp Python
  • Đơn số. giải pháp Python
  • Độc thân Số II. giải pháp Python
  • Sao chép danh sách với con trỏ ngẫu nhiên. giải pháp Python
  • Phá vỡ từ. giải pháp Python
  • Phá vỡ lời nói II. giải pháp Python
  • —————————————141 đến 150———————————–
  • Chu kỳ danh sách liên kết. giải pháp Python
  • Danh sách liên kết Chu kỳ II. giải pháp Python
  • Sắp xếp lại danh sách. giải pháp Python
  • Cây nhị phân Preorder Traversal. giải pháp Python
  • Cây nhị phân Postorder Traversal. giải pháp Python
  • Bộ nhớ đệm LRU. giải pháp Python
  • Danh sách sắp xếp chèn. giải pháp Python
  • Sắp xếp danh sách. giải pháp Python
  • Điểm tối đa trên một dòng. giải pháp Python
  • Đánh giá ký hiệu đánh bóng ngược. giải pháp Python
  • —————————————151 đến 160———————————–
  • Các từ đảo ngược trong một chuỗi. Giải pháp Python Giải pháp C++
  • Phân nhóm sản phẩm tối đa. giải pháp Python
  • Tìm giá trị nhỏ nhất trong mảng được sắp xếp xoay. giải pháp Python
  • Tìm giá trị nhỏ nhất trong mảng được sắp xếp xoay vòng II. giải pháp Python
  • ngăn xếp tối thiểu. giải pháp Python
  • Cây nhị phân lộn ngược. Không truy cập được
  • Đọc N ký tự đã cho Read4. Không truy cập được
  • Đọc N ký tự đã cho Read4 II – Gọi nhiều lần. Không truy cập được
  • Chuỗi con dài nhất có nhiều nhất hai ký tự riêng biệt. Không truy cập được
  • Giao điểm của hai danh sách liên kết. giải pháp Python
  • —————————————161 đến 170———————————–
  • Một khoảng cách chỉnh sửa. Không truy cập được
  • Tìm phần tử đỉnh. giải pháp Python
  • Thiếu phạm vi. Không truy cập được
  • Khoảng cách tối đa. giải pháp Python
  • So sánh số phiên bản. giải pháp Python
  • Phân số thành số thập phân tuần hoàn. giải pháp Python
  • Hai Tổng II – Mảng đầu vào được sắp xếp. Không truy cập được
  • Tiêu đề cột trang tính Excel. giải pháp Python
  • Yếu tố đa số. giải pháp Python
  • Hai tổng III – Thiết kế cấu trúc dữ liệu. Không truy cập được
  • —————————————171 đến 180———————————–
  • Số cột bảng Excel. giải pháp Python
  • Giai thừa Trailing Zeroes. giải pháp Python
  • Trình lặp cây tìm kiếm nhị phân. giải pháp Python
  • Trò chơi ngục tối. giải pháp Python
  • Số lớn nhất. giải pháp Python
  • —————————————181 đến 190———————————–
  • Đảo ngược từ trong chuỗi II. Không truy cập được
  • Trình tự DNA lặp đi lặp lại. giải pháp Python
  • Thời điểm tốt nhất để mua và bán cổ phiếu IV. giải pháp Python
  • Xoay Mảng. giải pháp Python
  • Bit đảo ngược. giải pháp Python
  • —————————————191 đến 200———————————–
  • Số 1 bit. giải pháp Python
  • Cướp nhà. giải pháp Python
  • Cây nhị phân Xem bên phải. giải pháp Python
  • Số đảo. giải pháp Python
  • —————————————201 đến 210———————————–
  • Bitwise AND của dãy số. giải pháp Python
  • số hạnh phúc. giải pháp Python
  • Loại bỏ các phần tử danh sách được liên kết. giải pháp Python
  • đếm số nguyên tố. giải pháp Python
  • chuỗi đẳng cấu. giải pháp Python
  • Danh sách liên kết ngược. giải pháp Python
  • Lịch học. giải pháp Python
  • Triển khai Trie (Cây tiền tố). giải pháp Python
  • Kích thước tối thiểu Tổng phân đoạn. giải pháp Python
  • Lịch trình khóa học II. giải pháp Python
  • —————————————211 đến 220———————————–

LeetCode có giải pháp bằng Python không?

Tuy nhiên, hầu hết thời gian người dùng gửi giải pháp python . Bạn có thể chọn ngôn ngữ python hoặc python3 từ trình đơn thả xuống trong trình chỉnh sửa Leetcode. Khó tìm câu hỏi có lời giải Python. Các giải pháp chính thức có thể không có giải pháp python.

Tôi có thể học Python trên LeetCode không?

Có rất nhiều lựa chọn có sẵn trên thị trường, phổ biến nhất ở đây trên LeetCode là - C++/Java theo sau là Python và sau đó là các ngôn ngữ khác theo sau. Hầu hết những người không phải CS đều bắt đầu với Python, vì đây là tùy chọn phổ biến nhất.

Tôi có thể tìm giải pháp LeetCode ở đâu?

Bạn có thể tìm thấy các phương pháp và giải pháp của người dùng khác tại tab "Thảo luận" .

Python có tốt nhất cho LeetCode không?

Python là đủ . Nhưng có thể cho rằng bạn nên sử dụng bất kỳ ngôn ngữ nào mà bạn sẽ sử dụng để phỏng vấn. Python được khuyến nghị vì viết nhanh hơn rất nhiều, điều này tốt cho các cuộc phỏng vấn trên bảng trắng, nhưng nếu bạn có thời gian hạn chế và chỉ biết Java/C++ thì hãy sử dụng ngôn ngữ mà bạn biết rõ nhất.