Size: a a a

2020 June 19

L

Lupusregina[beta] in pro.js
это реф версия
источник

L

Lupusregina[beta] in pro.js
Lupusregina[beta]
function binarySimulation(s, q) {
 const array = s.split("").map(Number)
 const result = []

 const map = {
   I(start, end) {
     for(let i = start - 1; i < end; i++)
       array[i] ^= 1
   },
   Q(index) {
     result.push(array[index - 1] + "")
   }
 }
 
 for(const [mode, ...args] of q)
   map[mode](...args)
 
 return result
}
он примерно в 50 раз медленее кода с битами, и в 5 раз быстрее твоего варианта
источник

L

Lupusregina[beta] in pro.js
это получается 1гб данных?
источник

DE

Denis Efremov in pro.js
Да
источник

L

Lupusregina[beta] in pro.js
в localStorage врятли влезет
источник

L

Lupusregina[beta] in pro.js
в индексдб можно легко сделать
источник

DE

Denis Efremov in pro.js
indexedDB
источник

DE

Denis Efremov in pro.js
Lupusregina[beta]
в localStorage врятли влезет
В локалку только для расширения можно
источник

L

Lupusregina[beta] in pro.js
только поиск как прикрутить
источник

DE

Denis Efremov in pro.js
Проиндексировать. Мапу создать можна
источник

DE

Denis Efremov in pro.js
Ты мне массив сделай, мапа это хуйня
источник

L

Lupusregina[beta] in pro.js
Denis Efremov
Проиндексировать. Мапу создать можна
источник

L

Lupusregina[beta] in pro.js
так что задача вроде решаема(
источник

L

Lupusregina[beta] in pro.js
Denis Efremov
Ты мне массив сделай, мапа это хуйня
?
источник

L

Lupusregina[beta] in pro.js
хотя раз они тут про сложность спрашивают, наверное нужен кастомное решение.
источник

DE

Denis Efremov in pro.js
Object.defineProperties(Array.prototype, {
 binarySearch: {
   value: function (target, l = 0, comparator = (a, b) => a < b ? -1 : a > b ? 1 : 0) {
     var h = this.length - 1, m, comparison

     while (l <= h) {
       m = (l + h) >>> 1
       comparison = comparator(this[m], target)
       if (comparison < 0) {
         l = m + 1
       } else if (comparison > 0) {
         h = m - 1
       } else {
         return m
       }
     }
     return ~l
   },
 },
 binaryInsert: {
   value: function (target, duplicate, comparator) {
     var i = this.binarySearch(target, comparator)
     if (i >= 0) {
       if (!duplicate) {
         return i
       }
     } else {
       i = ~i
     }
     this.splice(i, 0, target)
     return i
   },
 },
})


Это прочекай плиз. Правильно?
источник

А

Аркаша Одесский 🇪🇪... in pro.js
за что...
источник

А

Аркаша Одесский 🇪🇪... in pro.js
надо было спать сразу идти(
источник

L

Lupusregina[beta] in pro.js
Denis Efremov
Object.defineProperties(Array.prototype, {
 binarySearch: {
   value: function (target, l = 0, comparator = (a, b) => a < b ? -1 : a > b ? 1 : 0) {
     var h = this.length - 1, m, comparison

     while (l <= h) {
       m = (l + h) >>> 1
       comparison = comparator(this[m], target)
       if (comparison < 0) {
         l = m + 1
       } else if (comparison > 0) {
         h = m - 1
       } else {
         return m
       }
     }
     return ~l
   },
 },
 binaryInsert: {
   value: function (target, duplicate, comparator) {
     var i = this.binarySearch(target, comparator)
     if (i >= 0) {
       if (!duplicate) {
         return i
       }
     } else {
       i = ~i
     }
     this.splice(i, 0, target)
     return i
   },
 },
})


Это прочекай плиз. Правильно?
вроде правильно
источник

L

Lupusregina[beta] in pro.js
это тебе для решения этой задачи?
источник