<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
題目連結:1252. 奇數值單元格的數目
給你一個 m x n 的矩陣,最開始的時候,每個單元格中的值都是 0。
另有一個二維索引陣列 indices,indices[i] = [ri, ci] 指向矩陣中的某個位置,其中 ri 和 ci 分別表示指定的行和列(從 0 開始編號)。
對 indices[i] 所指向的每個位置,應同時執行下述增量操作:
進階: 你可以設計一個時間複雜度為 O(n + m + indices.length) 且僅用 O(n + m) 額外空間的演演算法來解決此問題嗎?
提示:
1 <= m, n <= 50
1 <= indices.length <= 100
0 <= ri < m
0 <= ci < n
範例 1:
輸入:m = 2, n = 3, indices = [[0,1],[1,1]]
輸出:6
解釋:最開始的矩陣是 [[0,0,0],[0,0,0]]。
第一次增量操作後得到 [[1,2,1],[0,1,0]]。
最後的矩陣是 [[1,3,1],[1,3,1]],裡面有 6 個奇數。
範例 2:
輸入: m = 2, n = 2, indices = [[1,1],[0,0]]
輸出: 0
解釋: 最後的矩陣是 [[2,2],[2,2]],裡面沒有奇數。
題目給定一個 m x n 的矩陣,矩陣中每個元素最開始都為 0,然後給定一個二維陣列 indices,陣列中每個元素包含兩個值 indices[i][0] 和 indices[i][1],分別表示對 m x n 的矩陣的第 indices[i][0] 行和第 indices[i][1] 列進行加一操作。
在執行完所有 indices 指定的增量操作後,返回矩陣中 奇數值單元格 的數目。
需要注意行和列重疊的地方是累計加的
觀察題目資料範圍較小,採用較為暴力的模擬也是可以通過的,但是我們這裡按照進階的標準來進行解題,時間複雜度為 O(n + m + indices.length) 且僅用 O(n + m) 額外空間的演演算法來解決此問題。
考慮到對於每一行和每一列來說,如果在 indices 中出現偶數次那麼就相當於沒有出現,所以我們可以統計在 indices 中行和列出現奇數的次數,這裡令統計好的行和列分別記為:
為什麼要 * 2:是因為在 sumr * n 和 sumc * m 的時候分別加了一次相交的部分,總共就是加了兩次,所以需要 * 2
class Solution { public: int oddCells(int m, int n, vector<vector<int>>& indices) { //統計被加上奇數次的行和列 int sr[m], sc[n]; memset(sr, 0, sizeof(sr)); memset(sc, 0, sizeof(sc)); int sumr, sumc; sumr = sumc = 0; for(auto &v : indices){ //如果為偶數次就是 0,奇數次為 1,用互斥或來變化0和1 sr[v[0]] ^= 1; //統計奇數次的行 if(sr[v[0]]) sumr++; else sumr--; sc[v[1]] ^= 1; //統計奇數次的列 if(sc[v[1]]) sumc++; else sumc--; } //奇數次行個數加上奇數次列個數,減去相交為偶數次的點,因為加了兩遍所以要 *2 int ans = sumr * n + sumc * m - sumr * sumc * 2; return ans; } };
測試結果:
以上就是C++實現leetcode 1252奇數值單元格的數目題解的詳細內容,更多關於C++奇數值單元格的數目的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45