Выборы в настоящее время!найти число кандидатов, которые все еще имеют шанс выиграть выборы
Учитывая массив чисел голосов, поданных за каждого из кандидатов до сих пор, и целое число к числу избирателей, не отдать свой голос еще, найти число кандидатов, которые все еще есть шанс чтобы выиграть выборы.
Победитель выборов должен обеспечить строго больше голосов, чем любой другой кандидат. Если два или более кандидатов получают одинаковое (максимальное) количество голосов, предполагают, что победителя вообще нет.
Пример
Для получения голосов = [2, 3, 5, 2] и к = 3, выходной сигнал должен быть electionsWinners (голоса, к) = 2.
Для голосов = [ 1, 3, 3, 1, 1] и к = 0, то выход должен быть electionsWinners (голоса, K) = 0.
Для голосов = [5, 1, 3, 1, 4] и k = 0, выход должен быть electionWinne RS (голоса, к) = 1.
int electionsWinners(int[] votes, int k) {
int max = votes[0];
int counter = 0;
/* I assumed all the voters who haven't cast their vote,
votes only 1 candidate */
for(int i = 1; i < votes.length; i++) {
//getting the candidate who has the highest vote.
if(votes[i] > max) {
max = votes[i];
}
}
// count the candidates who still have the chance to win.
for(int i = 0; i < votes.length; i++) {
if(k != 0){
if((votes[i] + k) > max) {
counter++;
}
} else if(k == 0) {
/* if there is no voters left to vote,
and the candidates who has the highest vote will be the winner.
and if two or more candidates recieve the same(maximum) number of votes,
assume there is no winner. */
// count the no. of candidates who recieve the same(maximum) number of votes.
if(votes[i] == max) {
counter++;
if(counter == 1) {
counter = 1;
} else {
counter = 0;
}
}
}
}
return counter;
}
Я новичок в программировании. пытаясь изо всех сил решить это, и это мой код. Я просто задаюсь вопросом, есть ли для этого упрощенное решение.
Я рекомендую разместить на http://codereview.stackexchange.com/ – assylias
'if' заявления излишне многословным, е. г. 'if (k! = 0) A else if (k == 0) B' можно упростить до' if (k! = 0) A else B'; 'if (counter == 1) counter = 1' является избыточным –