Рейтинг:
2
Robert Welliever
Вау,я не мог не согласиться с мокрым одеялом OriginalGriff. Я обнаружил, что один из лучших способов учиться-это смотреть непосредственно на решение, а затем перепроектировать его и улучшать. В этом духе вот неоптимальное решение, которое прошло бы в ситуации интервью:
public static int[][] RoadBuilder(int nCities, int[,] builtRoads)
{
// Build lookup of existing connections
HashSet<string> alreadyBuilt = new HashSet<string>();
string hereToThere, thereToHere;
for(int i = 0; i < builtRoads.Length / 2; i++)
{
hereToThere = builtRoads[i, 0] + "|" + builtRoads[i, 1];
thereToHere = builtRoads[i, 1] + "|" + builtRoads[i, 0];
if(!alreadyBuilt.Contains(hereToThere))
alreadyBuilt.Add(hereToThere);
if(!alreadyBuilt.Contains(thereToHere))
alreadyBuilt.Add(thereToHere);
}
// Identify missing roadways
List<int[]> toBuild = new List<int[]>();
for(int i = 0; i < nCities; i++)
{
for(int j = 0; j < nCities; j++)
{
if(i == j) // ignore a city to itself
continue;
hereToThere = i.ToString() + "|" + j.ToString();
thereToHere = j.ToString() + "|" + i.ToString();
if(!alreadyBuilt.Contains(hereToThere) &&
!alreadyBuilt.Contains(thereToHere))
{
toBuild.Add(new int[2] { i, j });
alreadyBuilt.Add(thereToHere);
}
}
}
// Fill formatted results
int[][] results = new int[toBuild.Count][];
toBuild.CopyTo(results);
return results;
}
Хотя лично я бы предупредил вас, чтобы Вы были начеку, если пойдете туда работать. Им нужна функция, которая принимает многомерный массив в качестве параметра и возвращает двумерный массив. В реальной жизни это не имеет никакого смысла и увеличивает вероятность ошибки астрономически. Программист Java, пришедший на C#, был бы озадачен, и даже опытные программисты C#, скорее всего, почесали бы в затылке.
F-ES Sitecore
Я надеюсь, что он получит работу, используя ваш код, и станет вашим коллегой, где вам нужно будет продолжать нести его, выполняя все его задачи, а также ваши собственные.
Richard MacCutchan
Вы не помогаете людям, выполняя за них их работу. ОП мог бы легко найти некоторые ответы, используя инициативу и силу мозга, а не ожидая, что кто-то другой сделает это за него.
F-ES Sitecore
Если бы коллега получил задание и просто спросил меня, как это сделать, я бы, вероятно, хотел, чтобы его уволили или, как минимум, удалили из моей команды. Если вы работаете, то это для того, чтобы делать работу, если вы не можете делать эту работу, вы не должны работать. Помогать людям обманным путем получить работу никому не помогает. Как бы вам понравилось, если бы вы пошли к врачу, а у этого врача на самом деле не было знаний, чтобы помочь вам, он заставил других людей сдавать экзамены и отвечать на вопросы собеседования?
Robert Welliever
Это вполне опровергаемое утверждение. Мне помогали бесчисленное количество раз, глядя на ответы других людей. Мне также особенно помогало чтение ответов на вопросы интервью.
F-ES Sitecore
Иногда вы получаете вопросы для интервью, чтобы закончить их в свое свободное время. Или, может быть, у него есть друг, который тоже собирается взять интервью и хочет подготовить их заранее.
Что касается увольнения людей, я не приношу извинений за то, что люди способны выполнять работу, для которой их наняли. Когда вы управляете командой в сжатые сроки, и один человек всегда нуждается в том, чтобы другие выполняли за него свою работу, возможно, вы измените свое мнение.
Richard MacCutchan
Может быть, это и не доказуемо, но, безусловно, основано на опыте.
Robert Welliever
Вы ошибаетесь. Ваши утверждения на самом деле легко опровергаются независимо от вашего опыта. Вы делаете грубые обобщения, к которым я должен привести только один контрпример, что я и сделал. Я почти уверен, что именно так вы занимаетесь наукой.
Richard MacCutchan
Да, вы правы, а я ошибаюсь.
F-ES Sitecore
Мы не говорим о вопросах или помощи...мы говорим о ком-то, кто получил задание и не имеет возможности выполнить его, даже начать его, а вместо этого хочет, чтобы другие люди делали за него свою работу. Если вы не видите разницы между ними, тогда удачи вам самим.
F-ES Sitecore
Когда вы пробудете здесь немного дольше, вы научитесь понимать, когда вы действительно помогаете кому-то учиться, а когда просто выполняете за него чужую работу. Учитывая, что у трех долгосрочных членов есть одно мнение, а у вас другое, возможно, вам следует учитывать тот факт, что у этих членов есть опыт, которого у вас нет, и что, возможно, мы правы.
F-ES Sitecore
Это аргумент соломенного человека, я сказал, что это уровень опыта, который дает вам insite, и тот факт, что у меня больше опыта работы с этим сайтом, чем у вас (как и у Гриффа и Ричарда), является неоспоримым фактом. Если вы хотите утверждать, что опыт не приводит к инсайту, то удачи вам в этом.
F-ES Sitecore
Я сказал, что опыт был движущей силой, и вы изменили это на "членский стаж" и спорили против "членского стажа" (что бы это ни значило). Когда вы возражаете против аргумента, который слабее того, что сказал другой человек, и не является тем, что он на самом деле сказал, тогда это по определению аргумент соломенного человека. Вы теперь следуете, что до объявления рассчитанный на предубеждения аргументы. Если бы ваша позиция имела хоть какой-то вес, вы бы придерживались фактов.
F-ES Sitecore
Если вы считаете, что мой "членский стаж" не равен большему опыту, то, как я уже сказал, Вы ведете спор о соломенном человеке.
George Swan
Я в замешательстве. Может кто-нибудь, пожалуйста, указать, где в правилах https://www.codeproject.com/Articles/64628/Code-Project-Quick-Answers-FAQ#rules говорится ли в нем, что на домашние вопросы нельзя отвечать?
NotPolitcallyCorrect
Где вы видели, чтобы кто-то сказал, что на домашние вопросы не будут даны ответы? Ответы на домашние задания здесь даются постоянно.
George Swan
Просто Грифф сказал, что мы не делаем твою домашнюю работу. Поэтому я предположил, что это должно быть против правил. Но я посмотрел на правила и не смог их увидеть, а затем попросил разъяснений, которые вы любезно мне дали. Спасибо. Итак, теперь, когда вы ответили и стало ясно, что мы имеем право публиковать решения домашних заданий, возникает еще один вопрос. А именно, кто такие ‘мы "в ‘мы не делаем вашу домашнюю работу"?
NotPolitcallyCorrect
Да, я вижу ваше замешательство. На самом деле Грифф пытается сказать: «Мы здесь не для того, чтобы делать вашу домашнюю работу или реальное рабочее задание для людей. Особенно, когда человек не приложил никаких усилий, чтобы сначала сделать свою работу». «Мы» означает сообщество CodeProject в целом. ОП не предпринял никаких усилий, чтобы попытаться сделать это сам, и вместо этого ожидает, что кто-то здесь сделает это за него. Большинство людей здесь знают, что выполнение людьми работы за них не «помогает» им ничем, кроме как научить их тому, что все, что нужно сделать, это прийти сюда, и кто-то сделает их работу за них. Затем они попадают в реальный мир, не могут выполнять свою работу и должны постоянно пытаться заставить других делать это за них. Я один из немногих счастливчиков, которые действительно оказались в этом положении, выполняя свою собственную работу, а затем вынужден был выполнять за них чужую работу, потому что они обманули свой путь в школе. Не самое веселое время.
George Swan
Я полностью согласен с вашими чувствами. Однако мой подход состоял бы в том, чтобы перейти к следующему вопросу, не выговаривая плакату, который действует в рамках правил форума. Было приятно поболтать с вами. С наилучшими пожеланиями, Джордж.
NotPolitcallyCorrect
На самом деле, IMO эта публикация нарушает "правило" № 2 FAQ. Он не является конкретным и не детализирует точно, в какой помощи нуждается ОП (за исключением того, что ОП считает, что мы должны делать его работу за него).