当N = 0,输入结束。
思路:将题目抽象为求某段线段上,每个点发生某件事的个数,可使用差分数组
差分数组公式:arr[s]=1; srr[e+1]=-1; 更新完成之后整体遍历:arr[i] += arr[i-1];
package basic_data_structure; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; /** * @author XA-GDD * ** 思路:将题目抽象为求某段线段上,每个点发生某件事的个数,可使用差分数组 * 差分数组公式:arr[s]=1; srr[e+1]=-1; 更新完成之后整体遍历:arr[i] += arr[i-1]; * */ public class G_ColorTheBall { static int N,a,b; static int []srcArr = new int[100002]; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = null; String str; while((str = br.readLine()) != null){ N = Integer.parseInt(str); if(N>0) { Arrays.fill(srcArr,0); for(int i=0;i<N;i++) { st = new StringTokenizer(br.readLine()); a = Integer.parseInt(st.nextToken()); b = Integer.parseInt(st.nextToken()); srcArr[a]++; srcArr[b+1]--; } for(int i=1;i<=N;i++) { srcArr[i] += srcArr[i-1]; System.out.print(srcArr[i]+" "); } System.out.print("\n"); }else { break; } } } }