134. 加油站
解题思路
代码实现
var canCompleteCircuit = function(gas, cost) {
var sum = 0,cursum =0,start=0;
for(let i=0;i<gas.length;i++){
cursum += gas[i] - cost[i];
sum += gas[i] - cost[i];
if(cursum < 0) {start = i+1; cursum =0};
}
if(sum < 0) return -1;
return start;
};
135. 分发糖果
解题思路
代码实现
var candy = function(ratings) {
let candys = new Array(ratings.length).fill(1)
for(let i =1; i<ratings.length;i++){
if(ratings[i] > ratings[i-1]){
candys[i] = candys[i-1] + 1;
}
}
for(let i =ratings.length-2; i>=0;i--){
if(ratings[i] > ratings[i+1]){
candys[i] = Math.max(candys[i+1] + 1, candys[i]);
}
}
var res=0;
for(let i =0; i < candys.length;i++){
res +=candys[i];
}
return res;
};
860.柠檬水找零
解题思路
代码实现
var lemonadeChange = function(bills) {
var five=0,ten=0,twen =20;
for(let i =0;i<bills.length;i++){
if(bills[i]===5){
five++;
}
if(bills[i]===10){
if(five <1){
return false;
}else{
five--;
ten++;
}
}
if(bills[i]===20){
if(five <1){
return false;
}else{
if(ten <1 && five<=2){
return false;
}else if(five>=3 &&ten<1){
five--;
five--;
five--;
twen++;
}else{
five--;
ten--;
twen++;
}
}
}
}
return true
};
406.根据身高重建队列
解题思路
代码实现
var reconstructQueue = function(people) {
people.sort((a,b)=>{
if(b[0] !== a[0]) {
return b[0] - a[0]
} else {
return a[1] - b[1]
}
});
var queue = [];
console.log(people)
for(let i=0;i<people.length;i++){
var position = people[i][1];
console.log(position)
console.log(queue);
queue.splice(position,0,people[i]);
}
return queue;
};