Рубрики

Интервью OPPO R & D для FTE, в кампусе

Отдел исследований и разработок Oppo посетил наш колледж 6 августа 2019 года для найма FTE.

Раунд онлайн-кодирования . Этот раунд состоял из 3 вопросов о кодировании, размещенных на платформе hackerearth. Вопросы были легкого и среднего уровня сложности.

Вопрос 1 : При заданном положительном числе n найдите общее число перестановок натуральных чисел от 1 до n, в которых индексы (начиная с 1) простых чисел также являются простыми числами. Вернуть ответ% 1000000007.

Ограничения: 1 <= n <= 10 ^ 6.

Пример ввода: n = 5, пример вывода: 12

Возможные допустимые перестановки: (1, 2, 3, 4, 5), (1, 2, 5, 4, 3), (1, 5, 2, 4, 3), (1, 5, 3, 4, 2), (1, 3, 2, 4, 5), (1, 3, 5, 4, 2), (4, 2, 3, 1, 5), (4, 2, 5, 1, 3) , (4, 5, 2, 1, 3), (4, 5, 3, 1, 2), (4, 3, 2, 1, 5), (4, 3, 5, 1, 2).

Решение : Найдите число простых чисел от 1 до n, пусть число будет p, тогда эти p простых чисел можно расположить в p позициях в p! пути и оставшиеся (np) номера можно расположить в (np)! пути. Так что требуется ответ: p! * (np) !.

Вопросы 2 : Для массива A из n целых чисел пусть i обозначает длину подмассива A. Для каждой возможной длины подмассива, т. Е. 1 <= i <= n, подсчитайте общее количество подмассивов таким образом, чтобы сумма всех элементов в нем была меньше. чем или равно к.

Формат ввода: Первая строка №. тестовых случаев, значения второй строки k и n, третья строка содержит элементы массива.

Выходной формат: для каждого теста выведите n чисел, разделенных пробелом, где каждое число равно no. подмассивов длины i, удовлетворяющих вышеуказанному условию.

Ограничения: 1 <= t <= 20, 1 <= n <= 10 ^ 5, 1 <= k <= 10 ^ 15, 1 <= A [i] <= 10 ^ 9.

Входные данные: t = 1, k = 4, n = 3, arr = 1, 2, 3, Выходные данные: 3 1 0, Объяснение: Длина 1: [{1}, {2}, {3}], Длина 2: [{1, 2}], длина 3: []

Решение : Подход скользящего окна можно использовать для решения вопроса, как только сумма элементов окна станет больше k, мы будем считать число «нет». подмассивов размера i в этом окне и обновите счетчик для них. Для более подробной информации посмотрите код https://ideone.com/7BvkL9.

Вопрос 3 : Для данного массива из n натуральных чисел вычислите общую сумму пола (a [i] / a [j]) для каждой пары индексов i, j.

Ограничения: 1 <= a [i] <= 10 ^ 5, 1 <= n <= 10 ^ 5.

Пример ввода: n = 3, arr = [2, 4, 5].

Пример вывода: 8

Пояснение: Ar [0] / Ar [0] + Ar [0] / Ar [1] + Ar [0] / Ar [2] = 1 + 0 + 0 = 1
Ar [1] / Ar [0] + Ar [1] / Ar [1] + Ar [1] / Ar [2] = 2 + 1 + 0 = 3
Ar [2] / Ar [0] + Ar [2] / Ar [1] + Ar [2] / Ar [2] = 2 + 1 + 1 = 4, сумма = 1 + 3 + 4 = 8.

Решение : во-первых, предварительно рассчитать b [i] значения, которые равны количеству чисел ??? , это может быть сделано в (max элемент arr). Рассмотрите число i, так что пол всех чисел между i и 2 * i (2 * i не включен) собирается внести 1 в сумму. И все числа между 2 * i и 3 * i (3 * i не включены) собираются внести 2 в сумму и так далее. Множественная переменная в коде принимает во внимание эту вещь. Идите как сито и теперь вычисляете, как легко изменить ответ, так как мы знаем количество элементов между этим и следующим кратным. Для более подробной информации смотрите код http://ideone.com/Xjpk7j.

После этого тура всего 44 кандидата были отобраны для интервью.

Было проведено 3 раунда собеседований, 2 технических и 1 HR

Раунд 1: В этом раунде интервьюер в основном сосредоточился на основных понятиях C.

