Re: [閒聊] 每日LeetCode已回收

看板Marginalman作者 (是oin的說)時間1年前 (2024/01/28 17:05), 編輯推噓1(106)
留言7則, 3人參與, 1年前最新討論串624/719 (看更多)
今天是問 在一個2d的陣列裡面 有多少個子陣列加起來==target 我用prefix sum做的 然後我剛剛看 好像可以用hashmap加上去做 好扯喔 class Solution { public: int numSubmatrixSumTarget(vector<vector<int>>& matrix, int target) { int ans = 0; vector<vector<int>> summat ; summat = matrix; int n = matrix[0].size(); int m = matrix.size(); for(int i = 1 ; i < n ; i ++) { summat[0][i] += summat[0][i-1]; } for(int i = 1 ; i < m ; i ++) { summat[i][0] += summat[i-1][0]; } for(int i = 1 ; i < m ; i ++) { for(int j = 1 ; j < n ; j ++) { summat[i][j] = summat[i][j] + summat[i-1][j] + summat[i][j-1] - summat[i-1][j-1]; } } for(int na = 0 ; na < n ; na ++) { for(int ma = 0 ; ma < m ; ma ++) { for(int nb = na ; nb < n ; nb ++) { for(int mb = ma ; mb < m ; mb ++) { int k = 0 ; if((na > 0)&&(ma > 0)) { k = summat[mb][nb] - summat[mb][na-1] - summat[ma-1] [nb] + summat[ma-1][na-1]; } else if(na > 0) { k = summat[mb][nb] - summat[mb][na-1] ; } else if(ma > 0) { k = summat[mb][nb] - summat[ma-1][nb] ; } else { k = summat[mb][nb] ; } if(k == target) ans ++; } } } } return ans; } }; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.0.147 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1706432707.A.3C0.html

01/28 17:06, 1年前 , 1F
==
01/28 17:06, 1F

01/28 17:06, 1年前 , 2F
4層迴圈也能過ㄛ 好狠
01/28 17:06, 2F

01/28 17:06, 1年前 , 3F
= =
01/28 17:06, 3F

01/28 17:07, 1年前 , 4F
對ㄚ 好爽
01/28 17:07, 4F

01/28 17:07, 1年前 , 5F
而且我還beat 66% 其他人是在幹三小
01/28 17:07, 5F

01/28 17:08, 1年前 , 6F
好像是因為這個才100*100 所以頂多10000*10000 穩的
01/28 17:08, 6F

01/28 17:14, 1年前 , 7F
大師
01/28 17:14, 7F
文章代碼(AID): #1bjXZ3F0 (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1bjXZ3F0 (Marginalman)