1.柠檬水找零
解法
1.贪心算法
思路
采用贪心算法,如果每一个局部都可以达到最优解那么全局就可以达到最优解
var lemonadeChange = function(bills) {
let five = 0;
let ten = 0
for(let bill of bills) {
if(bill == 5) {
five++
} else if(bill == 10) {
if(five <= 0) {
return false
}
five--
ten++
} else {
if(five > 0 && ten >0) {
five--
ten--
} else if(five >= 3) {
five -= 3
} else {
return false
}
}
}
return true
};
2.三角形的最大周长
解法
1.贪心算法
思路
首先将数组升序排列,然后根据两边之和大于第三边求解,如果后两个元素相加不大于前一个元素,说明不能构成三角形,则继续向下查找
var largestPerimeter = function(nums) {
let arr = nums.sort((a,b) => b-a)
for(let i = 0; i < arr.length - 2; i++) {
if(arr[i] < arr[i+1] + arr[i+2]) {
return arr[i] + arr[i+1] + arr[i+2]
}
}
return 0
};