亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

[LeetCode] Max Sum of Rectangle No Larger Than K

2019-11-09 14:22:36
字體:
來源:轉載
供稿:網友

題目

Given a non-empty 2D matrix matrix and an integer k, find the max sum of a rectangle in the matrix such that its sum is no larger than k. Example: Given matrix = [ [1, 0, 1], [0, -2, 3] ] k = 2 The answer is 2. Because the sum of rectangle [[0, 1], [-2, 3]] is 2 and 2 is the max number no larger than k (k = 2).

這道題目其實是兩個子問題的結合,解決了這兩個子問題可以很容易的解決此題。

問題1:Max Sum of Rectangle In 2D Array.

也就是在一個二維數組中,尋找一個最大直方和。暴力解法就是取矩形對角兩點的元素,進行遍歷求和,復雜度是O(MNMN). 暴力循環可以通過動態規劃進行優化,用一個數組存儲當前矩形的累計和。如下圖: 這里寫圖片描述

綠色數組記錄了藍色區域的和,通過數組記錄下之前的值避免了重復計算。在綠色數組中,尋找不大于k的最大和連續子數組,相當于在確定了藍色矩形左右邊界的情況下,通過修改上下邊界尋找最大和矩形。同樣,全遍歷二維數組每一列:

這里寫圖片描述

。。。 這里寫圖片描述

全遍歷后,則找出了全部矩形。

問題2:尋找不大于k的最大連續子數組和

如果不包含不大于k的限制,那么就是一個普通的dp問題。類似于leetcode上這道題目: stock問題。 對于不大k的,則是構建一個二插查找樹BST,java中對應可以使用TreeMap。對于一個數組,子數組(i,j]的和可以通過sum[0,j] - sum[0,i]來求出。在遍歷這個子數組的時候計算出當前的累加和 rightSum并加入到BST中,記leftSum為之前存儲在BST中的數,因為要求 rightSum - leftSum <=k,則有leftSum >= rightSum - k,同時leftSum越小,求和值rightSum-leftSum越大。所以去BST中找大于等于 rightSum-k的最小數leftSum,并更新全局最優,即得結果。

最終代碼如下:

