In der Benutzeroberfläche unserer VLSI-Anwendungen müssen manchmal einige Einträge in einer bestimmten Liste "gruppiert" werden (z. B. Servicemeldungen im Chat, Kontakte und Telefonanrufe).
Es ist gut, wenn alle diese Datensätze aus einer Quelle stammen, aber wenn sie von verschiedenen Diensten stammen und mit der Cursornavigation der Implementierungsalgorithmus sehr nicht trivial wird.
Ich werde die Implementierung hier absichtlich nicht "im Code" angeben, sondern einen ausschließlich algorithmischen Ansatz für die Lösung beschreiben, damit Sie sie bei Bedarf selbst auf Ihre Aufgaben skalieren können. So...
Formulierung des Problems
Wir haben zwei Dienste. Es könnte mehr sein, aber wenn Sie dem vorherigen Bild folgen, lassen Sie uns der Klarheit halber Anrufe- und Kontaktdienste sein .
Vielen Dank an die Kollegen von CRM für eine interessante Aufgabe. In der Zwischenzeit besteht kein Grund zur Sorge. “
, "" .
"" - , - , .
, , , , :
#1: " "
, -, - , . - .
" " , . "", ?
#2: " "
, ?.. (20 ) , "" , - .
, ( ) "" - ? , .
, ( ), . , "".
#1: " "
, , - - ( 20), - .
, - (merge ordered) (limit) "" .
, , "" 15 20 . 5 , " " - .
#3: "One Ring to rule them all"
? , - , . - , .
, " - , " - , .
#4: " server-side"
- , . , , .
stateless server-side , , - . , :
---
, ""
--
#2: " client-side"
, -, ?.. .
, " " (, , localStorage), .
- :
20 20
"" 5
5 "" + 15
5
20 - ? ! ( 20, "" )
" ", 25 20
Edge Cases
, - "" " ", "" .
, , : ", , , , !"