T1
题目
这种题没啥好讲的,直接放代码
class Solution {
public:
int maximumDifference(vector<int>& nums) {
int max=-1;
for(int i=0;i<nums.size()-1;i++){
for(int j=i+1;j<nums.size();j++){
if(nums[j]-nums[i]>max){
max=nums[j]-nums[i];
}
}
}
return max==0?-1:max;
}
};
T2
题目
一开始我就想歪了,以为是先让第一个机器走最大分数的那条路,虽然我的直觉认为这样是不对的,但是也没想到其他的办法,所以就直接利用dfs来写了
class Solution {
public:
int f[2][2]={{1,0},{0,1}};
vector<vector<int>> book1;
vector<vector<int>> book2;
vector<vector<int>> ans;
long long sum=0;
long long max1=0;
void dfs(int x,int y,vector<vector<int>>&grid){
if(x==1&&y==grid[0].size()-1){
if(sum>max1){
cout<<sum<<endl;
ans=book1;
max1=sum;
}
return;
}
for(int i=0;i<2;i++){
int tx=x+f[i][0];
int ty=y+f[i][1];
if(tx>1||tx<0||ty<0||ty>grid[0].size()-1)
continue;
if(!book1[tx][ty]){
book1[tx][ty]=1;
sum+=grid[tx][ty];
dfs(tx,ty,grid);
sum-=grid[tx][ty];
book1[tx][ty]=0;
}
}
}
long long gridGame(vector<vector<int>>& grid) {
vector<vector<int>> temp(2,vector<int>(50001));
book1=temp;
book2=temp;
ans=temp;
dfs(0,0,grid);
ans[0][0]=1;
for(int i=0;i<2;i++){
for(int j=0;j<grid[0].size();j++){
cout<<ans[i][j]<<" ";
}
cout<<endl;
}
ans[1][grid[0].size()-1]=1;
for(int i=0;i<2;i++){
for(int j=0;j<grid[0].size();j++){
if(ans[i][j]){
grid[i][j]=0;
}
}
}
max1 = 0;
dfs(0,0,grid);
int ret=0;
ans[0][0]=1;
for(int i=0;i<2;i++){
for(int j=0;j<grid[0].size();j++){
if(ans[i][j])
ret+=grid[i][j];
}
}
return ret;
}
};
结果就通过6个用例 后来看题解,发现其思路理清楚的话其实也不难~ 借用一位大佬的思路 看到好多大佬使用了前缀和,然后自己也学习了下 推荐学习博客:算法基础-前缀和 代码如下:
class Solution {
public:
long long gridGame(vector<vector<int>>& grid) {
vector<vector<long>>grid1(2,vector<long>(grid[0].size()));
for(int i=0;i<2;i++){
for(int j=0;j<grid[0].size();j++){
grid1[i][j]=grid[i][j];
}
}
for(int i=1;i<grid[0].size();i++){
grid1[0][i]+=grid1[0][i-1];
grid1[1][i]+=grid1[1][i-1];
}
int column=grid1[0].size()-1;
long long min=99999999999999;
for(int i=0;i<grid1[0].size();i++){
long long ret=max(grid1[0][column]-grid1[0][i],grid1[1][i]-grid[1][i]);
if(ret<min){
min=ret;
}
}
return min;
}
};
后言
后面的两题就没用看了,所以也就不打算写后两题,又是自己只做出来一题,还是有点难受啊,自己再接再励啊~
|