当前位置: 首页 > news >正文

【set】个人练习-Leetcode-817. Linked List Components

题目链接:https://leetcode.cn/problems/linked-list-components/description/

题目大意:给出一个vector<int> nums,其中有一些数字。再给出一个链表的头指针head,链表内的元素各不相同。如果链表中有某一段(长度大于等于1)的元素都在nums中出现过,那么就算一个component,求链表中的component的个数。

思路:【判断是否在nums中出现过】直接用set就好了,如果是STL的话,用count方法很方便。不过测试了一下后发现时间花得有点多,于是换成了数组。

使用两个布尔值:last表示【上一个元素】【是否在nums中出现过】,用flag表示【当前元素】【是否在nums中出现过】

  • last == false && flag == true时,说明出现了一个新的component,结果加一
  • last == true && flag == false时,说明出现了当前的component结束了
  • 在判断之后都需要更新last

完整代码

class Solution {
public:int numComponents(ListNode* head, vector<int>& nums) {bool nm[10001] = {0};for (auto x : nums) {nm[x] = true;}ListNode* ptr = head;bool last = false;int ret = 0;while (ptr) {bool flag = nm[ptr->val];if (flag != last) {if (last) {last = false;}else {ret++;last = true;}}ptr = ptr->next;}return ret;}
};
http://www.lryc.cn/news/115527.html

相关文章:

  • Linux IPIP隧道连通两个局域网
  • 华为QinQ技术的基本qinq和灵活qinq 2种配置案例
  • python爬虫1:基础知识
  • 【FAQ】安防监控视频EasyCVR平台分发的FLV视频流在VLC中无法播放
  • python爬虫2:requests库-原理
  • 纹理贴图和渲染
  • BLIP2
  • 陀螺玩具跨境电商亚马逊CPC认证
  • TS学习02-接口
  • WuThreat身份安全云-TVD每日漏洞情报-2023-08-09
  • 6. C++类的静态成员
  • 如何使Python Docker镜像安全、快速、小巧
  • AWS——03篇(AWS之Amazon S3(云中可扩展存储)-01入门)
  • 没有synchronized,rust怎么防并发?
  • 1.Python简介及安装(3.11.4)
  • face_recognition人脸识别与人脸检测
  • vue3获得url上的参数值
  • chapter15:springboot与监控管理
  • http历史版本
  • 【Go语言】Golang保姆级入门教程 Go初学者chapter2
  • 关于ETL的两种架构(ETL架构和ELT架构) qt
  • 【Linux】进程间通信——管道
  • Element-plus中tooltip 提示框修改宽度——解决方案
  • java实现当前系统时间格式化
  • 篇十一:享元模式:共享细粒度对象
  • Dev控件 Gridcontrol,gridview 实现多选功能
  • 内网穿透:如何通过公网访问本地Web服务器?
  • 在qemu中挂载镜像文件
  • 报错注入(主键重复)攻击原理
  • Golang基础教程