几道leetcode不会做的题目

1、set没有back()函数,今天想到用这个,才发现没有。

2. tuple的initialize_list construct好像不能使用,其实之前没使用过tuple,都是pair,复杂一点的自己写struct或者class,然后写比较的方法。不能用的原因是explicit关键字的限制,其实之前对explicit的关键字不是很了解,现在知道是什么了。不能进行隐式转换,只能显式调用。

3. LeetCode 499. The Maze II

 没有权限,不能看。从别处看了下题目,我不会做!感觉抽象成图,然后求最短路径的方法很巧妙,注意枚举的方式,使得路径是字典序最小的一个。(对应的,如果是求字典序最大的呢,需要限制最短路径么?我这个只是瞎想)。求最短路,图最大就是30*30 = 900,可以采用堆优化,也可以不优化,也差不了多少。这题提前预处理出每个点可以到达的点以及权重,是个很好的方法,也可以在求最短路的过程中计算,我没想到,这里的路径可以使用数据保存下来,以便下次再使用。这个是很好的点子,学习一下,也算是dp,记忆化的思想,防止重复计算。

4.  501. Find Mode in Binary Search Tree

这个题,简单的做法,就是遍历,查找众数,然后返回。但是follow up的要求,Follow up: Could you do that without using any extra space? (Assume that the implicit stack space incurred due to recursion does not count). 这个不知道怎么做。有时间查找一下答案。

5. 502. IPO
说实话,一看到这道题,完全懵逼了,心里想,既然是hard,这么难,反正不会做,直接看答案吧!其实,这题挺简单的!

朴素的想法,首先考虑是不是贪心, 先是理解题意,选择的项目不要求同事进行,一个项目的收益,可以作为下一个项目的启动资金。那就是一个一个的项目进行选择,为了使得结果最优,那每次选择的都是当前资金w可以获取收益最大值的项目,那么,这样思路就很明显了!每次,从项目里面选择,cost<=w的项目,然后选择里面里面收益最大的。由于w是单增的,每次满足要求的项目,下次还会满足要求,候选集是不断扩大的,每次我们只需要维护满足cost<=w的项目的 profit大小顺序,每次取最大值,删除,下一次,再次添加新的满足cost<=w的项目,就可以了。好像讲的挺乱的,还是看代码。

 1 class Solution {
 2 public:
 3 int findMaximizedCapital(int k, int w, vector<int>& p, vector<int>& c) {
 4     vector<pair<int, int>> v;
 5     for (int i = 0; i < c.size(); i++) {
 6         v.push_back({c[i], p[i]});
 7     }
 8     sort(v.begin(), v.end());
 9     int i = 0;
10     set<int> se;
11     map<int, int> ma;
12     while(k--) {
13         while(i < v.size() && v[i].first <= w) {
14             se.insert(v[i].second);
15             ma[v[i].second ]++;
16             i++;
17         }
18         if(!se.empty()) {
19             int t = *se.rbegin();
20             w += t;
21             ma[t]--;
22             if(ma[t] == 0) {
23                 ma.erase(t);
24                 se.erase(t);
25             }
26         }
27     }
28     return w;
29 }
30 };

感觉还是缺少对题目的分析,思考!遇到一个难题(有时候可能很简单),不知道怎么入手,不知道怎么转化,就像这道题目,分析出需要什么,有没有单调的性质,需要维护什么,然后考虑用什么数据结构实现,先后写代码,调试!如果还不能过,思考哪里可以优化,什么边界条件没有考虑,进一步进行改进。

原文地址:https://www.cnblogs.com/y119777/p/6374704.html