题目大概为:
这是我的面试题,只记得大概
预定货物,货物1-(n-1)是编号,[i,j,k]代表的是编号从i到j,k为数量,最后求的一个数组,数组下标为货物编号,数组里面的值代表数量
例如:
输入list=[[2,4,10],[1,3,15],[3,5,10]]; n=6;
输出为:[0,15,25,35,20,10]
解析
从题目入手,[2,4,10]代表的意思是2,3,4这三种编号的货物数量都是10;现在创建好一维数组,等待放值,给下标为2,3,4对应的元素值分别加10就行,其余的以此类推
下边是Java代码`
package 面试金典;
public class test002 {
public static void main(String[] args) {
int[][] arr= {{2,4,10},{1,3,15},{3,5,10}};
int[] newArr=new int[6];
for(int i=0;i<3;i++) {
int m1=arr[i][0];
int m2=arr[i][1];
for(int k=m1;k<=m2;k++) {
newArr[k]+=arr[i][2];
}
}
for(int i=0;i<6;i++) {
System.out.print(newArr[i]+" ");
}
}
}
C代码
#include<stdio.h>//头文件
void main(){//主函数
int arr[][3]= {{2,4,10},{1,3,15},{3,5,10}};
int newArr[6]={};
int i,j,k;
for(i=0;i<3;i++) {
int m1=arr[i][0];
int m2=arr[i][1];
for(k=m1;k<=m2;k++) {
newArr[k]+=arr[i][2];
}
}
for(j=0;j<6;j++) {
printf("%d ",newArr[j]);
}
}