<prompt> Kwa kuzingatia matrix ya 2D, shughulikia hoja nyingi za aina ifuatayo: Kokotoa jumla ya vipengee vya matrix ndani ya mstatili unaofafanuliwa na kona yake ya juu kushoto safu1, col1 na kona ya chini kulia safu2, col2 .Tekeleza darasa la NumMatrix: NumMatrixint matrix Huanzisha kitu kwa matrix kamili. int sumRegionint row1, int col1, int row2, int col2 Hurejesha jumla ya vipengele vya matrix ndani ya mstatili unaofafanuliwa kwa kona yake ya juu kushoto safu1, col1 na kona ya chini kulia safu2, col2.Ni lazima utengeneze algoriti ambapo sumRegion inafanya kazi kwa uchangamano wa wakati O1.Mfano wa 1:Ingizo NumMatrix , sumRegion , sumRegion , sumRegion 3, 0, 1, 4, 2, 5, 6, 3, 2, 1, 1, 2, 0, 1, 5, 4, 1, 0, 1, 7, 1, 0, 3, 0, 5, 2, 1, 4, 3, 1, 1, 2, 2, 1, 2, 2, 4Patonull, 8, 11, 12UfafanuziNumMatrix numMatrix NumMatrix mpya3, 0, 1, 4, 2, 5, 6, 3, 2, 1, 1, 2, 0, 1, 5, 1, 2, 0, 1, 5, 4, 1, 0, 1, 7, 1, 0, 3, 0, 5;numMatrix.sumRegion2, 1, 4, 3; kurudi 8 yaani jumla ya mstatili nyekundunumMatrix.sumRegion1, 1, 2, 2; kurudi 11 yaani jumla ya mstatili wa kijaninumMatrix.sumRegion1, 2, 2, 4; kurudi 12 yaani jumla ya mstatili wa bluuVikwazo: m matrix.length n matrixi.urefu 1 m, n 200 -104 matrixij 104 0 safu1 safu2 m 0 col1 col2 n Simu zisizozidi 104 zitapigiwa sumRegion.  <response>: chatudarasa la NumMatrix: def __init__binafsi, matrix: OrodhaOrodhaint: m, n lenimatrix, lenimatrix0 self.dp 0 n 1 kwa _ masafam 1 kwa i katika masafa 1, m 1: kwa j katika safu1, n 1: self.dpij self.dpi - 1j self.dpij - 1 - self.dpi - 1j - 1 matrix i - 1j - 1 def sumRegionbinafsi, safu1: int, col1: int, safu2: int, col2: int - int: return self.dprow2 1col2 1 - self.dprow1col2 1 - self.dprow2 1col1 self.dprow1col1maelezoTunaweza kuchakata matrix mapema kwa kuunda safu ya 2D dp ili kuhifadhi jumla ya vipengele vyote kwenye mstatili kutoka 0, 0 hadi i, j kwa kila nafasi i, j. Kwa kila nafasi, tunaweza kukokotoa jumla kwa kutumia hesabu zilizokokotwa hapo awali: dpij dpi - 1j dpij - 1 - dpi - 1 j - 1 matrixi - 1j - 1. Kwa njia hii, tunahitaji tu kuhesabu jumla mara moja kwa kila mstatili.Baada ya kuchakata mapema, tunaweza kujibu swali sumRegionsafu1, col1, safu2, col2 kwa muda usiobadilika. Jumla ya vipengele katika mstatili wa hoja inaweza kuhesabiwa kama ifuatavyo: dprow2 1col2 1 - dprow1col2 1 - dprow2 1col1 dp safu1col1. Hii inafanywa kwa kuchukua jumla ya vipengele vyote katika mstatili kutoka 0, 0 hadi safu2, col2 na kisha kutoa hesabu za mistatili kutoka 0, 0 hadi safu1 - 1, col2 na kutoka 0, 0 hadi safu2, col1 - 1, na hatimaye kuongeza jumla ya mstatili kutoka 0, 0 hadi safu1 - 1, col1 - 1 ili kuepuka kutoa mara mbili. 