今天的每日一题写的很low,居然没想到鸡兔同笼,还傻傻的模拟!
()我的愚蠢写法:(超时)
class Solution {
public List<Integer> numOfBurgers(int tomatoSlices, int cheeseSlices) {
List<Integer> ans = new ArrayList<>();
int tomatoMaxv = tomatoSlices / 4;
for (int i = tomatoMaxv; i >= 0; i--) {
if (i * 4 > tomatoSlices) continue;
int humTomatoNum = i * 4;
int humCheeseNum = i;
int queenTomatoNum = tomatoSlices - humTomatoNum;
int queenCheeseNum = cheeseSlices - humCheeseNum;
if (humTomatoNum % 4 == 0 && queenTomatoNum % 2 == 0 && queenTomatoNum / 2 == queenCheeseNum) {
ans.add(humTomatoNum / 4);
ans.add(queenTomatoNum / 2);
}
}
return ans;
}
}
鸡兔同笼,公式优化:
假设番茄堡x个,小皇堡y个,可以得出x,y的结果,用题目给的代替,再判断x,y是否符合题目要求,最后返回值
class Solution {
public List<Integer> numOfBurgers(int tomatoSlices, int cheeseSlices) {
List<Integer> ans = new ArrayList<>();
int x, y;//巨无霸汉堡x,小皇堡y
x = tomatoSlices / 2 - cheeseSlices;
y = 2 * cheeseSlices - tomatoSlices / 2;
if (4 * x + 2 * y == tomatoSlices && x + y == cheeseSlices && x >= 0 && y >= 0) {
ans.add(x);
ans.add(y);
return ans;
}
return ans;
}
}