[可分性]NailingPlanks
7401 ワード
私の答え
function solution(A, B, C) {
// write your code in JavaScript (Node.js 8.9.4)
let start = 0;
let end = C.length-1;
let mid;
let answer = -1;
while(start <= end) {
mid = Math.floor((start+end)/2);
if (check(A,B,C,mid)) {
end = mid-1;
answer = mid+1;
} else {
start = mid+1;
}
}
return answer;
}
function check(a, b, c, num) {
var pNails = new Array(2*c.length + 1).fill(0);
for (var i = 0; i <= num; ++i) {
++pNails[c[i]];
}
for (i = 1; i < pNails.length; ++i) {
pNails[i] += pNails[i-1];
}
for (i = 0; i < a.length; ++i) {
if (pNails[b[i]] <= pNails[a[i]-1]) return false;
}
return true;
}
Reference
この問題について([可分性]NailingPlanks), 我々は、より多くの情報をここで見つけました https://velog.io/@j03y14/코딜리티-NailingPlanksテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol