几道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 ...
随机推荐
- Embedded之Stack之三
Stack Overflow While stacks are generally large, they don't occupy all of memory. It is possible to ...
- html 底部虚线
<div style="width: 100%; font-size: 14px; color: #666; border-bottom: 1px dashed #666;" ...
- eslint推荐编码规范和airbnb推荐编码规范
Eslint规范 for 循环禁止使用无限循环(这个非默认推荐) // bad for (var i = 0; i < 10; i--) { } for (var i = 10; i >= ...
- Docker拉取images时报错Error response from daemon
docker拉取redis时,抛出以下错误: [master@localhost ~]$ docker pull redis Using default tag: latest Error respo ...
- C#第三节课(1)
数据类型 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System. ...
- 最小化安装CentOS-7-x86_64-Minimal-1511图文教程
说明: 虚拟机产品:VMware® Workstation 12 Pro,版本:12.5.0 build-4352439 系统镜像:CentOS-7-x86_64-Minimal-1511.iso 操 ...
- Full-featured Vue 评分组件
分享一下最近写的 vue 的评分组件 Features: 支持半星.可清除.文案展示.只读.自定义颜色.自定义字符及图片等.支持 hover 的时候改变 value.内置三种样式,以及非常好看 DEM ...
- 1069. The Black Hole of Numbers
For any 4-digit integer except the ones with all the digits being the same, if we sort the digits in ...
- CodeVS 1013&1029
若干二叉树遍历的数据结构题. Problem 1013 传送门:http://codevs.cn/problem/1013/ 本题是一个数据结构——二叉树遍历问题. 对二叉树,给定中序遍历序列(In- ...
- 1.VMware虚拟机的安装
1.找到安装软件 2.使用如下操作安装 3.选择接受协议 4.修改安装目录 5.如果上一步有修改,此步骤不用改路径 7.安装后创建桌面快捷方式 8.安装成功可以看到桌面上有快捷方式图标 安装结束 声明 ...