2349. 设计数字容器系统


题目链接:2349. 设计数字容器系统

代码如下:

class NumberContainers {
public:
	void change(int index, int number) {
		//移除旧数据
		unordered_map<int,int>::iterator it =index_to_number.find(index);
		if (it != index_to_number.end()) {
			number_to_indices[it->second].erase(index);
		}

		//添加新数据
		index_to_number[index] = number;
		number_to_indices[number].insert(index);
	}

	int find(int number) {
		unordered_map<int,set<int>>::iterator it =	number_to_indices.find(number);
		if(it!=number_to_indices.end()&&!it->second.empty()) {
			return *it->second.begin();
		}
		return -1;
	}
private:
	unordered_map<int, int> index_to_number;
	unordered_map<int, set<int>> number_to_indices;
};

/**
 * Your NumberContainers object will be instantiated and called as such:
 * NumberContainers* obj = new NumberContainers();
 * obj->change(index,number);
 * int param_2 = obj->find(number);
 */
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