leetcode总结帖

来源:互联网 发布:linux怎么读音是什么 编辑:程序博客网 时间:2024/06/07 09:48

大顶堆和小顶堆可以用priority_queue实现,允许重复数据。需要自己调整,删除重复数据。例如:

int topNum=nums.top();nums.pop();while((!nums.empty())&&nums.top()==topNum)    nums.pop();

给出一个BFS树中序遍历得到的递增序列,求出来的BFS树并不唯一,除非加上NULL等值,并告知遍历方式(前序,中序,还是后序)。

priority_queue

for (map<int, int>::reverse_iterator it = mp.rbegin(); it != mp.rend(); it++, cnt++) {            if (cnt == 1) ans[it->second] = "Gold Medal";            else if (cnt == 2) ans[it->second] = "Silver Medal";            else if (cnt == 3) ans[it->second] = "Bronze Medal";            else ans[it->second] = to_string(cnt);        }

pair类型排序

 static bool cmp(pair<char,int> &a ,pair<char,int> &b )    {        if(a.second>b.second)            return true;        else            return false;    }sort(sortCount.begin(),sortCount.end(),cmp);

迭代器书写

 for(map<char,int>::iterator it=count.begin();it!=count.end();it++)        {            pair<char,int> temp(it->first,it->second);            sortCount.push_back(temp);        }

树的层序遍历

可以建立两个queue,一个存value,一个存depth。

set,map访问元素只能用指针。

distance函数可以返回正值或负值,根据情况而定,就是返回distance(begin,end)——-(end-begin).

itOld=result.insert(it,people[i]);返回插入后的地址。

0 0
原创粉丝点击