1.299. 猜数字游戏 - 力扣(LeetCode)
公牛还是挺好数的,奶牛。。。妈呀,一朝打回解放前
抓本质抓本质,有多少位非公牛数可以通过重新排列转换公牛数字,意思就是,当这个数不是公牛数字时,我们就分别统计它在secret和guess中的数量,然后取数量较少的作为奶牛数就好,因为它是可以调整位置的使它变成公牛数,多余的无法匹配再怎么调整位置也没办法把它变成公牛数。
class Solution {
public:
vector<string> fizzBuzz(int n) {
n += 1;
vector<string> answer(n);
for(int i = 1 ; i < n; i++){
if(i % 3 == 0 && i % 5 == 0){
answer[i] = "FizzBuzz";
}
else if(i % 3 == 0){
answer[i] = "Fizz";
}
else if(i % 5 == 0){
answer[i] = "Buzz";
}
else{
answer[i] = to_string(i);
}
}
return answer;
}
};
2.412. Fizz Buzz - 力扣(LeetCode)
匹配就好
class Solution {
public:
vector<string> fizzBuzz(int n) {
n += 1;
vector<string> answer;
for(int i = 1 ; i < n; i++){
if(i % 3 == 0 && i % 5 == 0){
answer.push_back("FizzBuzz");
}
else if(i % 3 == 0){
answer.push_back("Fizz");
}
else if(i % 5 == 0){
answer.push_back("Buzz");
}
else{
answer.push_back(to_string(i));
}
}
return answer;
}
};
3.506. 相对名次 - 力扣(LeetCode)
首先自己瞎掰扯了半天 感觉有点冗余 三元运算符还是见样学样的哈哈。。
class Solution {
public:
vector<string> findRelativeRanks(vector<int>& score) {
int n = score.size();
string medal[3] = {"Gold Medal", "Silver Medal", "Bronze Medal"};
vector<int> map(1000010);
vector<string> answer(n);
for(int i = 0; i < n; i++){
map[score[i]] = i;
}
sort(score.begin(), score.end());
reverse(score.begin(), score.end());
for(int i = 0; i < n; i++){
int site = map[score[i]];
answer[site] = i<3 ? medal[i] : to_string(i+1);
}
return answer;
}
};
后面看了别人的题解(下面这个
class Solution {
public:
vector<string> findRelativeRanks(vector<int>& score) {
int n = score.size();
string medal[3] = {"Gold Medal", "Silver Medal", "Bronze Medal"};
map<int,int> map;
vector<string> answer;
vector<int> a(score.begin(), score.end());
sort(a.begin(), a.end());
reverse(a.begin(), a.end());
for(int i = 0; i < n; i++){
map[a[i]] = i;
}
for(int i = 0; i < n; i++){
int rank = map[score[i]];
string res = rank<3 ? medal[rank] : to_string(rank+1);
answer.push_back(res);
}
return answer;
}
};
发现我跟人家想法不一样的是:我没有复制数组,先记录排序前原来的位置,然后在制造答案数组的时候遍历排序后的数组,根据记录的原来的位置放答案
人家是用一个新数组记录排序之后的数组 然后再遍历原数组的元素 根据排序之后的名次决定这个位置的答案数组中是什么结果