8.8 - medium 요약 31
646. Maximum Length of Pair Chain: LIS와 유사한 dp, 1차원 dp는 비교적 간단하다 647.Palindromic Substrings: 각 값에 대해 중간에서 양쪽으로 확장하면 됩니다. 648.Replace Words: Trie 하나로 649.Dota2 Senate: 게임을 하는 문제는 모두 먼저 기억화 검색을 해 보세요. 이 문제는 안 될 것 같아요. 경기를 할 때 기본적인 생각은 알아요. 항상 자기가 가장 뒤에 있는 첫 번째 상대방의 선수를 떨어뜨리지만 Recursion을 사용할 때 TLE를 떨어뜨리는 거예요.이런 순환 비교 문제는 deque로 표시하는 것을 기억해라. 당시에는 index로 표시하였는데, 그야말로 죽을 지경이었다.We have people = [int, int] representing how many people are in the queue, and bans = [int, int] representing how many "floating"bans there are. When we meet a person, if there is a floating ban waiting for them, then they are banned and we skip them. Eventually, the queue will just have one type of person, which is when we break.
class Solution(object):
def predictPartyVictory(self, senate):
"""
:type senate: str
:rtype: str
"""
A = collections.deque()
people = [0, 0]
bans = [0, 0]
for person in senate:
x = person == 'R'
people[x] += 1
A.append(x) # A is a list of 0 1
while all(people): #
x = A.popleft()
people[x] -= 1
if bans[x]:
bans[x] -= 1
else:
bans[x^1] += 1
A.append(x)
people[x] += 1
return "Radiant" if people[1] else "Dire"
650.2 Keys Keyboard: dp 문제, dp[i]=min(dp[i], dp[j]+(i/j-1)+1)는 현재 작업에 대해 i/j-1은 몇 개의 j를 더 넣어야 하는지를 나타낸다. 예를 들어 j=2 i=6이면 6/2-1 = 2 두 번의 paste가 필요하고 한 번의 copy 651.4 Keys Keyboard: 생각은 매우 간단하다. 바로 모든 값에 대해 가능한 형성 방식은 dp[i]=dp[b]*(i-b-1)이다. 즉, dp[b]가 형성된 후에 i까지 ctr-v를 눌러야 한다.특수한 상황은 앞의 여섯 개의 값이니 제거하면 된다. 사실 이것은 계단을 오르는 것과 매우 유사하다.652. Find Duplicate Subtrees: 이 문제는 경연 대회에서도 풀지 못했습니다. 사실divide and conquer의 과정에서 모든 node에 대해hash를 업데이트하고 이hash는subtree의 정보를 포함해야 합니다. 654.Maximum Binary Tree: 전형적인divide and conquer의 제목, 경연에서 나온 것은 여기서 하지 않습니다.655. Print Binary Tree: 이 문제도 경연에서 나온 문제인데 먼저 공간을 낸 다음에 preorder로 채워주세요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.