рдПрд▓реНрдЧреЛрд░рд┐рдердо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди: рд╣реЛрдЯрд▓ рдмреБрдХ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛

рдЖрд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо" рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рдпрд╣ рдЖрд▓реЗрдЦ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрд╕рд╛рдзрди рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рддрд░реНрдХ рдХреА рдореБрдЦреНрдп рдкрдВрдХреНрддрд┐ рдХрд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЬреЛ рдПрдХ рдкреНрд░рднрд╛рд╡реА рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдмрд╣реБрдд рдЖрдо рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рд▓рдХреНрд╖реНрдп рдЦрд░реЛрдВрдЪ рд╕реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд╛рдареНрдпрдХреНрд░рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИред



рдХрд╛рд░реНрдп



рд╣реЛрдЯрд▓ рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдЕрдЧрд▓реЗ рд╕реАрдЬрд╝рди рдХреЗ рд▓рд┐рдП рдПрди рдЖрд░рдХреНрд╖рдг рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрдирдХреЗ рд╣реЛрдЯрд▓ рдореЗрдВ K рдХрдорд░реЗ рд╣реИрдВред рдмреБрдХрд┐рдВрдЧ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдЪреЗрдХ-рдЗрди рдХреА рддрд╛рд░реАрдЦ рдФрд░ рдЪреЗрдХ-рдЖрдЙрдЯ рдХреА рддрд╛рд░реАрдЦ рд╣реЛрддреА рд╣реИред рдкреНрд░рдмрдВрдзрдХ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдорд╛рдВрдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЯрд▓ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдХрдорд░реЗ рд╣реИрдВред

рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛:

- рдЖрдЧрдорди рдХреЗ рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛
- рджреВрд╕рд░рд╛ - рдкреНрд░рд╕реНрдерд╛рди рдХреЗ рд╕рдордп рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА
- рддреАрд╕рд░рд╛ - рдХреЗ, рдХрдорд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд

рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛:
- рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдореВрд▓реНрдп рдЬреЛ рдХрдорд░реЗ рдмреБрдХ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
рдЭреВрда рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣реЛрдЯрд▓ рдореЗрдВ рдПрди рдмреБрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ
рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рд╣реЛрдЯрд▓ рдореЗрдВ рдПрди рдмреБрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдХрдорд░реЗ рд╣реИрдВ

рдПрдХ рдЙрджрд╛рд╣рд░рдг:

рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛:
- рдЪреЗрдХ-рдЗрди = [1, 3, 5]
- рдкреНрд░рд╕реНрдерд╛рди = [реи, рем, резреж]
- рдХреЗ = рез

рдЖрдЙрдЯрдкреБрдЯ: рдЭреВрдард╛ред рджрд┐рди = 5 рдкрд░ рд╣реЛрдЯрд▓ рдореЗрдВ 2 рдореЗрд╣рдорд╛рди рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИред



рдирд┐рд░реНрдгрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛


рдпрд╣ рдХрд╛рд░реНрдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВред рдЖрдЗрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред

рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рджрд┐рди рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИ
рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рджрд┐рди рдХреЗ рд▓рд┐рдП рдСрд░реНрдбрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рд╣реЛ рд╕рдХрддреА рд╣реИ (рдкреНрд░рд╕реНрдерд╛рди рдХреЗ рдЕрдзрд┐рдХрддрдо рджрд┐рди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд)ред
рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛:
- рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ = [1, 3, 5]
- рдкреНрд░рд╕реНрдерд╛рди = [реи, рем, резреж]
- рдХреЗ = рез

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░рдгреА рдХрд╛ рдЖрдХрд╛рд░ 10 рд╣реЛрдЧрд╛ (рдХреНрдпреЛрдВрдХрд┐ 10 рд╡реЗрдВ рджрд┐рди рдЕрдВрддрд┐рдо рдирд┐рдХрд╛рд╕)ред рдЗрд╕ рд╕рд░рдгреА рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реА рджрд┐рди рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдмрдврд╝рд╛рддреЗ рдпрд╛ рдШрдЯрд╛рддреЗ рд╣реИрдВред рдЫрджреНрдо рдХреЛрдб рдЙрджрд╛рд╣рд░рдг:

