檢查 JavaScript 中是否可以提供找零
問題
我們需要編寫一個 JavaScript 函式,該函式將數字陣列 arr 作為第一個也是唯一的引數。
讓我們考慮以下情況
一個店主銷售一種商品,價格正好是 5 印度盧比。一些顧客排隊等候,每個人都會購買正好一個單位的這種商品。顧客可以向店主提供 5 印度盧比、10 印度盧比或 20 印度盧比的鈔票。考慮到店主一開始沒有錢,並且陣列代表排隊顧客提供的鈔票。
我們的函式應該確定店主是否可以為所有顧客提供準確的找零。
例如,如果函式的輸入是
輸入
const arr = [5, 5, 10, 10, 20];
輸出
const output = false;
輸出解釋
因為兩張 5 印度盧比的鈔票將用於為兩張 10 印度盧比的鈔票提供找零,之後無法生成 20 印度盧比的找零。
以下是程式碼
示例
const arr = [5, 5, 10, 10, 20];
const provideChanges = (arr = []) => {
let fives = 0
let tens = 0
for(let i = 0; i < arr.length; i++) {
switch(arr[i]) {
case 5:
fives += 1
break
case 10:
if(fives <= 0) {
return false
}
fives -= 1
tens += 1
break
default:
if(tens >= 1 && fives >= 1) {
tens -= 1
fives -= 1
} else if(fives >= 3) {
fives -= 3
} else {
return false
}
break
}
}
return true
};
console.log(provideChanges(arr));輸出
false
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP