Skip to content

Instantly share code, notes, and snippets.

@jakubtuchol
Created October 30, 2016 21:24
Show Gist options
  • Select an option

  • Save jakubtuchol/e4c6c1b724db6ddd1de7e97dcf8257d1 to your computer and use it in GitHub Desktop.

Select an option

Save jakubtuchol/e4c6c1b724db6ddd1de7e97dcf8257d1 to your computer and use it in GitHub Desktop.
function processData(input) {
var residues = {};
for (var i = 0; i < input.length; i++) {
var curNum = input[i];
var residue = curNum % k;
if (residue in residues) {
residues[residue] += 1;
} else {
residues[residue] = 1;
}
}
var upperLimit = k % 2 == 0 ? k / 2 : (k / 2) + 1;
var maxSize = 0;
// if k is even, then check if k/2 == 1
if (k % 2 == 0 && (k / 2) in residues && residues[k/2] >= 1)
maxSize = 1;
for (var i = 1; i < upperLim; i++) {
var residueVal = i in residues ? residues[i] : 0;
var residueComplement = (k - i) in residues ? residues[k - i] : 0;
maxSize += Math.max(residueVal, residueComplement);
}
return maxSize;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment