今天看到一道題目,當時不會,聽了講解之後,覺得很有意思,先記錄下來。
原題如下:
20 個隨機數字,放到 3 個陣列中 arr1, arr2,arr3 保證 3 個陣列 的和相差最小;
先來解釋一下這個題目:
就是把20個隨機數放在3個陣列中,然後把每個陣列中的值相加,最後再把每個陣列中的和相減,得到差值是最小的。如果要想有這種效果,就得每個陣列中的和都差距不大。
那麼這要怎麼做呢?
如果用過瀑布流的同學應該知道,傳進來的大小是不一樣的,所以每列的高度也不一樣,不能讓每列太長或者太短,所以,我們就看那列的高度最短,就把新的放在短的那一列上。
同樣,這題原理和上面的瀑布流一樣的,我們可以判斷哪個陣列裡面的數值最小,然後把新的數值放在這個陣列裡面。
// 先得到20個隨機數,放在arr陣列
var length = 20;
var arr = ;
for(var i = 0; i < length; i++)
// 建立3個陣列,將arr陣列中的3個數分別放在三個陣列中
var arr1 = ,
arr2 = ,
arr3 = ;
arr1.push(arr[0]);
arr2.push(arr[1]);
arr3.push(arr[2]);
// 在迴圈裡把各個陣列的和求出來,再比較,把新的值放在和小的陣列內
for(var i = 3; i < arr.length; i++)
// 然後建立求和的方法
function add(newarr)
return size;
} // 此時這個時候的3個陣列的和的差值就是最小的了
console.log(add(arr1));
console.log(add(arr2));
console.log(add(arr3));
關於陣列指標的一道面試題
看下面一道面試題 include include int main void int ptr int a 1 printf d,d a 1 ptr 1 return 0 輸出結果為 2,5 在這裡主要是考察 a 1 和 a 1的區別了。很顯然 a 1 取的是a 1 然而 a 1取的是什麼呢?a不是首...
關於C陣列指標的一道面試題
本文由 lonelyrains c語言指標是經典問題了,還是做錯啊 int main int p int a 1 a陣列的位址加1,是以a陣列的大小為乙個單位 char pc1 char a 1 同上,只是pc1變成了字元指標,下次pc1加減運算是乙個位元組大小為乙個單位 char pc2 char...
一道面試題
一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...