Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //https://leetcode.com/problems/largest-submatrix-with-rearrangements/
- class Solution {
- bool CustomComparator(const std::vector<int> & a, const std::vector<int> & b) {
- bool result = true;
- for(int i = 0; i < a.size(); ++i) {
- if(a[i] > b[i]) {
- result = false;
- break;
- }
- }
- return result;
- }
- public:
- int largestSubmatrix(vector<vector<int>>& matrix) {
- for(int i = 0; i < matrix[0].size(); ++i) {
- int sum = 0;
- for(int j = 0; j < matrix.size(); ++j) {
- sum = (matrix[j][i] == 0) ? 0 : (sum + 1);
- //std::cout << matrix[j][i] << ",";
- matrix[j][i] = sum;
- //std::cout << sum << " ";
- }
- //std::cout << "\n";
- }
- int ans = 0;
- for(int i= 0; i < matrix.size(); ++i) {
- // sort the current in descending order
- std::sort(matrix[i].begin(), matrix[i].end() , std::greater<int>());
- for(int j = 0; j < matrix[i].size(); ++j) {
- ans = std::max(ans, matrix[i][j] * (j+1));
- }
- }
- return ans;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement