투 포인터 기법
5516 단어 javaleetcodealgorithms
배열/문자열: 각각 시작과 끝에서 시작하여 둘 다 만날 때까지 두 개의 포인터.
예제 문제:
class Solution {
public int[] twoSum(int[] numbers, int target) {
// use two pointer technique because the input is sorted.
int start = 0;
int end = numbers.length - 1;
int [] result = new int [2];
while (start < end){
int sum = numbers[start] + numbers[end];
if (sum == target){
result[0] = start + 1;
result[1] = end + 1;
break;
}
if (sum < target){
start++;
} else {
end--;
}
}
return result;
}
}
연결된 목록: 하나의 포인터는 느린 속도로 이동하고 다른 포인터는 두 배의 속도로 이동합니다.
예제 문제:
public class Solution {
public boolean hasCycle(ListNode head) {
if(head == null){
return false;
}
ListNode slow = head;
ListNode fast = head;
while(fast != null && fast.next != null){
slow = slow.next;
fast = fast.next.next;
if(slow == fast){
return true;
}
}
return false;
}
}
Reference
이 문제에 관하여(투 포인터 기법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tammyvocs/two-pointer-technique-39no텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)