Chaque fois que vous créez une nouvelle création, vous devez d'abord rechercher l'ensemble qui chevauche l'ensemble actuellement créé, puis vérifier s'il existe deux ensembles qui se chevauchent. S'il y en a, il ne sera pas créé. garantit que le set ne sera pas créé dans le même set. Il y a trois annonces à ce moment
Lors de l'insertion, parcourez le tableau, déterminez si l'horodatage actuel est entre deux horodatages et enregistrez le nombre qui remplit cette condition. Si >= 3, aucune insertion n'est effectuée. Sinon, insérez-le dans le tableau de données.
Utilisez deux points dans le temps pour compter le nombre d'annonces efficaces au cours de cette période ! Vous ne pouvez pas créer plus de 3 éléments.
Problème de couverture des segments de ligne classiques. Je ne connais pas Java, donc je vais vous donner une idée O(n).
Trouver d'abord tous les intervalles qui croisent l'intervalle à vérifier, Trier par l'extrémité gauche de l'intervalle de petit à grand
Mémorisez le premier intervalle comme CurrentInternal
Pour CurrentInternal, examinez son élément suivant NextInterval : s'il ne croise pas CurrentInternal, enregistrez-le comme CurrentInternal et passez à 2, sinon, enregistrez son intervalle d'intersection comme Intersection.
Pour Intersection, parcourez les éléments après NextInterval : s'il n'y a aucun intervalle qui croise Intersection, alors enregistrez NextInterval comme CurrentInterval et passez à 2 ; sinon, cela signifie qu'il y a trois intervalles qui se croisent et quittez.
Si la liste entière est parcourue, cela prouve que l'intervalle à vérifier est légal.
Une DÉMO écrite en JS est incluse, j'espère que vous vous amuserez tous
Chaque fois que vous créez une nouvelle création, vous devez d'abord rechercher l'ensemble qui chevauche l'ensemble actuellement créé, puis vérifier s'il existe deux ensembles qui se chevauchent. S'il y en a, il ne sera pas créé. garantit que le set ne sera pas créé dans le même set. Il y a trois annonces à ce moment
.Écrivez simplement du SQL et c'est fait :
Si le résultat est inférieur à 3, créez-le.
Lors de l'insertion, parcourez le tableau, déterminez si l'horodatage actuel est entre deux horodatages et enregistrez le nombre qui remplit cette condition. Si >= 3, aucune insertion n'est effectuée. Sinon, insérez-le dans le tableau de données.
Utilisez deux points dans le temps pour compter le nombre d'annonces efficaces au cours de cette période !
Vous ne pouvez pas créer plus de 3 éléments.
Une façon stupide de connaître tout le temps qui chevauche la nouvelle annonce, puis de faire des statistiques par jour
J'ai essayé de l'écrire, vous pouvez vous y référer,
Problème de couverture des segments de ligne classiques. Je ne connais pas Java, donc je vais vous donner une idée O(n).
Trouver d'abord tous les intervalles qui croisent l'intervalle à vérifier, Trier par l'extrémité gauche de l'intervalle de petit à grand
Mémorisez le premier intervalle comme CurrentInternal
Pour CurrentInternal, examinez son élément suivant NextInterval : s'il ne croise pas CurrentInternal, enregistrez-le comme CurrentInternal et passez à 2, sinon, enregistrez son intervalle d'intersection comme Intersection.
Pour Intersection, parcourez les éléments après NextInterval : s'il n'y a aucun intervalle qui croise Intersection, alors enregistrez NextInterval comme CurrentInterval et passez à 2 ; sinon, cela signifie qu'il y a trois intervalles qui se croisent et quittez.
Si la liste entière est parcourue, cela prouve que l'intervalle à vérifier est légal.
Une DÉMO écrite en JS est incluse, j'espère que vous vous amuserez tous
https://jsfiddle.net/hsfzxjy/7td0rwr2/28/