精華區beta Marginalman 關於我們 聯絡資訊
2661. First Completely Painted Row or Column ## 思路 先建表 num -> {r, c} 再跑arr, 用兩個陣列rows,cols紀錄該行列遇過的數字個數 如果都遇過(==lenC or lenR) 就回傳當前index ## Code ```cpp class Solution { public: int firstCompleteIndex(vector<int>& arr, vector<vector<int>>& mat) { int lenR = mat.size(), lenC = mat[0].size(); vector<pair<int, int>> table(lenR * lenC + 1); // num -> {R, C} for (int r = 0; r < lenR; ++r) { for (int c = 0; c < lenC; ++c) { table[mat[r][c]] = {r, c}; } } vector<int> rows(lenR, 0); vector<int> cols(lenC, 0); int n = arr.size(); for (int i=0; i < n; ++i) { auto& [r, c] = table[arr[i]]; if (++rows[r] == lenC || ++cols[c] == lenR) { return i; } } return n; } }; ``` -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 93.118.43.134 (日本) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1737380568.A.7C3.html