50,342
社区成员




public static void main(String[] args) {
int arr1[]={100,80,200,0,400,0,100,300}; //需求数按日期排列
int arr2[]={300,0,300,0,0,0,500,0}; //回复数按日期排列并且合并
//String arrInfo[]={"1","2","3","4","5"};
CollcetionUtil cu=new CollcetionUtil();
System.out.println("需求数="+Arrays.toString(arr1));
System.out.println("实际数="+Arrays.toString(arr2));
System.out.println("回复数="+Arrays.toString(cu.MergeArray(arr1,arr2)));
}
public int[] MergeArray(int[] arr1, int[] arr2) {
int[] arr3=new int[arr1.length];
for(int i=0;i<arr1.length;i++){
if(arr2[i]>=arr1[i]){
arr3[i]=arr1[i];
if(i<arr1.length-1){
arr2[i+1]+=arr2[i]-arr1[i];
}
}else{
arr3[i]=arr2[i];
if(i<arr1.length-1){
arr1[i+1]+=arr1[i]-arr2[i];
}
}
}
return arr3;
}
public static void main(String[] args) {
int arr1[]={100,80,200,0,400,0,100,300}; //需求数按日期排列
int arr2[]={300,0,300,0,0,0,500,0}; //回复数按日期排列并且合并
//String arrInfo[]={"1","2","3","4","5"};
//CollcetionUtil cu=new CollcetionUtil();
System.out.println("需求数="+Arrays.toString(arr1));
System.out.println("实际数="+Arrays.toString(arr2));
System.out.println("回复数=[100, 80, 200, 0, 220, 0, 280, 220]");
//System.out.println("回复数="+Arrays.toString(MergeArray(arr1,arr2)));
System.out.println("回复数=");
String[][] arr = MergeArray2(arr1,arr2);
for(String[] temp: arr){
System.out.println((temp[0] == null ? 0 : temp[0]) + " " + (temp[1] == null ? "" : temp[1]) + ",");
}
}
public static String[][] MergeArray2(int[] arr1, int[] arr2){
String[][] arr3 = new String[arr1.length][2];
int cur = 0;
int last_i = 0;
for(int i = 0; i < arr1.length; i++){
int i_val = arr1[i] + last_i;
int j = cur;
for(; j < arr2.length && j <= i && i_val > 0; j++){
arr3[i][0] = Integer.valueOf(arr3[i][0] == null ? "0" : arr3[i][0]) + (i_val > arr2[j] ? arr2[j] : i_val) + "";
if((i_val > arr2[j] ? arr2[j] : i_val) != 0)
arr3[i][1] = (arr3[i][1] == null && arr2[j] != 0 ? "" : arr3[i][1]) + "【arr2 第 " + j + " 下标:" + (i_val > arr2[j] ? arr2[j] : i_val) + "】";
int temp_j = arr2[j];
arr2[j] = i_val > arr2[j] ? 0 : arr2[j] - i_val;
i_val = i_val > temp_j ? i_val - temp_j : 0;
}
cur = arr2[j - 1] == 0 ? j : j - 1;
last_i = i_val;
}
return arr3;
}
需求数=[100, 80, 200, 0, 400, 0, 100, 300]
实际数=[300, 0, 300, 0, 0, 0, 500, 0]
回复数=[100, 80, 200, 0, 220, 0, 280, 220]
回复数=
100 【arr2 第 0 下标:100】,
80 【arr2 第 0 下标:80】,
200 【arr2 第 0 下标:120】【arr2 第 2 下标:80】,
0 ,
220 【arr2 第 2 下标:220】,
0 ,
280 【arr2 第 6 下标:280】,
220 【arr2 第 6 下标:220】,