一個編碼問題要求在零索引數組A中找到丟失的數字,該數組由N個不同的整數組成。Javascript中的「PermMissingElem」解決方案
E.g.
Arr[0] = 2
Arr[1] = 3
Arr[2] = 1
Arr[3] = 4
Arr[4] = 6
我先前提交的第一排序陣列,然後執行一個foreach函數返回值1,其中元件之間的陣列差大於1的溶液,然而,這並沒有得到的100點。
有沒有辦法改善這一點?
一個編碼問題要求在零索引數組A中找到丟失的數字,該數組由N個不同的整數組成。Javascript中的「PermMissingElem」解決方案
E.g.
Arr[0] = 2
Arr[1] = 3
Arr[2] = 1
Arr[3] = 4
Arr[4] = 6
我先前提交的第一排序陣列,然後執行一個foreach函數返回值1,其中元件之間的陣列差大於1的溶液,然而,這並沒有得到的100點。
有沒有辦法改善這一點?
使用該功能獲取正確性和性能100
function solution(A) {
// write your code in JavaScript (Node.js 4.0.0)
var size = A.length;
var sum = (size + 1) * (size + 2)/2;
for (i = 0; i < size; i++) {
sum -= A[i];
}
return sum;
}
嘗試利用Math.min
,Math.max
,while
環
var Arr = [];
Arr[0] = 2
Arr[1] = 3
Arr[2] = 1
Arr[3] = 4
Arr[4] = 6
var min = Math.min.apply(Math, Arr),
max = Math.max.apply(Math, Arr),
n = max - 1;
while (n > min) {
if (Arr.indexOf(n) === -1) {
console.log(n);
break;
}
--n;
}
我與我的代碼相同的問題:
function solution(A) {
var i, next;
A.sort();
next = 1;
for (i=0; i<A.length; i++){
if (A[i] != next) return next;
next++;
}
return next;
}
儘管它的正確性得分爲100%,但它在所有性能測試中都返回了錯誤的答案。
C語言中的相同代碼接收100%兩個:
int cmpfunc (const void * a, const void * b){
return (*(int*)a - *(int*)b);
}
int solution(int a[], int n) {
int i, next;
qsort(a, n, sizeof(int), cmpfunc);
next = 1;
for (i=0; i<n; i++){
if (a[i] != next) return next;
next++;
}
return next;
}
更改A.sort();對於A = A.sort(function(a,b){return a - b;});你會有100% – MarBVI
複製很容易,你能解釋一下爲什麼這是一個更好的解決方案。 –