a. easy b. greedy problem, seems as 330
This commit is contained in:
parent
b3d15f5983
commit
f459721c1f
32
contest-20231203/2951/main.cpp
Normal file
32
contest-20231203/2951/main.cpp
Normal file
@ -0,0 +1,32 @@
|
||||
#include<stdcpp.h>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
vector<int> findPeaks(vector<int>& mountain) {
|
||||
vector<int>rlt;
|
||||
const int len = mountain.size();
|
||||
for(int i = 1 ; i < mountain.size() - 1; i++){
|
||||
if(mountain[i] > mountain[i-1] && mountain[i] > mountain[i+1])
|
||||
rlt.push_back(i);
|
||||
}
|
||||
|
||||
return rlt;
|
||||
}
|
||||
};
|
||||
int main(){
|
||||
Solution sol;
|
||||
|
||||
vector<int> ex1 = {2,4,4};
|
||||
vector<int>rlt1 = sol.findPeaks(ex1);
|
||||
for(int i = 0 ; i <rlt1.size();i++)
|
||||
cout<<rlt1[i]<<' ';
|
||||
cout<<endl;
|
||||
|
||||
vector<int> ex2 = {1,4,3,8,5};
|
||||
vector<int>rlt2 = sol.findPeaks(ex2);
|
||||
for(int i = 0 ; i <rlt2.size();i++)
|
||||
cout<<rlt2[i]<<' ';
|
||||
cout<<endl;
|
||||
|
||||
return 0;
|
||||
}
|
42
contest-20231203/2952/main.cpp
Normal file
42
contest-20231203/2952/main.cpp
Normal file
@ -0,0 +1,42 @@
|
||||
#include<stdcpp.h>
|
||||
using namespace std;
|
||||
class Solution {
|
||||
public:
|
||||
int minimumAddedCoins(vector<int>& coins, int target) {
|
||||
const int len = coins.size();
|
||||
sort(coins.begin(), coins.end());
|
||||
int express = 0;
|
||||
int idx = 0;
|
||||
int ans = 0;
|
||||
while(express < target){
|
||||
if(idx < len && express+1 >= coins[idx]){
|
||||
express += coins[idx++];
|
||||
}else{
|
||||
ans++;
|
||||
express += express + 1;
|
||||
}
|
||||
}
|
||||
cout<<ans<<endl;
|
||||
return ans;
|
||||
}
|
||||
};
|
||||
int main(){
|
||||
Solution sol;
|
||||
|
||||
vector<int> ex1 = {1,4,10};
|
||||
int target1 = 19;
|
||||
sol.minimumAddedCoins(ex1,target1);
|
||||
|
||||
vector<int> ex2 = {1,4,10,5,7,19};
|
||||
int target2 = 19;
|
||||
sol.minimumAddedCoins(ex2,target2);
|
||||
|
||||
vector<int> ex3 = {1,1,1};
|
||||
int target3 = 20;
|
||||
sol.minimumAddedCoins(ex3,target3);
|
||||
|
||||
vector<int> ex4 = {1};
|
||||
int target4 = 100000;
|
||||
sol.minimumAddedCoins(ex4,target4);
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user