int[] counts = new int[maxDepartures(departures)] for each arr in arrivals { counts[arr]++ } for each dep in departures { counts[dep]-- } 

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрди рд╕рд░рдгреА рдорд┐рд▓рддреА рд╣реИ:

: 1 0 1 1 2 1 1 1 1 0
: 1 2 3 4 5 6 7 8 9 10


рд╕рд░рдгреА рднрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдЬрд╛рдВрдЪ рд▓реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рднреА рддрддреНрд╡ k (рдХрдорд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛) рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИрдВред

рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХрдорд░реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 1. рдереА 5 рджрд┐рди рдХреЗ рдмрд╛рдж рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 рдЖрд░рдХреНрд╖рдг рд╣реИрдВ, рд╣рдо false ред

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреА рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ O (n) рд╣реИ, рдЬрд╣рд╛рдБ n рдЖрд░рдХреНрд╖рдг рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдФрд░ рд╕реНрдерд╛рдирд┐рдХ O (m) рд╣реИ, рдЬрд╣рд╛рдБ m рдЕрдзрд┐рдХрддрдо рдкреНрд░рд╕реНрдерд╛рди рджрд┐рд╡рд╕ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрдбрд╝реЗ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛:
- рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ = [1, 3, 5]
- рдкреНрд░рд╕реНрдерд╛рди = [реи, резрежрежрежреж, резреж]
- рдХреЗ = рез

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, 10 рд╣рдЬрд╛рд░ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рдПрдЧреАред

рдЖрдЗрдП рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред

рдШрдЯрдирд╛ рд╕рдВрдЧреНрд░рд╣ рд╕рдВрдЧреНрд░рд╣рдг


рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВ? рдЖрдЗрдП рдлрд┐рд░ рд╕реЗ рджреЗрдЦреЗрдВ рдХрд┐ рдкрд┐рдЫрд▓реА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реБрдЖ рдерд╛:

: 1 0 1 1 2 1 1 1 1 0
: 1 2 3 4 5 6 7 8 9 10


рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 6 рдФрд░ 9 рджрд┐рдиреЛрдВ рдХреЗ рдмреАрдЪ рдмреБрдХрд┐рдВрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЪрд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВ:
рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛:
- рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ = [1, 3, 5]
- рдкреНрд░рд╕реНрдерд╛рди = [реи, рем, резреж]
рджрд┐рди 1: +1 рдмреБрдХрд┐рдВрдЧ
рджрд┐рди 2: -1 рдмреБрдХрд┐рдВрдЧ
рджрд┐рди 3: +1 рдмреБрдХрд┐рдВрдЧ
рджрд┐рди 6: -1 рдмреБрдХрд┐рдВрдЧ
рджрд┐рди 5: +1 рдмреБрдХрд┐рдВрдЧ
рджрд┐рди 10: -1 рдмреБрдХрд┐рдВрдЧ

рд╕рдорд╛рдзрд╛рди рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝рд╛рдиреЗ рдпрд╛ рдШрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдХрд╛рдЙрдВрдЯрд░ k рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рд╣рдо false рд▓реМрдЯрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рд╕рдВрд░рдЪрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ? рдЪрд▓реЛ рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ:

  • рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдРрд╕рд╛ рджрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ
  • рдПрдХ рдирдпрд╛ рджрд┐рди рдЬреЛрдбрд╝рдирд╛,
  • рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рдВрдЯреЗ рдЧрдП рджрд┐рди рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦреЗрдВред

рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдЯреНрд░реА (BST) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 class Node { int day int count Node left Node right } 

day рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЫрдВрдЯрд╛рдИ рдХреА рдЬрд╛рдПрдЧреАред

рдЖрдЗрдП рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦреЗрдВ:

  • рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдРрд╕рд╛ рджрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ: рдУ (рд▓реЙрдЧ (рдПрди)) рдФрд╕рдд рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдУ (рдПрди),
  • рдПрдХ рдирдпрд╛ рджрд┐рди рдЬреЛрдбрд╝рдирд╛: рдУ (рд▓реЙрдЧ (рдПрди)) рдФрд╕рдд рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдУ (рдПрди),
  • рдкреНрд░рддреНрдпреЗрдХ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рджрд┐рди рд╕реЗ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦреЗрдВ: O (n) рдПрдХ рдЧрд╣рди рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред

рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреЗрдбрд╝ рдореЗрдВ рдбрд╛рд▓рдирд╛ рд╣реИ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдФрд╕рдд рдорд╛рдорд▓реЗ рдореЗрдВ рдУ (рдПрди рд▓реЙрдЧ (рдПрди)) рд╣реИ, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдУ (рдПрди)ред

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рд╣реИ:

  • рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдРрд╕рд╛ рджрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ: рдУ (1) рдФрд╕рдд рдорд╛рдорд▓реЗ рдореЗрдВ, рдУ (рдПрди) рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ (рд╕рдВрднрд╛рд╡рдирд╛ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рдХреА рдХреНрд╖рдорддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ),
  • рдПрдХ рдирдпрд╛ рджрд┐рди рдЬреЛрдбрд╝рдирд╛: рдУ (1) рдФрд╕рдд рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдУ (рдПрди),
  • рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рдВрдЯреЗ рдЧрдП рджрд┐рди рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦреЗрдВ: рдЫрдБрдЯрд╛рдИ рдХреЗ рд▓рд┐рдП O (n рд▓реЙрдЧ (n)) рдФрд░ рдЫрдБрдЯрд╛рдИ рдХреЗ рд▓рд┐рдП O (n)ред

рдЕрдВрдд рдореЗрдВ, рдордзреНрдпрдо рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдУ (рдПрди рд▓реЙрдЧ (рдПрди)) рд╣реИ (рд╕реЙрд░реНрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рдХрд╛рд░рдг), рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдУ (рдПрди)ред рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд╡реГрдХреНрд╖-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рдорд╛рди рдЬрдЯрд┐рд▓рддрд╛ рд╣реИред

рдЖрдЗрдП рдПрдХ рдХреНрд░рдордмрджреНрдз рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦреЗрдВ:

 public boolean hotel(ArrayList<Integer> arrivals, ArrayList<Integer> departures, int k) { //   Map<Integer, Integer> events = new HashMap<>(); //   int n = arrivals.size(); for (int i = 0; i < n; i++) { int arrival = arrivals.get(i); int departure = departures.get(i); //      Integer current = events.get(arrival); events.put(arrival, current == null ? 1 : current + 1); //      current = events.get(departure); events.put(departure, current == null ? -1 : current - 1); } //    Map<Integer, Integer> sortedEvents = new TreeMap<>(events); int count = 0; for (Map.Entry<Integer, Integer> entry : sortedEvents.entrySet()) { count += entry.getValue(); //  count     if (count > k) { return false; } } return true; } 

рд▓рдЧрд╛рддрд╛рд░ рд╕реНрдерд╛рдирд┐рдХ рдЬрдЯрд┐рд▓рддрд╛


рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрди рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ? рдХреНрдпрд╛ рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрдЧреНрд░рд╣ рдбреЗрдЯрд╛ (рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдФрд░ рдирд┐рдХрд╛рд╕) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрд░рдХреНрд╖рдг рдХреА рд╕реАрдорд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдПрдХ рд╕рдорд╛рдзрд╛рди рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдЫрдВрдЯрд╛рдИ рдХрд░рдХреЗ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рджреЛрдиреЛрдВ рд╕рдВрдЧреНрд░рд╣реЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдмрд╕ рджреЛ рдмрд┐рдВрджреБрдУрдВ (рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдирд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдордХреНрдЦреА рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рджреМрд░рд╛рди рд╣рдореЗрдВ рдЕрднреА рднреА arrivals.get(indexArrival) departures.get(indexDeparture) рдмреАрдЪ рдиреНрдпреВрдирддрдо рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред arrivals.get(indexArrival) departures.get(indexDeparture) рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕реВрдЪрдХ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдирд┐рд░рдВрддрд░ рдЕрд╕реНрдерд╛рдпреА рдФрд░ рд╕реНрдерд╛рдирд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдУ (рдПрди рд▓реЙрдЧ (рдПрди)) рдЫрдБрдЯрд╛рдИ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИред

Source: https://habr.com/ru/post/hi470676/


All Articles