Python의 두 포인터 템플릿
4679 단어 pythonalgorithms
투 포인터 기법이란?
두 포인터 기술은 문제를 효율적으로 해결하기 위해 배열에서 두 개의 포인터를 사용하는 것입니다.
템플릿
3가지 일반적인 두 포인터 기술은 다음과 같습니다.
슬라이딩 윈도우
슬라이딩 윈도우는 하위 배열에서 무언가를 검색하는 데 사용할 수 있습니다.
def get_counter():
pass
def condition():
pass
def do_something_before():
pass
def do_something_after():
pass
def sliding_window(arr):
counter = get_counter()
# outer loop to move end index
while end < len(arr):
end += 1
# start index only increase when condition
while condition():
do_something_before()
start += 1
do_something_after()
두 끝에서 포인터
배열에서 조건을 만족하는 두 요소를 찾는 것으로 문제를 줄일 수 있을 때 두 끝의 포인터를 사용할 수 있습니다.
def condition_left():
pass
def condition_right():
pass
def do_something():
pass
def pointers_from_two_ends(arr):
left, right = 0, len(arr)-1
while left < right:
if condition_left():
left += 1
if condition_right():
right -= 1
do_something()
빠르고 느린 포인터
빠르고 느린 포인터를 사용하여 다음을 수행할 수 있습니다.
def condition_slow():
pass
def do_something():
pass
def fast_slow_pointers(arr):
slow = 0
for fast in range(len(arr)):
# only move slow pointer when condition
if condition_slow():
slow += 1
do_something()
Reference
이 문제에 관하여(Python의 두 포인터 템플릿), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alexhanbich/two-pointer-templates-in-python-349a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)