FeelYourDestiny #3043 17 мая 2019 Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение. Поделиться сообщением Ссылка на сообщение
krasavec #3044 17 мая 2019 Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение.я совсем не из вашей сферы, гуманитарий вобщем.уточни пожалуйста, что такое неуникальные данные?по моей логике если эн больше тысячи то хотябы два данных точно будут совпадать. Поделиться сообщением Ссылка на сообщение
Rooster #3045 17 мая 2019 Там кавер Тютчева был а ты со своими данными сука Поделиться сообщением Ссылка на сообщение
FeelYourDestiny #3046 17 мая 2019 Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение.я совсем не из вашей сферы, гуманитарий вобщем.уточни пожалуйста, что такое неуникальные данные?по моей логике если эн больше тысячи то хотябы два данных точно будут совпадать. я не дописал "рандомные значения от 0 до 1000".и массив отсартирован уже Поделиться сообщением Ссылка на сообщение
krasavec #3047 17 мая 2019 Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение.я совсем не из вашей сферы, гуманитарий вобщем.уточни пожалуйста, что такое неуникальные данные?по моей логике если эн больше тысячи то хотябы два данных точно будут совпадать. я не дописал "рандомные значения от 0 до 1000".и массив отсартирован уже очень тяжело понимать технических ребят конечно.мое сообщение было про то что если эн больше тысячи, то там не могут быть уникальные значения.а про твои цикклымне кажется можно первое вхождение числа икс искать слева, если твои числа отсортированы, а потом справа, и вот типа это и есть интервал. Поделиться сообщением Ссылка на сообщение
Rooster #3048 17 мая 2019 (изменено) Делишь на две части, если выбранный элемент меньше числа то возвращаешь функцию от большей половины, если равен то функцию от большей + от меньшей + 1, если больше, то функцию от меньшей половины Изменено 17 мая 2019 пользователем Rooster агентспециальногоназначения понравилось это Поделиться сообщением Ссылка на сообщение
Nutcase #3049 17 мая 2019 (изменено) Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение.Я не прям умный, так что хз стоит ли всерьез воспринимать написанное, но: 1) ты находишь с помощью бинарного поиска четверку2) теперь ты начинаешь влево и вправо от найденного числа таким же бинарным поиском искать четверку, граничащую с не четверкой upd: нашел эту задачу на литкоде https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/ Изменено 17 мая 2019 пользователем Nutcase Поделиться сообщением Ссылка на сообщение
FeelYourDestiny #3050 17 мая 2019 (изменено) Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение.я совсем не из вашей сферы, гуманитарий вобщем.уточни пожалуйста, что такое неуникальные данные?по моей логике если эн больше тысячи то хотябы два данных точно будут совпадать. я не дописал "рандомные значения от 0 до 1000".и массив отсартирован уже очень тяжело понимать технических ребят конечно.мое сообщение было про то что если эн больше тысячи, то там не могут быть уникальные значения.а про твои цикклымне кажется можно первое вхождение числа икс искать слева, если твои числа отсортированы, а потом справа, и вот типа это и есть интервал. ну сори, я подумал что ты рофлишь. Да не могут быть в таком случае. Но суть задачи не в этом, поэтому я особо внимание не предовал тому что бы описать все варианты. Вся суть в подсчете вхождений байнари серчем в остартированном массиве с неуникальными данными. Скок там значение и в каком диапазоне не важно. Твой вариант не подходит потому, что мне нужен именно байнари серч (binary search), а то что ты написал это не он.И твой вариант не подходит, потому что он будет выполнять очень много операций. p.s. че ты тут вообще забыл, если ты гуманитарий?))) Изменено 17 мая 2019 пользователем FeelYourDestiny Поделиться сообщением Ссылка на сообщение
krasavec #3051 17 мая 2019 (изменено) Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение.я совсем не из вашей сферы, гуманитарий вобщем.уточни пожалуйста, что такое неуникальные данные?по моей логике если эн больше тысячи то хотябы два данных точно будут совпадать. я не дописал "рандомные значения от 0 до 1000".и массив отсартирован уже очень тяжело понимать технических ребят конечно.мое сообщение было про то что если эн больше тысячи, то там не могут быть уникальные значения.а про твои цикклымне кажется можно первое вхождение числа икс искать слева, если твои числа отсортированы, а потом справа, и вот типа это и есть интервал. ну сори, я подумал что ты рофлишь. Да не могут быть в таком случае. Но суть задачи не в этом, поэтому я особо внимание не предовал тому что бы описать все варианты. Вся суть в подсчете вхождений байнари серчем в остартированном массиве с неуникальными данными. Скок там значение и в каком диапазоне не важно. Твой вариант не подходит потому, что мне нужен именно байнари серч (binary search), а то что ты написал это не он.И твой вариант, потому что он будет выполнять очень много операций. p.s. че ты тут вообще забыл, если ты гуманитарий?))) ответ на ps - не знаю, я работаю в компании связанной с айти и мне всё это интересно.я прям совсем немного почитал про твой бинарный поиск, и у меня сложилось впечатление что он предназнечен для поиска первого вхождения числа в набор чисел.ну, это, собственно, и есть суть слова поиск.а ты говоришь что тебе надо найти интервал.для меня логично что тут будет два поиска.вот я и подумал что тебе надо найти начало интервала слева и справа в твоем упорядоченном массиве. а в твоем исходном сообщении ты уже не только бинарный поиск используешь но и какой-то форыч Изменено 17 мая 2019 пользователем krasavec Поделиться сообщением Ссылка на сообщение
FeelYourDestiny #3052 17 мая 2019 (изменено) Кто такой этот форыч? узнали?? согласны??? Изменено 17 мая 2019 пользователем FeelYourDestiny Поделиться сообщением Ссылка на сообщение
JuJeu #3053 17 мая 2019 (изменено) Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение.я совсем не из вашей сферы, гуманитарий вобщем.уточни пожалуйста, что такое неуникальные данные?по моей логике если эн больше тысячи то хотябы два данных точно будут совпадать. я не дописал "рандомные значения от 0 до 1000".и массив отсартирован уже очень тяжело понимать технических ребят конечно.мое сообщение было про то что если эн больше тысячи, то там не могут быть уникальные значения.а про твои цикклымне кажется можно первое вхождение числа икс искать слева, если твои числа отсортированы, а потом справа, и вот типа это и есть интервал. ну сори, я подумал что ты рофлишь. Да не могут быть в таком случае. Но суть задачи не в этом, поэтому я особо внимание не предовал тому что бы описать все варианты. Вся суть в подсчете вхождений байнари серчем в остартированном массиве с неуникальными данными. Скок там значение и в каком диапазоне не важно. Твой вариант не подходит потому, что мне нужен именно байнари серч (binary search), а то что ты написал это не он.И твой вариант, потому что он будет выполнять очень много операций. p.s. че ты тут вообще забыл, если ты гуманитарий?))) ответ на ps - не знаю, я работаю в компании связанной с айти и мне всё это интересно.я прям совсем немного почитал про твой бинарный поиск, и у меня сложилось впечатление что он предназнечен для поиска первого вхождения числа в набор чисел.ну, это, собственно, и есть суть слова поиск.а ты говоришь что тебе надо найти интервал.для меня логично что тут будет два поиска.вот я и подумал что тебе надо найти начало интервала слева и справа в твоем упорядоченном массиве. а в твоем исходном сообщении ты уже не только бинарный поиск используешь но и какой-то форыч ты плохои читаешь видимо, нужен не интервал, а дубликаты.форыч ака итератыч. ответыч:https://stackoverflow.com/questions/13197552/using-binary-search-with-sorted-array-with-duplicates Изменено 17 мая 2019 пользователем JuJeu FeelYourDestiny понравилось это Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders. Поделиться сообщением Ссылка на сообщение
krasavec #3054 17 мая 2019 ну ладно, убедили. Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение.я совсем не из вашей сферы, гуманитарий вобщем.уточни пожалуйста, что такое неуникальные данные?по моей логике если эн больше тысячи то хотябы два данных точно будут совпадать. я не дописал "рандомные значения от 0 до 1000".и массив отсартирован уже очень тяжело понимать технических ребят конечно.мое сообщение было про то что если эн больше тысячи, то там не могут быть уникальные значения.а про твои цикклымне кажется можно первое вхождение числа икс искать слева, если твои числа отсортированы, а потом справа, и вот типа это и есть интервал. ну сори, я подумал что ты рофлишь. Да не могут быть в таком случае. Но суть задачи не в этом, поэтому я особо внимание не предовал тому что бы описать все варианты. Вся суть в подсчете вхождений байнари серчем в остартированном массиве с неуникальными данными. Скок там значение и в каком диапазоне не важно. Твой вариант не подходит потому, что мне нужен именно байнари серч (binary search), а то что ты написал это не он.И твой вариант, потому что он будет выполнять очень много операций. p.s. че ты тут вообще забыл, если ты гуманитарий?))) ответ на ps - не знаю, я работаю в компании связанной с айти и мне всё это интересно.я прям совсем немного почитал про твой бинарный поиск, и у меня сложилось впечатление что он предназнечен для поиска первого вхождения числа в набор чисел.ну, это, собственно, и есть суть слова поиск.а ты говоришь что тебе надо найти интервал.для меня логично что тут будет два поиска.вот я и подумал что тебе надо найти начало интервала слева и справа в твоем упорядоченном массиве. а в твоем исходном сообщении ты уже не только бинарный поиск используешь но и какой-то форыч ты плохои читаешь видимо, нужен не интервал, а дубликаты.форыч ака итератыч. ну ладно, убедили.я не уловил суть и решал не в правильную сторону.видимо поэтому я и не смог стать программистом ( в школе рисовал прямоугольники на логарайтере [черепашка] ) Поделиться сообщением Ссылка на сообщение
JuJeu #3055 17 мая 2019 (изменено) Гуманитарий, не уловлявший суть... соре. Я просто токсич. Идея в том, что нужно упражняться каждый день, а иногда на пределе возможностей. Это как с бегом, иногда ты на выносливость бегаешь, в иногда скорость тренируешь (второе сложное). Изменено 17 мая 2019 пользователем JuJeu Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders. Поделиться сообщением Ссылка на сообщение
Kant #3056 17 мая 2019 Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение.Я не прям умный, так что хз стоит ли всерьез воспринимать написанное, но: 1) ты находишь с помощью бинарного поиска четверку2) теперь ты начинаешь влево и вправо от найденного числа таким же бинарным поиском искать четверку, граничащую с не четверкой upd: нашел эту задачу на литкоде https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/ зачем влево вправо бинарнымты автоматически попадаешь им в худший случай, просто циклом влево вправо, пока не встретишь другое число Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
FeelYourDestiny #3057 17 мая 2019 Парни, есть массив из N значений от 0 до 1000 с неуникальными данными. Нужно байнари серчем найти все вхождения числа Х. У меня вариант только делить массив на 2 пока не попадется первый раз число Х, а потом по оставшемуся массиву проходится форичем пока значения ==Х. Есть какой-то способ избавиться от этого форича? У меня ощущение что это кривое решение.Я не прям умный, так что хз стоит ли всерьез воспринимать написанное, но: 1) ты находишь с помощью бинарного поиска четверку2) теперь ты начинаешь влево и вправо от найденного числа таким же бинарным поиском искать четверку, граничащую с не четверкой upd: нашел эту задачу на литкоде https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/ зачем влево вправо бинарнымты автоматически попадаешь им в худший случай, просто циклом влево вправо, пока не встретишь другое число скорее даже либо только влево, либо только вправо Поделиться сообщением Ссылка на сообщение
AskMe- #3058 17 мая 2019 Подумайте ещё раз Лишь ощутив баттхерт до конца, мы обретаем свободу Поделиться сообщением Ссылка на сообщение
Kant #3059 17 мая 2019 в обе, бинарный поиск не гарантирует тебе куда он попадет, он просто остановится на первом иксе Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью. Поделиться сообщением Ссылка на сообщение
Nutcase #3060 17 мая 2019 зачем влево вправо бинарным ты автоматически попадаешь им в худший случай, просто циклом влево вправо, пока не встретишь другое число Это да, щас тоже об этом подумал. Но и цикл тоже не прям оптимально. В таком случае логичнее проверять элементы не подряд, не n+1, n+2, n+3, n+4.. а что-то вроде бинарного поиска наоборот: n+1, n+2, n+4, n+8 итд Но а на литкоде еще умнее сделали. Что-то вроде модифицированного бинарного поиска, который ищет не просто вхождение элемента, а сразу самое левое или самое правое вхождение Поделиться сообщением Ссылка на сообщение