密云微网站建设专业网站优化推广
2502. 设计内存分配器 - 力扣(LeetCode)
一:JAVA
Allocator(int n)函数:类构造器
int allocate(int size, int mID)函数:输入,待插入块的大小size,插入内容mid / 输出,插入位置块的起始位置
int freeMemory(int mID)函数:输入,待删除内容块的序号mID / 输出,返回释放的空间大小
class Allocator {private final int[] memory;public Allocator(int n) {memory=new int[n];}public int allocate(int size, int mID) {int free=0;for (int i = 0; i < memory.length; i++) {if (memory[i]>0) {free=0;continue;}free++;if (free==size) {Arrays.fill(memory, i-size+1,i+1,mID); // 包左不包右return i-size+1;}}return -1;}public int freeMemory(int mID) {int sum=0;for (int i = 0; i < memory.length; i++) {if (memory[i]==mID) {sum++;memory[i]=0;}}return sum;}
}