public class Solution { public int maxSumSubmatrix(int[][] matrix, int k) { int row = matrix.length; int col = matrix[0].length; int res = Integer.MIN_VALUE; //子問題1,三個for循環全遍歷。 for (int i = 0;i < col;i++) { int[] arr = new int[row]; for (int j = i;j < col;j++) { int rightSum = 0; TreeSet<Integer> sums = new TreeSet<>(); sums.add(0); for (int l = 0; l < row;l++) { arr[l] += matrix[l][j]; //子問題二,尋找leftSum。計算最大和連續子數組 rightSum += arr[l]; Integer leftSum = sums.ceiling(rightSum - k); if (leftSum!=null) res = Math.max(res, rightSum - leftSum); sums.add(rightSum); } } } return res; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲直播在线一区| 久久亚洲精品成人| 91精品视频在线看| 精品成人乱色一区二区| 国产97在线|日韩| 中国日韩欧美久久久久久久久| 成人欧美一区二区三区在线| 亚洲综合第一页| 色与欲影视天天看综合网| 91免费版网站入口| 久久精品中文字幕| 亚洲深夜福利网站| 日韩av快播网址| 中文字幕成人在线| 国产精品久久久久久久av电影| 91av在线播放视频| 欧美三级免费观看| 日韩中文娱乐网| 亚洲成年人影院在线| 91影视免费在线观看| 国产精品美女主播在线观看纯欲| 国产美女久久久| 日韩精品极品视频免费观看| 狠狠干狠狠久久| 尤物精品国产第一福利三区| 欧美亚洲在线观看| 久久中文精品视频| 亚洲黄色在线看| 精品在线欧美视频| 亚洲三级av在线| 欧美日韩亚洲网| 国产欧美日韩专区发布| 国产精品永久在线| 4444欧美成人kkkk| 国产精品久久av| 成人有码视频在线播放| 国产一区二区欧美日韩| 久久精品美女视频网站| 欧美午夜www高清视频| 国产亚洲精品91在线| 日韩午夜在线视频| 国产精品美女午夜av| 成人激情视频在线播放| 成人激情av在线| 国产成人精品久久亚洲高清不卡| 5566成人精品视频免费| 日韩av电影院| 日韩av中文字幕在线| 国产女精品视频网站免费| 国产欧美在线观看| 成人福利网站在线观看11| 97视频在线观看免费高清完整版在线观看| 日韩精品在线播放| 日韩欧美在线网址| 久久久久久久香蕉网| 久久久人成影片一区二区三区| 91精品一区二区| 久久成人一区二区| 亚洲永久免费观看| 亚洲视频在线观看免费| 这里只有精品久久| 91精品国产高清久久久久久91| 亚洲天堂av在线免费| 成人美女免费网站视频| 清纯唯美亚洲激情| 岛国av一区二区在线在线观看| 国产精品福利在线观看网址| 久久精品最新地址| 韩国精品美女www爽爽爽视频| 亚洲电影免费观看高清完整版| 欧美视频在线观看 亚洲欧| 自拍亚洲一区欧美另类| 中文字幕日韩免费视频| 91精品国产高清自在线看超| …久久精品99久久香蕉国产| 久久五月天色综合| 精品久久久久久中文字幕大豆网| 日韩欧美在线第一页| 亚洲一区二区三区xxx视频| 一区二区三区在线播放欧美| 亚洲视频综合网| 一区二区三区www| 欧美性猛交xxxxx水多| 久久免费精品日本久久中文字幕| 最近日韩中文字幕中文| 亚洲男女性事视频| 日韩中文理论片| 曰本色欧美视频在线| 亚洲欧美变态国产另类| 在线免费观看羞羞视频一区二区| 欧美性极品少妇精品网站| 日本aⅴ大伊香蕉精品视频| 国产精品video| 国产精品ⅴa在线观看h| 国产亚洲激情在线| 精品成人乱色一区二区| 日韩av在线精品| 在线日韩精品视频| 欧美中文字幕在线观看| 久久久久久久香蕉网| 国产精品视频最多的网站| 日韩中文字幕在线| 亚洲午夜精品久久久久久久久久久久| 国产视频欧美视频| 欧美性猛交丰臀xxxxx网站| 欧美高清一级大片| 国产精品一区二区三区免费视频| 北条麻妃久久精品| 日韩中文字幕欧美| 久久精品视频在线观看| 国产精品91免费在线| 久久久久久国产精品三级玉女聊斋| 亚洲免费伊人电影在线观看av| 日韩成人中文字幕在线观看| 亚洲石原莉奈一区二区在线观看| 日韩欧美精品网站| 国产精品av网站| 亚洲精品久久久久久久久久久| 中文字幕成人精品久久不卡| 欧美日韩国产在线播放| 一区二区三区四区精品| 精品一区二区三区四区| 国产午夜精品理论片a级探花| 欧美性生交xxxxx久久久| 亚洲国产第一页| 这里只有精品视频在线| 国产日韩精品电影| 日韩中文字幕不卡视频| 久久成人精品一区二区三区| 国产精品27p| 亚洲欧美另类国产| 91九色国产视频| 欧美在线视频在线播放完整版免费观看| 国产精品88a∨| 成人激情av在线| 欧美超级乱淫片喷水| 精品爽片免费看久久| 国产一区二区三区高清在线观看| 91色p视频在线| 精品国产精品三级精品av网址| 欧美夫妻性生活xx| 亚洲精品国产美女| 欧美日韩国产va另类| 美女精品视频一区| 亚洲xxxx视频| 国产精品自产拍在线观| 欧美在线xxx| 成人h片在线播放免费网站| 免费av在线一区| 福利一区视频在线观看| 欧美麻豆久久久久久中文| 午夜精品久久久久久久久久久久久| 亚洲成人网在线观看| 成人免费观看a| 国产成人精彩在线视频九色| 精品久久久免费| 97在线看免费观看视频在线观看| 国产精品一区二区三区在线播放| 91免费人成网站在线观看18| 91系列在线观看| 岛国av一区二区| 成人国产亚洲精品a区天堂华泰| 亚洲精品美女久久| 91伊人影院在线播放|