*min_element
*max_element
例子:三角形最小路径之和
class Solution {
public:
int minimumTotal(vector<vector<int>>& triangle) {
int m=triangle.size();
//int n=triangle[0].size();
int Min=1e9;
vector<vector<int>> dp(triangle);
cout<<dp[0][0]<<" "<<dp[1][0]<<" "<<dp[1][1];
dp[0][0]=triangle[0][0];
for(int i=1;i<m;i++)
{
dp[i][0]=dp[i-1][0]+triangle[i][0];
for(int j=1;j<=i;j++)
{
if(j==i)
{
dp[i][j]=dp[i-1][j-1]+triangle[i][j];
}
else
{
dp[i][j]=min(dp[i-1][j],dp[i-1][j-1])+triangle[i][j];
}
}
}
// for(int i=0;i<n;i++)
// {
// Min=min(dp[m-1][i],Min);
// }
// return Min;
return *min_element(dp[m-1].begin(),dp[m-1].end());
}
};