Skip to content

Files

Latest commit

author
DennyZhang
Sep 13, 2019
04ea84d · Sep 13, 2019

History

History
This branch is 1 commit ahead of, 45 commits behind dennyzhang/code.dennyzhang.com:master.

review-twopointer

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Aug 28, 2019
Aug 28, 2019
Aug 28, 2019
Aug 28, 2019
Sep 13, 2019

Review: TwoPointers Problems


Two pointers problems


Basic Abstractions

NameSummary
two pointers - left/right
two pointers - left/right

https://raw.githubusercontent.com/dennyzhang/code.dennyzhang.com/master/review/review-twopointer/1.png

https://raw.githubusercontent.com/dennyzhang/code.dennyzhang.com/master/review/review-twopointer/2.png

https://raw.githubusercontent.com/dennyzhang/code.dennyzhang.com/master/review/review-twopointer/3.png

https://raw.githubusercontent.com/dennyzhang/code.dennyzhang.com/master/review/review-twopointer/4.png

Scenarios Code Skeleton Questions

NameExample

Key Points:

## Blog link: https://code.dennyzhang.com/strobogrammatic-number
maps = [('0', '0'), ('1', '1'), ('8', '8'), ('6', '9'), ('9', '6')]
left, right = 0, len(num)-1
while left<=right:
    if (num[left], num[right]) not in maps: return False
    left, right = left+1, right-1
return True
## Blog link: https://code.dennyzhang.com/minimum-window-substring
left, right = 0, 0
for right in range(0, len1):
    m1[s[right]] += 1
    if self.isTooSmall(m1, m2): continue
    # find a match, then check whether window too big
    while m1[s[left]] > m2[s[left]]:
        m1[s[left]] -= 1
        left += 1
    # find a candidate
    if min_len > right-left+1:
        min_len, res = right-left+1, s[left:right+1]
return res

Sliding window:

  • Whether left and right are included?

See all twopointer problems: #twopointer [display-posts tag=”twopointer” posts_per_page=”100” orderby=”title”]

See more blog_posts.

linkedin
github
slack