я. Как инициализировать указатель в функции. Каковы будут результаты следующих printf (++ i, –i, i ++, i–, i). Сложность и быстрая сложность времени сортировки в худшем и лучшем случаях, а также попросил меня написать псевдокод для быстрой сортировки.

II. Определив выполнение программы в отношении управления памятью, я объяснил ему, как функция и ее локальные переменные загружаются в стек и как происходит их освобождение. Затем он попросил объяснить выполнение программы независимо от управления памятью, затем я объяснил ему 6 фаз лексического анализа проекта компилятора, синтаксического анализа и т. Д.

III. Он спросил меня о висящем указателе и как это влияет на нормальное выполнение программы.

внутривенно Напишите синтаксис для «массива указателей на функцию, возвращающую указатель на функцию, возвращающую указатель на символ, я допустил небольшую ошибку в этом позже, когда интервьюер исправил меня.

v. Обнаружение цикла в связанном списке. Я сказал ему медленный и быстрый подход указателя, он попросил меня дать другое решение, кроме этого. Я спросил у него дубликаты в списке, он сказал, что в списке нет дубликатов, затем я сказал ему, что дата узлов может быть сохранена в хэш-карте, и как только мы получим запись, уже присутствующую на карте, в ней будет цикл , Позже интервьюер сказал мне, что как будет работать метод при наличии дубликатов, тогда я сказал ему, что вместо сохранения значений элементов в карте мы будем хранить адреса узлов на карте.

VI. Затем он спросил о моем проекте, который я сделал во время стажировки, несколько вопросов, связанных с этим.

VII. Он спросил меня о размере int, затем он дал мне структуру, имеющую 2 типа int и одну переменную типа char, и спросил размер этой структуры. Позже он попросил меня написать код размера оператора в с, который я не знал. Затем он спросил меня, в какие другие компании вы обращались до OPPO и почему вы не выбрали.

Этот раунд был для меня смешанным, и меня выбрали на второй раунд.

Раунд 2: В этом раунде интервьюер попросил меня решить некоторые проблемы с кодированием и задал ой вопросы. Во-первых, он посмотрел на мою оценку раунда кодирования в Интернете. Я не смог дать оптимизированное решение для третьей проблемы, поэтому он попросил меня оптимизировать эту проблему. Я дал ему оптимизированный подход, хотя он не был полностью оптимизирован, интервьюер был впечатлен моим подходом.

Он попросил у меня вывод для следующей программы.

Статическое int u = 10;

int u = 20;

int fun () {static int u = 10;}

int main () {print u;}

Позже он сформулировал много вопросов об этой разнице между статической переменной и глобальной переменной, где им выделяется память. Затем он спросил меня о статическом и динамическом связывании и попросил меня написать пример для обоих. Что такое перегрузка функций, напишите пример, среди перегрузки и переопределения, которые выполняются во время выполнения и которые выполняются во время компиляции. Затем он спросил меня, Монти Холл Проблема https://en.wikipedia.org/wiki/Monty_Hall_problem, я ответил на задачу, которую он попросил меня доказать, и объяснил его с помощью теоремы Байеса (условная вероятность).

Распечатайте вертикальный порядок дерева, Распечатайте заданное дерево как древовидную структуру (аналогично проблеме печати образца), Проблема One Bfs, Объединенные массивы и отсортированные кучи и их приложения.

Раунд 3: (HR) Интервью началось с официального вступления. Она спросила меня о моих шансах PPO в компании, которую я интернировал. Позже она спросила меня о том, как прошел мой день. Одна вещь, которая вам больше всего понравилась, и одна вещь, которая вам не понравилась в нашем процессе собеседования.

Наконец 18 студентов (включая меня) были отобраны !!!

Советы: Помимо структуры данных и алгоритмов, пройдитесь по основам языка Си, выводим вопросы, указатели и т. Д.

Прочитайте все концепции OOPS, которые они задавали OOPS подробно каждому студенту.

Сохраняйте спокойствие и терпение (хотя их очень трудно поддерживать, особенно если у вас есть ряд отказов) и верьте в свои навыки на протяжении всего сезона размещения.

Эта статья предоставлена Айшвари Кумар.

Напишите свой опыт интервью или отправьте его по электронной почте на адрес contrib@geeksforgeeks.org

Рекомендуемые посты:

Интервью OPPO R & D для FTE, в кампусе

0.00 (0%) 0 votes