几道leetcode不会做的题目
1、set没有back()函数,今天想到用这个,才发现没有。
2. tuple的initialize_list construct好像不能使用,其实之前没使用过tuple,都是pair,复杂一点的自己写struct或者class,然后写比较的方法。不能用的原因是explicit关键字的限制,其实之前对explicit的关键字不是很了解,现在知道是什么了。不能进行隐式转换,只能显式调用。
没有权限,不能看。从别处看了下题目,我不会做!感觉抽象成图,然后求最短路径的方法很巧妙,注意枚举的方式,使得路径是字典序最小的一个。(对应的,如果是求字典序最大的呢,需要限制最短路径么?我这个只是瞎想)。求最短路,图最大就是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的项目,就可以了。好像讲的挺乱的,还是看代码。
class Solution {
public:
int findMaximizedCapital(int k, int w, vector<int>& p, vector<int>& c) {
vector<pair<int, int>> v;
for (int i = ; i < c.size(); i++) {
v.push_back({c[i], p[i]});
}
sort(v.begin(), v.end());
int i = ;
set<int> se;
map<int, int> ma;
while(k--) {
while(i < v.size() && v[i].first <= w) {
se.insert(v[i].second);
ma[v[i].second ]++;
i++;
}
if(!se.empty()) {
int t = *se.rbegin();
w += t;
ma[t]--;
if(ma[t] == ) {
ma.erase(t);
se.erase(t);
}
}
}
return w;
}
};
感觉还是缺少对题目的分析,思考!遇到一个难题(有时候可能很简单),不知道怎么入手,不知道怎么转化,就像这道题目,分析出需要什么,有没有单调的性质,需要维护什么,然后考虑用什么数据结构实现,先后写代码,调试!如果还不能过,思考哪里可以优化,什么边界条件没有考虑,进一步进行改进。
几道leetcode不会做的题目的更多相关文章
- 最近几道hihocode不会做的题目
几个易错点 1.数据范围一定要开大,一般多开10个或者5个. 2. 从经常写 int a[n], 然后访问a[n], 这显然会下标越界. 3. 浮点数,无法精确的比较,等于,大于,小于, 都需要使用e ...
- 看完互联网大佬的「LeetCode 刷题手册」, 手撕了 400 道 Leetcode 算法题
大家好,我是 程序员小熊 ,来自 大厂 的程序猿.相信绝大部分程序猿都有一个进大厂的梦想,但相较于以前,目前大厂的面试,只要是研发相关岗位,算法题基本少不了,所以现在很多人都会去刷 Leetcode ...
- LeetCode: Palindrome 回文相关题目
LeetCode: Palindrome 回文相关题目汇总 LeetCode: Palindrome Partitioning 解题报告 LeetCode: Palindrome Partitioni ...
- [LeetCode] string整体做hash key,窗口思想复杂度O(n)。附来自LeetCode的4例题(标题有字数限制,写不下所有例题题目 T.T)
引言 在字符串类型的题目中,常常在解题的时候涉及到大量的字符串的两两比较,比如要统计某一个字符串出现的次数.如果每次比较都通过挨个字符比较的方式,那么毫无疑问是非常占用时间的,因此在一些情况下,我们可 ...
- 为什么说每个程序员都应该刷几道LeetCode?
2015年即将过去,最近在回顾和总结过去一年的工作经历,发现自己并不能算是一名合格的程序员. Google某前员工Lucida在文章<白板编程访谈——Why,What,How>当中写道: ...
- 如何两个月刷400道leetcode
前言随着互联网寒潮的到来, 越来越多的互联网公司提高了面试的难度,其中之一就是加大了面试当中手撕算法题的比例.这里说的算法题不是深度学习,机器学习这类的算法,而是排序,广度优先,动态规划这类既考核数据 ...
- 刷14道leetcode的总结
引子 为什么我要刷leetcode?换工作?不是!那是?玩!巴菲特的双目标清单系统,基本方法是列两个清单,一个是职业生涯最重要的目标(不超过5个),另一个是比较重要的目标.对于比较重要的目标,要像躲避 ...
- 几道hihocoder不会做的题
1.https://hihocoder.com/problemset/problem/1433?sid=970287 boarding passes,不会做,看的别人的代码,现在还不是很理解. 2. ...
- Leetcode problems classified by company 题目按公司分类(Last updated: October 2, 2017)
All LeetCode Questions List 题目汇总 Sorted by frequency of problems that appear in real interviews. Las ...
随机推荐
- CNN:Windows下编译使用Caffe和Caffe2
用于检测的CNN分为基于回归网络的方法和基于区域+CNN网络的方法,其中基于回归网络的方法典型为YOLO9000,可以兼容使用VGG-Net框架.其中基于区域+CNN网络方法,大量使用了Caffe作为 ...
- OpenCV中的模板匹配/Filter2d
1.模板匹配 模板匹配是在图像中寻找目标的方法之一.Come On, Boy.我们一起来看看模板匹配到底是怎么回事. 参考链接:http://www.opencv.org.cn/opencvdoc/2 ...
- (转)Arcgis for Js之鼠标经过显示对象名的实现
http://blog.csdn.net/gisshixisheng/article/details/41889345 在浏览地图时,移动鼠标经过某个对象或者POI的时候,能够提示该对象的名称对用户来 ...
- 数据清理,预处理 pandas dataframe 操作技巧 总结
dsoft2 = data1.loc[(data1['程'] == "轻") | (data1['程'] == "中")]设置x下标plt.xticks(np. ...
- 写代码怎能不会这些Linux命令?
转自:https://zhuanlan.zhihu.com/p/28674639?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=to ...
- VUE常见问题解决
1.vue模板加载顺序 computed:例如分页的配置: created:dom加载前一般用来生成dom mounted:dom加载后用来覆盖渲染或者基于dom的操作 2.关于this指向的问题 通 ...
- [USACO5.5]隐藏口令Hidden Password [最小表示法模板]
最小表示法就是一个字符串构成一个环,找以哪个点为开头字典序最小. 然后我们就可以用n2的算法愉快的做啦~实际上有O(n)的做法的,就是用两个指针扫,如果这两个位置的字典序相等,就一起往后,如果某一个大 ...
- Intro.js 分步向导插件使用方法
简介 为您的网站和项目提供一步一步的.更好的介绍 Intro.js 目前兼容 Firefox.Chrome 和 IE8,不兼容 IE6 和 IE7,后续版本将会提供更好的兼容. 在线演示及下载 在线演 ...
- Git 基础教程 之 删除文件
① 手动或命令 rm删除工作区的问价: git checkout -- readme.txt 可恢复 checkout 实际上是用版本库里的替换工作区的版本 ② 删除了工作区文 ...
- 【[Offer收割]编程练习赛11 C】岛屿3
[题目链接]:http://hihocoder.com/problemset/problem/1487 [题意] 中文题 [题解] 岛屿的数目对应了这个图中联通块的数目; 面积则对应有多少个方块; 周 ...