LeetCode 2502. 设计内存分配器 C#
原题链接
中等
作者:
hpstory
,
2022-12-13 16:13:46
,
所有人可见
,
阅读 172
C# 代码
public class Allocator {
private int[] memory;
private int length;
public Allocator(int n) {
this.memory = new int[n];
this.length = n;
}
public int Allocate(int size, int mID) {
for (int i = 0; i < length; i++){
if (memory[i] != 0) continue;
int j = i;
while (j < Math.Min(length, i + size) && memory[j] == 0) j++;
if (j - i >= size){
for (int k = i; k < j; k++){
memory[k] = mID;
}
return i;
}
i = j - 1;
}
return -1;
}
public int Free(int mID) {
int count = 0;
for (int i = 0; i < length; i++){
if (memory[i] == mID){
memory[i] = 0;
count++;
}
}
return count;
}
}