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的项目,就可以了。好像讲的挺乱的,还是看代码。

 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不会做的题目的更多相关文章

  1. 最近几道hihocode不会做的题目

    几个易错点 1.数据范围一定要开大,一般多开10个或者5个. 2. 从经常写 int a[n], 然后访问a[n], 这显然会下标越界. 3. 浮点数,无法精确的比较,等于,大于,小于, 都需要使用e ...

  2. 看完互联网大佬的「LeetCode 刷题手册」, 手撕了 400 道 Leetcode 算法题

    大家好,我是 程序员小熊 ,来自 大厂 的程序猿.相信绝大部分程序猿都有一个进大厂的梦想,但相较于以前,目前大厂的面试,只要是研发相关岗位,算法题基本少不了,所以现在很多人都会去刷 Leetcode ...

  3. LeetCode: Palindrome 回文相关题目

    LeetCode: Palindrome 回文相关题目汇总 LeetCode: Palindrome Partitioning 解题报告 LeetCode: Palindrome Partitioni ...

  4. [LeetCode] string整体做hash key,窗口思想复杂度O(n)。附来自LeetCode的4例题(标题有字数限制,写不下所有例题题目 T.T)

    引言 在字符串类型的题目中,常常在解题的时候涉及到大量的字符串的两两比较,比如要统计某一个字符串出现的次数.如果每次比较都通过挨个字符比较的方式,那么毫无疑问是非常占用时间的,因此在一些情况下,我们可 ...

  5. 为什么说每个程序员都应该刷几道LeetCode?

    2015年即将过去,最近在回顾和总结过去一年的工作经历,发现自己并不能算是一名合格的程序员. Google某前员工Lucida在文章<白板编程访谈——Why,What,How>当中写道: ...

  6. 如何两个月刷400道leetcode

    前言随着互联网寒潮的到来, 越来越多的互联网公司提高了面试的难度,其中之一就是加大了面试当中手撕算法题的比例.这里说的算法题不是深度学习,机器学习这类的算法,而是排序,广度优先,动态规划这类既考核数据 ...

  7. 刷14道leetcode的总结

    引子 为什么我要刷leetcode?换工作?不是!那是?玩!巴菲特的双目标清单系统,基本方法是列两个清单,一个是职业生涯最重要的目标(不超过5个),另一个是比较重要的目标.对于比较重要的目标,要像躲避 ...

  8. 几道hihocoder不会做的题

    1.https://hihocoder.com/problemset/problem/1433?sid=970287 boarding passes,不会做,看的别人的代码,现在还不是很理解. 2.  ...

  9. 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 ...

随机推荐

  1. tp实现多语言支持测试

    用tp框架实现网页多种语言切换 时间:2016-11-11 浏览次数:1120 编辑:youjiejie   网页如何设计多种语言切换,本文用tp框架实现网页多种语言切换方法结合实例形式较为详细的分析 ...

  2. 【C++】颜色的设置

    1.改变整个控制台的颜色用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号.各颜色代码如下: 0=黑色 1=蓝色 2=绿色 3=湖蓝色  ...

  3. 备份-泛函编程(23)-泛函数据类型-Monad

    泛函编程(23)-泛函数据类型-Monad http://www.cnblogs.com/tiger-xc/p/4461807.html https://blog.csdn.net/samsai100 ...

  4. layui confirm

    layer.confirm('是否要删除信息!', { btn: ['确定', '取消'] }, function (index, layero) { //移除元素 $("#tr" ...

  5. shell脚本编程及bash特性

    bash特性及bash脚本编程初步 终端,附着在终端的接口程序; GUI: KDE,GNome,Xfce CLI: /etc/shells bash的特性: 命令行展开: ~,{} 命令别名: ali ...

  6. 49.filter、query比较

    主要知识点 1.filter与query用在同一次查询中的语法 2.filter与query使用场景对比 3.二都的性能比较     一.filter与query示例 1.先准备数据 PUT /com ...

  7. 使用Layer完成图片放大功能

    序言:在写这个功能之前也用了zoom.js,zoom.js用起来简单引用js然后设置图片属性就可以放大.但是放大后的图片模糊.没有遮罩.在放大图片时其它图片布局会受到影响,当然如果觉得这些都是小问题的 ...

  8. lucene_02_IKAnalyre

    前言 在lucene中虽然已经提供了许多的分词器:StandardAnalyzer.CJKAnalyzer等,但在解析中文的时候都会把文中拆成一个个的单子. 毕竟老外不懂中文.这里介绍一个中文的分词器 ...

  9. setTimeout(fn,0)的作用分析

    众所周知,大家对setTimeout的用法肯定都比较熟悉了,但是不是还是会经常忘记使用呢,例如博主阿里面试时就忘了,见阿里前端面试. 今天跟大家讨论一下setTimeout(fn,0)的用法,相信很多 ...

  10. poj 3041 最小点覆盖=最大匹配

    #include<stdio.h> #include<string.h> #define  N  510 int map[N][N],n,mark[N],link[N]; in ...