完成了两道dp题
This commit is contained in:
parent
9a570843c4
commit
fd0dc19352
40
01背包.cpp
Normal file
40
01背包.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Solution {
|
||||
public:
|
||||
int knapsack(int V, vector<vector<int>>& vw) {
|
||||
sort(vw.begin(),vw.end(),[](vector<int> a,vector<int> b){
|
||||
return a[0] < b[0];
|
||||
});
|
||||
|
||||
vector<vector<int>> dp(vw.size() + 1,vector<int>(V + 1,0));
|
||||
|
||||
for(int i = 1 ;i <= vw.size();i++){
|
||||
for(int j = 1;j < vw[i-1][0];j++){
|
||||
dp[i][j] = dp[i-1][j];
|
||||
//cout << dp[i][j] << " ";
|
||||
}
|
||||
//cout << "change";
|
||||
for(int j = vw[i-1][0];j <= V;j++){
|
||||
dp[i][j] = max(dp[i-1][j],vw[i-1][1] + dp[i-1][j - vw[i-1][0]]);
|
||||
cout << dp[i][j] << ":" << j << " ";
|
||||
}
|
||||
//cout << endl;
|
||||
}
|
||||
|
||||
return dp[vw.size()][V];
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
int main(){
|
||||
Solution mysolution;
|
||||
vector<vector<int>> array = {{1,3},{10,4}};
|
||||
|
||||
cout << mysolution.knapsack(10,array);
|
||||
return 0;
|
||||
}
|
28
PrintMinNumber.cpp
Normal file
28
PrintMinNumber.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <list>
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Solution {
|
||||
public:
|
||||
string PrintMinNumber(vector<int>& numbers) {
|
||||
sort(numbers.begin(),numbers.end(),[](int a,int b){
|
||||
return stoi(to_string(a) + to_string(b)) < stoi(to_string(b) + to_string(a));
|
||||
});
|
||||
string result = "";
|
||||
for(auto &i:numbers){
|
||||
result += to_string(i);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
int main(){
|
||||
vector<int> nums = {3,33,3334,33332};
|
||||
Solution solution;
|
||||
cout << solution.PrintMinNumber(nums) << endl;
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user