地域划分
地域劃分
解題
暴露遍歷所有的可能,選取最小的和
開始劃分的位置是 -1,這里參考討論中分享的答案 import java.util.*;public class Partition {public int[] getPartition(int[][] land, int n, int m) {// write code hereint sum = Integer.MAX_VALUE;int bestSplit = 0;for(int col = -1;col< n;col++){int AB = 0;for(int i = 0;i< m;i++){// 0 - col 的劃分 求 是A 評價成B的次數for(int j =0;j<= col;j++){if(land[i][j] == 1){AB++;}}// col + 1 - lenfor(int j =col+1;j<n;j++){if(land[i][j] == 0){AB++;}}}if(AB < sum){sum = AB;bestSplit = col +1 ;}}return new int[]{bestSplit,bestSplit+1};} }
現在有一塊長條形的土地,這個土地我們可以看成是由n塊小方格連接而成的(這些小方格我們可以將之編號為1到n)。而我們需要將其劃分成兩個部分,分別種上不同的作物(即作物A和B),劃分必須在某兩個小方格之間進行,或者在土地的最左端或最右端,若劃分在第i塊到第i+1塊間進行,則劃分后,第1至第i塊地種A,剩下的地種B。現在有一些專家對土地進行了檢測,他們每個人評估了每塊土地適合種的作物。請你找到一個合適的劃分,使得其與所有專家的評估最吻合,也就是說,你劃分到A而專家評估為B的次數和你劃分到B而專家評估為A的次數之和最小。
輸入描述:
每組數據給定一個專家評估表land(其中0為評估A,1為評估B),以及小塊數量n(1≤n≤300),專家評估次數m(1≤m≤300)輸出描述:
請返回你的劃分,即i和i+1。若在最左端,則輸出0,1;在最右端則輸出n,n+1。若有多解輸出最靠左的劃分。輸入例子:
[[1,1,1,1],[0,0,0,0],[1,0,1,1]],4,3輸出例子:
[0,1]解題
暴露遍歷所有的可能,選取最小的和
開始劃分的位置是 -1,這里參考討論中分享的答案 import java.util.*;public class Partition {public int[] getPartition(int[][] land, int n, int m) {// write code hereint sum = Integer.MAX_VALUE;int bestSplit = 0;for(int col = -1;col< n;col++){int AB = 0;for(int i = 0;i< m;i++){// 0 - col 的劃分 求 是A 評價成B的次數for(int j =0;j<= col;j++){if(land[i][j] == 1){AB++;}}// col + 1 - lenfor(int j =col+1;j<n;j++){if(land[i][j] == 0){AB++;}}}if(AB < sum){sum = AB;bestSplit = col +1 ;}}return new int[]{bestSplit,bestSplit+1};} }
?
?轉載于:https://www.cnblogs.com/theskulls/p/5414723.html
總結
- 上一篇: 攻打医院服务器的SamSam勒索木马分析
- 下一篇: u盘里资料变乱码怎么办 U盘资料乱码怎么