【Leetcode 每日一题】1605. 给定行和列的和求可行矩阵(medium)

1605. 给定行和列的和求可行矩阵


模拟就行了。我们遍历每一行的和,以当前列的和为限制,把这个和视为容量,每次都尽可能地把数值分下去。比如rowSum = [3,8], colSum = [4,7]。第一行的和是3,第一列的和是4,所以我们把3全部分配在第一行第一列。对应的,第一列的剩余容量要变化为1。第一行的数值全都分配掉了,所以剩下的全为0;接下来分配第二行,第二行数值为8,然而第一列剩余容量为1,所以第二行第一列只能分配1,剩余数值分配到其余列,以此类推。
至于为什么这样做是对的,因为题目保证了一定有解,而行列和就是根据某一结果计算得到的。用结果根据限制去推初始状态当然是有解且对的。

class Solution {
    
    
public:
    vector<vector<int>> restoreMatrix(vector<int>& rowSum, vector<int>& colSum) {
    
    
        int m=rowSum.size();
        int n=colSum.size();
        vector<vector<int>> res(m,vector<int> (n,0));
        for(int i=0;i<m;i++){
    
    
            for(int j=0;j<n;j++){
    
    
                if(rowSum[i]>colSum[j]){
    
    
                    res[i][j]=colSum[j];
                    rowSum[i]-=colSum[j];
                    colSum[j]=0;
                }
                else{
    
    
                    res[i][j]=rowSum[i];
                    colSum[j]-=rowSum[i];
                    rowSum[i]=0;
                    break;
                }
            }
        }
        return res;
    }
};



菩萨蛮【清·纳兰性德】
窗前桃蕊娇如倦,东风泪洗胭脂面。人在小红楼,离情唱《石州》。
夜来双燕宿,灯背屏腰绿。香尽雨阑珊,薄衾寒不寒。

  1. 石州:指乐府七调之一的商调曲名。商调之音凄怆哀怨,多表达凄清伤感之情。李商隐《代赠》:“东南日出照高楼,楼上离人唱《石州》。”
  2. 灯背屏腰绿:绿,指乌黑发亮的颜色,古诗词中多以之形容乌黑的头发。如唐李商隐《戏题枢言草阁三十二韵》:“年颜各少壮,发绿齿尚齐。”宋晏几道《生查子》:“君貌不长红,我鬓无重绿。”但此处引申为昏暗不明。即谓双燕背灯而宿,其双双身影落到了屏风中间(屏腰)会呈现出昏暗不明之景象。
  3. 雨阑珊:雨将尽。宋贺铸《小重山》:“歌断酒阑珊,画船箫鼓转,绿杨湾。”

猜你喜欢

转载自blog.csdn.net/qq_44623371/article/details/129538826