2850. 将石头分散到网格图的最少移动次数

avatar
作者
猴君
阅读量:0

2850. 将石头分散到网格图的最少移动次数


题目链接:2850. 将石头分散到网格图的最少移动次数

代码如下:

//参考链接:https://leetcode.cn/problems/minimum-moves-to-spread-stones-over-grid/solutions/2435313/tong-yong-zuo-fa-zui-xiao-fei-yong-zui-d-iuw8 class Solution  { public:     int minimumMoves(vector<vector<int>>& grid)      {         vector<pair<int,int>> from,to;         for(int i=0;i<grid.size();i++)         {             for(int j=0;j<grid[i].size();j++)             {                 if(grid[i][j])                 {                     for(int k=1;k<grid[i][j];k++)                     {                         from.emplace_back(i,j);                     }                 }                 else                 {                     to.emplace_back(i,j);                 }             }         }          int res=INT_MAX;         do         {             int total=0;             //枚举 from 的所有排列,与 to 匹配,即累加从 from[i] 到 to[i] 的曼哈顿距离。             for(int i=0;i<from.size();i++)             {                 total+=abs(from[i].first-to[i].first)+abs(from[i].second-to[i].second);             }             res=min(res,total);         }while(next_permutation(from.begin(),from.end()));//next_permutation用于获得下一个排列         return res;     } }; 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!