LeetCode 817. 链表组件
1. 题目
给定一个链表(链表结点包含一个整型值)的头结点 head。
同时给定列表 G,该列表是上述链表中整型值的一个子集。
返回列表 G 中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 G 中)构成的集合。
示例 1:
输入:
head: 0->1->2->3
G = [0, 1, 3]
输出: 2
解释:
链表中,0 和 1 是相连接的,且 G 中不包含 2,
所以 [0, 1] 是 G 的一个组件,同理 [3] 也是一个组件,故返回 2。示例 2:
输入:
head: 0->1->2->3->4
G = [0, 3, 1, 4]
输出: 2
解释:
链表中,0 和 1 是相连接的,3 和 4 是相连接的,
所以 [0, 1] 和 [3, 4] 是两个组件,故返回 2。注意:
如果 N 是给定链表 head 的长度,1 <= N <= 10000。
链表中每个结点的值所在范围为 [0, N - 1]。
1 <= G.length <= 10000
G 是链表中所有结点的值的一个子集.
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/linked-list-components
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
class Solution {public:int numComponents(ListNode* head, vector<int>& G) {unordered_set s(G.begin(), G.end());int ans = 0;while(head){if(s.count(head->val) && (!head->next || !s.count(head->next->val)))//当前存在,且,没有下一个,或者 有下一个,但是值不在集合里,出现一段ans++;head = head->next;}return ans;}
};
36 ms 14.3 MB
LeetCode 817. 链表组件相关推荐
- Leetcode 817.链表组件
Time: 20190903 Type: Medium 题目描述 给定一个链表(链表结点包含一个整型值)的头结点 head. 同时给定列表 G,该列表是上述链表中整型值的一个子集. 返回列表 G 中组 ...
- if 组件是否存在_LeetCode 817. 链表组件 题解
817. 链表组件 题解 题目描述 解法:哈希表 思路 本题的关键在于给定某个特定的值,如何能够快速地确定该值是否存在于列表G中.容易想到可以采用哈希表的方式存储列表G中的各个元素以方便查找.而由于这 ...
- 【精】LintCode领扣算法问题答案:1371. 链表组件
1371. 链表组件 描述 给定一个链表(链表结点包含一个整型值)的头结点 head. 同时给定列表 G,该列表是上述链表中整型值的一个子集. 返回列表 G 中组件的个数,这里对组件的定义为:链表中一 ...
- leetcode算法题--链表组件
原题链接:https://leetcode-cn.com/problems/linked-list-components/ 线性扫描 int numComponents(ListNode* head, ...
- Leetcode中单链表题总结
以下是个人对所做过的LeetCode题中有关链表类型题的总结,博主小白啊,若有错误的地方,请留言指出,谢谢. 一.有关反转链表 反转链表是在单链表题中占很大的比例,有时候,会以各种形式出现在题中,是比 ...
- LeetCode 2130. 链表最大孪生和(链表快慢指针+反转链表+双指针)
文章目录 1. 题目 2. 解题 1. 题目 在一个大小为 n 且 n 为 偶数 的链表中,对于 0 <= i <= (n / 2) - 1 的 i ,第 i 个节点(下标从 0 开始)的 ...
- LeetCode 1019. 链表中的下一个更大节点(单调栈)
1. 题目 给出一个以头节点 head 作为第一个节点的链表.链表中的节点分别编号为:node_1, node_2, node_3, - . 每个节点都可能有下一个更大值(next larger va ...
- LeetCode 382. 链表随机节点(概率)
1. 题目 给定一个单链表,随机选择链表的一个节点,并返回相应的节点值.保证每个节点被选的概率一样. 进阶: 如果链表十分大且长度未知,如何解决这个问题?你能否使用常数级空间复杂度实现? 来源:力扣( ...
- 【LeetCode 单链表专项】反转链表II(92)
文章目录 1. 题目 1.1 示例 1.2 说明 1.3 限制 1.4 进阶 2. 解法一(穿针引线) 2.1 分析 2.2 解答 2.3 复杂度 3. 解法二(头插法) 3.1 分析 3.2 解答 ...
最新文章
- [JavaScript] JavaScript 运算符与流程控制
- 北航学长的《数据竞赛入门讲义》分享:我是靠这些拿到冠军的
- NutzCodeInsight 2.0.7 发布,为 nutz-sqltpl 提供友好的 ide 支持
- leetcode202(Floyd判圈算法(龟兔赛跑算法))
- python list()函数 (从可迭代对象返回初始化的新列表)
- centos7 安装教程 图文流程安装后包含界面
- 201712-2放学
- CentOS HarBor安装与配置
- tf.nn.dropout
- linux下的node.js下载和安装
- PageAbility基本概念
- mysql 出现 quot_mysql 出现 quot;the table is fullquot;的问题 - tmuffamd - ITeye博客
- Windows7查看无线网络密码
- MariaDB基础详解
- Atitit rgb yuv hsv HSL 模式和 HSV(HSB) 图像色彩空间的区别
- 网页前端:JavaScript编程
- 关于职业规划最好最全面的一篇文章
- FICO-固定资产报废处置流程ABAVN
- 大学生个人博客网页设计模板 学生个人博客网页成品 简单个人网站作品下载 静态HTML CSS个人网页作业源代码
- 众成计算机怎么设置音乐,电脑怎么设置默认音乐播放器