作业帮8.9面试
编程:分配内存
6 10
new 5
new 4
new 1
del
new 3
def
输出分配的块号
public class Main{ static class obj{ int lable; int flag; int num; public obj(int lable,int flag,int num) { this.flag=flag; this.lable=lable; this.num=num; } } public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int m=sc.nextInt(); CopyOnWriteArrayList<obj> list=new CopyOnWriteArrayList<>(); obj o=new obj(1,0,m); list.add(o); int item=1; for(int i=0;i<n;i++) { String str=sc.next(); int res=0; if(str.equals("new")) { int z=sc.nextInt(); for(obj j:list) { if(j.flag==0&&j.num>=z) { res=item; obj temp=new obj(item+1,0,j.num-z); j.flag=1;j.num=z; list.add(temp); item++; } } if(res==0) System.out.println("NULL"); else System.out.println(res); } else if(str.equals("del")) { int z=sc.nextInt(); for(obj j:list) { if(j.lable==z) { j.flag=0; } } }else if(str.equals("def")) { list.clear(); list.add(new obj(1,0,m)); } } } }
本文来自博客园,作者:LeeJuly,转载请注明原文链接:https://www.cnblogs.com/peterleee/p/11329401.html

浙公网安备 33010602011771号