新的"复仇者"电影刚刚发布!电影票房中有很多人站在一条巨大的线上。他们每人都有100,50或25美元的账单。 A"复仇者"门票费25美元。
Vasya目前是一名职员。他想向这一行中的每个人出售一张票。
瓦西亚可以向每个人出售一张票,如果他最初没有钱就给出改变,并严格按照人们在线下的顺序出售门票吗?
如果Vasya可以向每个人出售门票并进行更改,则返回YES。否则返回NO。
例如
Line.Tickets(new int[] {25, 25, 50}) // => YES
我能够从11个中传递10个测试用例但是对于1个测试用例,它表明我的结果是错误的。
说,
输入=> Line.Tickets(new int[] {25,50,25,100})
我的代码的输出=
NO
如果第一个人有25 $ bill-> count25 = 1并且count50 = 0,如果第二个人有50美元账单 - > count50 = 1并且count25 = 0,如果第三个人有25 $ bill-> count50 = 1且count25 = 1,如果第四人有100 $ bill-> count50 = 0且count25 = 0
public class Line {
public static String Tickets(int[] peopleInLine) {
int count25 = 0;
int count50 = 0;
for (int i = 0; i < peopleInLine.length; i++) {
if (peopleInLine[i] == 100) {
if (count25 == 1 && count50 > 0) {
count25 = count25 - 1;
count50 = count50 - 1;
}
if (count25 >= 3) {
count25 = count25 - 3;
} else {
return "NO";
}
}
if (peopleInLine[i] == 25) {
count25 = count25 + 1;
}
if (peopleInLine[i] == 50) {
count50 = count50 + 1;
count25 = count25 - 1;
if (count25 < 0) {
return "NO";
}
}
}
return "YES";
}
}
答案 0 :(得分:0)
如果第一个if语句(if(count25>=3)
)评估为if(count25==1&&count50>0)
,则不应评估100美元钞票案例(true
)中的第二个if语句。
使用else if
作为第二个条件:
if (peopleInLine[i] == 100) {
if(count25 == 1 && count50 > 0) {
count25--;
count50--;
} else if (count25 >= 3) {
count25-=3;
} else {
return "NO";
}
}
答案 1 :(得分:0)
private static String checkTicketChangePossible(int[] ticketPrices){
String returnValue = "YES";
int bill_25 = 0;
int bill_50 = 0;
for(int i= 0; i< ticketPrices.length; i++){
if(ticketPrices[i] == 25){
bill_25 += 1;
}
if(ticketPrices[i] == 50){
bill_25 -= 1;
bill_50 += 1;
}
if(ticketPrices[i] == 100){
if(bill_50 == 0 && bill_25 >3){
bill_25 -= 3;
}else{
bill_25 -= 1; bill_50 -= 1;
}
}
if(bill_25 < 0 || bill_50 <0){
returnValue = "NO";
break;
}
}
return returnValue;
}
答案 2 :(得分:0)
function ShowFinalSQL(const qry: TFDQuery): String;
var
cSQL: String;
oItem: TCollectionItem;
oParam: TFDParam absolute oItem;
begin
cSQL := qry.SQL.Text;
for oItem in qry.Params do
begin
cSQL := cSQL.Replace(oParam.Name, oParam.Value);
end;
Result := cSQL;
end;