Хе-хе, тут вызвали после телефонного скрина на интервью сразу. Дали задачку: написать функцию isPrime(int number), которая проверяет number на простоту. Наверное, предпологалось, что я засажу цикл с проверкой типа number%i == 0. Я предложил захардкодить все primes от 1 до 2^32-1 в static HashSet в отдельном классе, написать isPrime(int number){ return set.contains(number) } и сэкономить пару-тройку драгоценных микросекунд по сравнению с любым вычислением. Чуваки были удивлены нестандартным подходом!Dweller wrote:3*3 можно захардкодить
Придумать задачу для интервью по JAVA.
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Придумать задачу для интервью по JAVA.
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Придумать задачу для интервью по JAVA.
а сколько времени хардкодить будете?
-
- Уже с Приветом
- Posts: 314
- Joined: 24 May 2013 22:04
Re: Придумать задачу для интервью по JAVA.
Мне эту задачу давали для итервью по Scala.reality wrote:Вот задача на час.
-
- Уже с Приветом
- Posts: 12257
- Joined: 20 Dec 2000 10:01
- Location: Bellevue, WA
Re: Придумать задачу для интервью по JAVA.
2^35-1 ? можно кодировать битамиKolbasoff wrote:Хе-хе, тут вызвали после телефонного скрина на интервью сразу. Дали задачку: написать функцию isPrime(int number), которая проверяет number на простоту. Наверное, предпологалось, что я засажу цикл с проверкой типа number%i == 0. Я предложил захардкодить все primes от 1 до 2^32-1 в static HashSet в отдельном классе, написать isPrime(int number){ return set.contains(number) } и сэкономить пару-тройку драгоценных микросекунд по сравнению с любым вычислением. Чуваки были удивлены нестандартным подходом!Dweller wrote:3*3 можно захардкодить
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Придумать задачу для интервью по JAVA.
а я напишу програмку, которая сгенерит код Джава класса, который будет содержать все primes. Один раз напишу програмку, один раз ее запущу, класс сохраню в своей commons либе, и фсе. Берете на работу?Komissar wrote:а сколько времени хардкодить будете?
-
- Уже с Приветом
- Posts: 34124
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Придумать задачу для интервью по JAVA.
http://primes.utm.edu/lists/small/millions/Komissar wrote:а сколько времени хардкодить будете?
первые 50 миллионов можно здесь скачать.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 5542
- Joined: 30 Aug 2007 17:39
- Location: USA
Re: Придумать задачу для интервью по JAVA.
Задача на пересечение двух листов (хотя почему они превратились в arrays?), одна функция, нет?Krys-Krys wrote:Так в чем сохраните. Есть 2 листа на входе с числами, а дальше делайте с ними что хотите включая создание новых структу. Один из вариантов решения например засунуть все в HashMap где ключи это числа из 1го списка и пройдясь по 2му списку разок можно в значение для ключа класть кол-во сколько встретили.Komissar wrote:а в чем хранится correspondence between element A and elements B?
Т е на входе что-то типа
A - [1, 6, 7, 8]
B- [1, 6, 8, 8, 7, 1, 8, 7, 6]
Как-то так.
B.retainAll(A);
return B;
Понятно, что не все помнят API, но лучше по-моему, тот кто скажет "это такая-то задача, конкретную функцию посмотрю в документации", чем будет выдумывать какие-то свои.
Last edited by IContentProvider on 23 Jan 2014 02:27, edited 1 time in total.
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Придумать задачу для интервью по JAVA.
для ситуации, когда в ран-тайме надо часто проверять, прайм-не-прайм, кстати, неплохое решение, хотя потребует много памяти.Kolbasoff wrote:а я напишу програмку, которая сгенерит код Джава класса, который будет содержать все primes. Один раз напишу програмку, один раз ее запущу, класс сохраню в своей commons либе, и фсе. Берете на работу?Komissar wrote:а сколько времени хардкодить будете?
-
- Уже с Приветом
- Posts: 34124
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Придумать задачу для интервью по JAVA.
Я бы еще подумал о лези инициализашин и написал бы пачку классов типо от 1 до миллиона от миллиона до трех миллионов и тд. Чтоб все махом не грузить.Kolbasoff wrote:а я напишу програмку, которая сгенерит код Джава класса, который будет содержать все primes. Один раз напишу програмку, один раз ее запущу, класс сохраню в своей commons либе, и фсе. Берете на работу?Komissar wrote:а сколько времени хардкодить будете?
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 5542
- Joined: 30 Aug 2007 17:39
- Location: USA
Re: Придумать задачу для интервью по JAVA.
А я пошарую по гуглю и скачаю готовую, с подходящей лицензией.Kolbasoff wrote: а я напишу програмку, которая сгенерит код Джава класса, который будет содержать все primes. Один раз напишу програмку, один раз ее запущу, класс сохраню в своей commons либе, и фсе. Берете на работу?
-
- Уже с Приветом
- Posts: 12257
- Joined: 20 Dec 2000 10:01
- Location: Bellevue, WA
Re: Придумать задачу для интервью по JAVA.
и засунуть в распределенный key value store, так чтобы scalable solutionSergunka wrote:Я бы еще подумал о лези инициализашин и написал бы пачку классов типо от 1 до миллиона от миллиона до трех миллионов и тд. Чтоб все махом не грузить.Kolbasoff wrote:а я напишу програмку, которая сгенерит код Джава класса, который будет содержать все primes. Один раз напишу програмку, один раз ее запущу, класс сохраню в своей commons либе, и фсе. Берете на работу?Komissar wrote:а сколько времени хардкодить будете?
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Придумать задачу для интервью по JAVA.
вот нашел здесь: http://primes.utm.edu/howmany.shtml The Prime Number Theorem: The number of primes not exceeding x is asymptotic to x/log x.Dweller wrote:и засунуть в распределенный key value store, так чтобы scalable solutionSergunka wrote:Я бы еще подумал о лези инициализашин и написал бы пачку классов типо от 1 до миллиона от миллиона до трех миллионов и тд. Чтоб все махом не грузить.Kolbasoff wrote:а я напишу програмку, которая сгенерит код Джава класса, который будет содержать все primes. Один раз напишу програмку, один раз ее запущу, класс сохраню в своей commons либе, и фсе. Берете на работу?Komissar wrote:а сколько времени хардкодить будете?
Для 2^32-1 = 4294967295, Pi(4294967295) ~ 445861641. Жалкие 445М * 4 bytes = 2.5Gb. Вам что, жалко памяти?
Last edited by Kolbasoff on 23 Jan 2014 02:44, edited 1 time in total.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
Не беру:Kolbasoff wrote:а я напишу програмку, которая сгенерит код Джава класса, который будет содержать все primes. Один раз напишу програмку, один раз ее запущу, класс сохраню в своей commons либе, и фсе. Берете на работу?Komissar wrote:а сколько времени хардкодить будете?
http://docs.oracle.com/javase/specs/jvm ... vms-4.html
При попытке компиляции получите что-то вроде too many constants дойдя до 65 с чем-то тыс констант в своем Джава файле.
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Придумать задачу для интервью по JAVA.
Но вы оцените нестандартность подхода!Интеррапт wrote:Не беру:Kolbasoff wrote:а я напишу програмку, которая сгенерит код Джава класса, который будет содержать все primes. Один раз напишу програмку, один раз ее запущу, класс сохраню в своей commons либе, и фсе. Берете на работу?Komissar wrote:а сколько времени хардкодить будете?
http://docs.oracle.com/javase/specs/jvm ... vms-4.html
При попытке компиляции получите что-то вроде too many constants дойдя до 65 с чем-то тыс констант в своем Джава файле.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
Не фактKolbasoff wrote:Но вы оцените нестандартность подхода!
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Придумать задачу для интервью по JAVA.
прекрасную тестировщицу можно привести с собой, тоже рассмотрим. А так только индуса, если он согласится.Kolbasoff wrote:А прекрасная тестировщица?valchkou wrote:Кандидату будет дан 1 час и комп с эклипсом в уединенном помещении.
reality wrote:Вот задача на час. Довольно простая но на мой взгял показательная
спасибо, задачи бесспорно замечательные, но не интересные,Dweller wrote:вот вариант для senior level
выдана схема кроссворда и словарь из 50-100 тыщ слов
не хочется тесировать кандидата на абстрактное перекладывание из пустого в порожнее.
А потом это все расхлебывать. Мы ж не гугл или амазон.
я её тоже решал, у нас она уже есть, как стандарт, но от нее как раз и пытаемся уйти.Sergunka wrote: Задача лифта
Я придумал вариант более близкий к домену и вроде бы все в курсе.
есть два объекта
Code: Select all
Account
-number
Transaction
- id
- dateTime
- amount
Code: Select all
Main
AccountService
AccountDAO
Требуется
1) ввести понятия дебит/кредит транзакции (на усмотрение кандидата). Дебит - деньги снимает, кредит - добаляем
2) закодить API сервисов
- посчитать баланс на выбранный день
- выдать дебит или кредит или все транзакции за определенный день
- выдать дебит, кредит или все транзакции за интервал (startDate, endDate).
выяснилось что наиболее часто будет запрашиваться разбивка по дням, поэтому желательно её оптимизировать.
3) Добавить еще 1 account в DAO. (проверка на то как кандидат поженит объекты account с transdactions)
4) покрыть тестами.
цель посмотреть насколько кандидат далеко зайдет, задание не обязательно должно быть завершено за час.
как вам задачка, не слишком ли тупая ?
-
- Уже с Приветом
- Posts: 150
- Joined: 18 May 2012 20:00
Re: Придумать задачу для интервью по JAVA.
etot coding interview proidut vse. a vozjmut u kogo pricheska po lutshe.reality wrote:Вот задача на час. Довольно простая но на мой взгял показательная Готовый юнит тест можно не давать, или дать базовый и попросить дописать до 100% покрытия к примеру
Code: Select all
import java.util.List; /** * A template file with basic JUnit tests has been provided. * Note that your program will be evaluated by a more comprehensive test suite. * * Please consider the runtime and space complexity of your algorithms and comment on those trade offs. * * Good luck! */ public class ArrayFun { /*** * @param chars an array of characters * @return the same array with the character order reversed */ public static char[] reverse(char[] chars){ //TODO - implement me! return null; } /*** * A palindrome is a word, phrase, number, or other sequence of units that may be * read the same way in either direction. * * Caveat 1 : punctuation and spaces do not count as contributing characters * (hint) use the static method Character.isLetter(char c) * * Caveat 2 : upper case letters should still match with lower case * (hint) use the static method Character.toLowerCase(char c) * * Examples of valid palindromes : * * "Never odd or even" * "No trace; not one carton" * "A Toyota! Race fast... safe car: a Toyota" * "Sums are not set as a test on Erasmus" * * @return true if chars form a valid palindrome, otherwise false */ public static boolean isPalindrome(char[] chars){ //TODO - implement me! return false; } /*** * Find the most used char in the following char[] * If a few chars share the top count, return them all. * * Caveat 1: exclude the space (' ') character from your count. * Caveat 2: treat all uppercase characters as their lowercase counterpart * * @return the characters which appear most frequently */ public static List<Character> mostUsedCharacter(char [] chars){ //TODO - implement me! return null; } /*** * Find the number of unique palindromes in the char array * * Example: for the array {'a', 'b', 'b', 'a', 'c', 'c', 'a', 'b' 'b', 'a', 'd', 'd', 'a'} * the palindromes are * abbaccabba * bbaccabb * baccab * acca * cc * abba * bb * adda * dd * * @return the number of unique palindromes in the character array */ public static int numberOfPalindromes(char[] chars){ //TODO - implement me! return 0; } }
Code: Select all
import org.junit.Assert; import org.junit.Test; import java.util.HashSet; import java.util.List; import java.util.Set; public class ArrayFunTest { @Test public void testReverse() throws Exception { final char[] chars = "Novus".toCharArray(); final char [] reversed = "suvoN".toCharArray(); Assert.assertArrayEquals(reversed, ArrayFun.reverse(chars)); } @Test public void testIsPalindrome() throws Exception { final char[] palindrome = "A Toyota! Race fast... safe car: a Toyota".toCharArray(); final char[] notPalindrome = {'N','o','v','u','s'}; Assert.assertTrue(ArrayFun.isPalindrome(palindrome)); Assert.assertFalse(ArrayFun.isPalindrome(notPalindrome)); } @Test public void testMostUsedCharacter() throws Exception{ final char[] chars = "A Toyota! Race fast... safe car: a Toyota".toCharArray(); final List<Character> output = ArrayFun.mostUsedCharacter(chars); Assert.assertEquals(output.size(), 1); Assert.assertEquals(output.get(0), new Character('a')); final char[] chars2 = "Abcba".toCharArray(); final List<Character> output2 = ArrayFun.mostUsedCharacter(chars2); final Set<Character> resultSet = new HashSet<Character>(output2); Assert.assertEquals(output2.size(), 2); Assert.assertTrue(resultSet.contains('a')); Assert.assertTrue(resultSet.contains('b')); Assert.assertFalse(resultSet.contains('c')); } @Test public void testNumberOfPalindromes() throws Exception { char[] chars = "abbaccabbadda".toCharArray(); int numPalindromes = ArrayFun.numberOfPalindromes(chars); Assert.assertEquals(numPalindromes, 9); } }
[mod_on]предупреждение за оверквотинг[/mod_on]
-
- Уже с Приветом
- Posts: 150
- Joined: 18 May 2012 20:00
Re: Придумать задачу для интервью по JAVA.
napishite etot kod,pust' zapustit', i poprosite objasnit' shto budet
Object obj = new Object();
WeakReference<Object> ref = new WeakReference<Object>(obj);
List<byte[]> filler = new LinkedList<byte[]>();
while (ref.get() != null) {
filler.add(new byte[1000]);
}
System.out.println("Filler size " + filler.size());
Object obj = new Object();
WeakReference<Object> ref = new WeakReference<Object>(obj);
List<byte[]> filler = new LinkedList<byte[]>();
while (ref.get() != null) {
filler.add(new byte[1000]);
}
System.out.println("Filler size " + filler.size());
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
Я все понимаю, но квотить здоровенный кусок кода, чтобы высказать свое мнение одной строчкой - нет, не понимаю.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Придумать задачу для интервью по JAVA.
Ссылки на первоисточники хоть не забывайте давать:mr boombastic wrote:napishite etot kod,pust' zapustit', i poprosite objasnit' shto budet
Object obj = new Object();
WeakReference<Object> ref = new WeakReference<Object>(obj);
List<byte[]> filler = new LinkedList<byte[]>();
while (ref.get() != null) {
filler.add(new byte[1000]);
}
System.out.println("Filler size " + filler.size());
http://jonisalonen.com/2012/can-your-in ... r-do-this/
-
- Уже с Приветом
- Posts: 4185
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: Придумать задачу для интервью по JAVA.
этим пусть оракл занимается в своих сертификациях.mr boombastic wrote:napishite etot kod,pust' zapustit', i poprosite objasnit' shto budet
Object obj = new Object();
WeakReference<Object> ref = new WeakReference<Object>(obj);
List<byte[]> filler = new LinkedList<byte[]>();
while (ref.get() != null) {
filler.add(new byte[1000]);
}
System.out.println("Filler size " + filler.size());
у нас задача другая - выяснить какой у чела подход к работе, чтобы он ченить и задизайнил и закодил.
-
- Уже с Приветом
- Posts: 3481
- Joined: 02 Jan 2005 22:10
Re: Придумать задачу для интервью по JAVA.
Задачка хорошая, и мне нравится подход. Можно сразу дать кандидату задизайненный интерфэйс AccountDAO и класс AccountDAOMemoryImpl с "пустышками" TODO. Попросить имплементировать на простых Java Collections. Написать юнит-тесты для одного API.valchkou wrote:как вам задачка, не слишком ли тупая ?
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Придумать задачу для интервью по JAVA.
А зачем все это нужно для обхода? Вроде все стандарные коллекции в яве, аналогично плюсам поддерживают итераторы, поэтому чтобы обойти такую коллекцию, как раз знать её потроха не обязательно.Krys-Krys wrote:
Вчера например выяснилось что товарищ и лист-то обойти нормально не может, а про хэш мэп намека не уловил тоже, и как хэш мэп работает и индекс в таблицах у БД тоже рассказать не осилил, при этом утверждал что Lead Java Developer.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Придумать задачу для интервью по JAVA.
Я бы вообще не стал ставить задачу покрытия тестами а просто бы поглядел выхлоп.valchkou wrote:[mod_on]огромный оверквотинг поскипан[mod_off]
как вам задачка, не слишком ли тупая ?
Гораздо боле важно чтобы тесты последовательно появлялись в процессе решения задачи, чтобы выяснить понимает ли соискатель TDD.
-
- Уже с Приветом
- Posts: 1663
- Joined: 16 Jul 2009 14:18
- Location: Uganda
Re: Придумать задачу для интервью по JAVA.
Так когда вы тесты рожаете, то ведь можно разные подходы использовать. Где-то сначала вообще тесты как таковые пишут и лишь затем кодят. А где-то пишут класс с обвязкой, реализацию, а затем пакет тестов на него. И не факт, что ваш подход понравится человеку, который интервью проводит.Мальчик-Одуванчик wrote:Я бы вообще не стал ставить задачу покрытия тестами а просто бы поглядел выхлоп.