LeetCode:860. 柠檬水找零 贪心

LeetCode:860. 柠檬水找零

题目描述

LeetCode:860. 柠檬水找零 贪心_第1张图片
LeetCode:860. 柠檬水找零 贪心_第2张图片
LeetCode:860. 柠檬水找零 贪心_第3张图片
方法一:暴力+贪心

  1. 先判断bills[0] 如果大于5则没办法找零 直接返回false
  2. 然后类似于桶排序定义一个数组num ,用num[0]存5 num[1]存10 num[2]存20
  3. 遍历数组bills[] 如果bills[i]=5 num[0]++
  4. 如果bills[i]=10 num[1]++ 这时候看是否有五元的储蓄 没有则返回false 有的话 num[0]–
  5. 依次类推
class Solution {
	    public boolean lemonadeChange(int[] bills) {
	    	if(bills[0]>5) {
	    		return false;
	    	}
	    	int AllMoney=0;
	    	//num[0]存5 num[1]存10 num[2]存20
	    	int[] num=new int[3];
	    	for (int i = 0; i < bills.length; i++) {
				if(bills[i]==5) {
					num[0]++;
					 
				}else if(bills[i]==10) {
					num[1]++;
					 
					if(num[0]<1) {
						return false;
					}else {
						num[0]--;
					}
				}else {
					if(num[1]>0) {
						num[1]--;
						if(num[0]>0) {
							num[0]--;
						}else {
							return false;
						}
					}else {
						if(num[0]<3) {
							return false;
						}else {
							num[0]-=3;
						}
					}
				}
			}
			return true;
	    	
	     
	    }
	}

LeetCode:860. 柠檬水找零 贪心_第4张图片

你可能感兴趣的:(Java学习,算法,排序算法,java)