3070. Count Submatrices with Top-Left Element and Sum Less Than k
</> Solution
/**
* Problem: LeetCode 3070 - Count Submatrices with Top-Left Element and Sum Less Than k
* Difficulty: Medium
* Language: Java
* Author: CodeByTushu
*/
class Solution {
public int countSubmatrices(int[][] grid, int k) {
int m = grid.length;
int n = grid[0].length;
int count = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (i > 0) {
grid[i][j] += grid[i - 1][j];
}
if (j > 0) {
grid[i][j] += grid[i][j - 1];
}
if (i > 0 && j > 0) {
grid[i][j] -= grid[i - 1][j - 1];
}
if (grid[i][j] <= k) {
count++;
}
}
}
return count;
}
}
"""
Problem: LeetCode 3070 - Count Submatrices with Top-Left Element and Sum Less Than k
Difficulty: Medium
Language: Python
Author: CodeByTushu
"""
from typing import List
class Solution:
def countSubmatrices(self, grid: List[List[int]], k: int) -> int:
m = len(grid)
n = len(grid[0])
count = 0
for i in range(m):
for j in range(n):
if i > 0:
grid[i][j] += grid[i - 1][j]
if j > 0:
grid[i][j] += grid[i][j - 1]
if i > 0 and j > 0:
grid[i][j] -= grid[i - 1][j - 1]
if grid[i][j] <= k:
count += 1
return count
/**
* Problem: LeetCode 3070 - Count Submatrices with Top-Left Element and Sum Less Than k
* Difficulty: Medium
* Language: C++
* Author: CodeByTushu
*/
#include <vector>
using namespace std;
class Solution {
public:
int countSubmatrices(vector<vector<int>>& grid, int k) {
int m = grid.size();
int n = grid[0].size();
int count = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (i > 0) {
grid[i][j] += grid[i - 1][j];
}
if (j > 0) {
grid[i][j] += grid[i][j - 1];
}
if (i > 0 && j > 0) {
grid[i][j] -= grid[i - 1][j - 1];
}
if (grid[i][j] <= k) {
count++;
}
}
}
return count;
}
};
/**
* Problem: LeetCode 3070 - Count Submatrices with Top-Left Element and Sum Less Than k
* Difficulty: Medium
* Language: JavaScript
* Author: CodeByTushu
*/
/**
* @param {number[][]} grid
* @param {number} k
* @return {number}
*/
var countSubmatrices = function(grid, k) {
const m = grid.length;
const n = grid[0].length;
let count = 0;
for (let i = 0; i < m; i++) {
for (let j = 0; j < n; j++) {
if (i > 0) {
grid[i][j] += grid[i - 1][j];
}
if (j > 0) {
grid[i][j] += grid[i][j - 1];
}
if (i > 0 && j > 0) {
grid[i][j] -= grid[i - 1][j - 1];
}
if (grid[i][j] <= k) {
count++;
}
}
}
return count;
};