a. easy b. greedy problem, seems as 330
This commit is contained in:
		
							
								
								
									
										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; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user