FCC參閱筆記之有趣的演算法(下)

2021-07-24 23:54:42 字數 2066 閱讀 8766

描述:設計乙個收銀程式 checkcashregister() ,其把購買**(price)作為第乙個引數 , 付款金額 (cash)作為第二個引數, 和收銀機中零錢 (cid) 作為第三個引數.

cid 是乙個二維陣列,存著當前可用的找零.

當收銀機中的錢不夠找零時返回字串 「insufficient funds」. 如果正好則返回字串 「closed」.

否則, 返回應找回的零錢列表,且由大到小存在二維陣列中.

解題程式:

function

checkcashregister

(price, cash, cid) );

tempcid.foreach(function

(v,i,arr) else

}});

if (balance === 0) ))

//返回該找零的零錢陣列

return change;

} else

if (balance > 0) else

}

note:該題目為fcc的高階程式設計訓練題的某乙個,題目並不很難,只是要對邊界條件、找零過程有乙個清晰的思路。

描述:依照乙個存著新進貨物的二維陣列,更新存著現有庫存(在 arr1 中)的二維陣列. 如果貨物已存在則更新數量 . 如果沒有對應貨物則把其加入到陣列中,更新最新的數量. 返回當前的庫存陣列,且按貨物名稱的字母順序排列.

解題程式:

function

updateinventory

(arr1, arr2) );

arr2.foreach(function

(v) else

});return arr1.sort(function

(a,b));

}

note:該題目也比較簡單,在這裡寫出來,只是因為實現的思路挺好的,我們可以把第乙個陣列成員的第乙個元素單獨拎出來儲存起來,然後遍歷第二個陣列,判斷第二個陣列的當前成員的第乙個屬性是否在我們儲存的屬性陣列中,然後使用indexof()方法找到他的位置,則這個位置也是該成員在第乙個陣列中的位置。這樣方便了賦值操作。

描述:把乙個字串中的字元重新排列生成新的字串(注:進行給定字串的全排列),返回新生成的字串裡沒有連續重複字元的字串個數.連續重複只以單個字元為準。例如, aab 應該返回 2 因為它總共有6中排列 (aab, aab, aba, aba, baa, baa), 但是只有兩個 (aba and aba)沒有連續重複的字元 (在本例中是 a).

解題程式:

function

permalone

(str) ))

var resultarr = ;

var temparr = ;

var len = str.length;

//得到給定字串的全排列,使用遞迴實現。

(function

rec(arr));

//如果不重複(例如:aba),將其壓入存入最終結果的陣列resultarr

if (!bool)

//丟擲倒數第二個陣列元素,方便下次迴圈時結果的存放

temparr.pop();

} else else }}

})(strarr);

//返回存入最終結果的陣列的長度。

return resultarr.length;

}

note:感覺這道題應該是fcc高階演算法程式設計題中最難的乙個了,在網路上搜尋了全排列的實現演算法,對其思路不怎麼理的很清楚,然而自己還是慢慢解出了這道題,感覺挺好的。這道題的難點在於對給定元素的全排列,首先要有遞迴實現的思路,其次在每次得到排列結果後需要對存放結果的陣列進行pop操作,以存放下一次的迴圈的元素。

Matlab實驗之有趣的發聲函式sound

目錄 1.sound函式簡介 2.實驗 3.相關引數 3.1 y 音訊資料 3.2 fs 取樣率 3.3nbits 樣本值的位深 實驗內容 載入示例檔案gong.mat,其中包含樣本資料y和速率fs,並收聽音訊。load gong.mat sound y load handel.mat sound ...

有趣的演算法

friday,july 22,2016 19 50 50 a b兩人分別在兩座島上。b生病了,a有b所需要的藥。c有一艘小船和乙個可以上鎖的箱子。c願意在a和b之間運東西,但東西只能放在箱子裡。只要箱子沒被上鎖,c都會偷走箱子裡的東西,不管箱子裡有什麼。如果a和b各自有一把鎖和只能開自己那把鎖的鑰匙...

LeetCode演算法練習之有效的括號

編譯器在編譯的時候,就會使用棧來做運算,儲存運算子,分配運算順序。所以說,語義分析方面的問題,很多都與棧這種資料結構有關。分析這道題目,假設我們在做數學題算式子,去括號的時候必須去掉裡面的括號,才能去外面的括號。這道題也一樣,先去除裡面的括號,再去除外面的,如果所有的括號都可以去除,最終沒有括號了,...