2023-11-22

题目传送门:2304. 网格中的最小路径代价 - 力扣(LeetCode)

一道比较简单的dp刷表题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<bits/stdc++.h>
using namespace std;
class Solution {
public:
int minPathCost(vector<vector<int>>& grid, vector<vector<int>>& moveCost) {
int m = grid.size(), n = grid[0].size();
vector<vector<int>> dp(m, vector<int>(n, 0));
for(int i=0;i<n;++i) dp[0][i] = grid[0][i];
for(int i=1;i<m;++i){
for(int j=0;j<n;++j){
for(int k=0;k<n;++k){
if(k==0) dp[i][j] = dp[i-1][k] + moveCost[grid[i-1][k]][j] + grid[i][j];
else dp[i][j] = min(dp[i][j],dp[i-1][k] + moveCost[grid[i-1][k]][j] + grid[i][j]);
}
}
}
int maxx = dp[m-1][0];
for(int i=0;i<n;++i) maxx = min(maxx,dp[m-1][i]);
return maxx;
}
};
int main(){
vector<vector<int>> grid = {{5,3},{4,0},{2,1}},moveCost = {{9,8},{1,5},{10,12},{18,6},{2,4},{14,3}};
cout<<Solution().minPathCost(grid,moveCost)<<endl;
return 0;
}

2023-11-24

题目传送门:2824. 统计和小于目标的下标对数目 - 力扣(LeetCode)

非常基本的一道签到题目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<bits/stdc++.h>
using namespace std;
class Solution {
public:
int countPairs(vector<int>& nums, int target) {
int n = nums.size(),cnt=0;
for(int i=0;i<n;++i){
for(int j=i+1;j<n;++j){
if(nums[i]+nums[j] < target)
++cnt;
}
}
return cnt;
}
};
int main() {
vector<int> nums = {-1, 1, 2, 3, 1};
int target = 2;
cout<<Solution().countPairs(nums, target);
return 0;
}

本站由 @anonymity 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。