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

8.26 review

 

 

lc02.01

双重循环遍历,外层循环逐个拿节点,内层循环用前驱节点去对比、删除后续相同值节点,全程不使用额外存数据的临时缓冲区,靠“指针操作 + 嵌套遍历”直接在原链表删重复节点 

- 从头开始,每个节点都挨个跟后面节点比,一样就把后面那重复的删了,不用额外存东西,直接在原链表上删。

class Solution {
public:
ListNode* removeDuplicateNodes(ListNode* head) {
if(head==NULL) return NULL;
ListNode *p=head;
while(p!=NULL)

{//每遍历一个节点,就拿该节点之后的节点与之进行比较,如果相等,则将后面的这个节点删掉
ListNode *pre = p;//前驱结点
while (pre->next != NULL)

           {
if (pre->next->val == p->val) {
pre->next = pre->next->next;//删除结点
}

             else {
pre = pre->next;
}
}


p=p->next;
}
return head;
}
};

降一重循环,使用set去重版

class Solution {
public:
ListNode* removeDuplicateNodes(ListNode* head) {
ListNode *pre = nullptr, *cur = head;
unordered_set<int> visited;
while (cur != nullptr) {
if (visited.count(cur->val))

           {
pre->next = cur->next;
}
else

           {
visited.emplace(cur->val);
pre = cur;
}


            cur = cur->next;
}
return head;
}
};

 

 

lc04.01

有向图 bfs

class Solution {
public:
bool findWhetherExistsPath(int n, vector<vector<int>>& graph, int start, int target) {
vector<vector<int>> g(n);
vector<bool> vis(n,false);

for(auto& e:graph)
{
g[e[0]].push_back(e[1]);

}
queue<int> q;
q.push(start);
vis[start]=true;

while(q.size())
{
auto t=q.front();
q.pop();
for(auto& a:g[t])
{
if(a==target)
return true;
if(!vis[a])
{
vis[a]=true;
q.push(a);
}
}
}
return false;
}
};

 

lc01.09

拼接后,find

tip: find 找不到时返回 string::npos,找到则返回子串起始索引

class Solution {
public:
bool isFlipedString(string s1, string s2) {
int m = s1.size(), n = s2.size();
if (m != n) return false;

s1 += s1;
// find 找不到时返回 string::npos,找到则返回子串起始索引
return s1.find(s2) != string::npos; 
}
};

 

http://www.dtcms.com/a/351586.html

相关文章:

  • 【大前端】React统计所有网络请求的成功率、失败率以及统一入口处理失败页面
  • Ubuntu22.04安装OBS
  • 嵌入式系统学习Day23(进程)
  • 2025.8.26总结
  • 【系统架构设计(二)】系统工程与信息系统基础中:信息系统基础
  • 数据结构青铜到王者第四话---LinkedList与链表(1)
  • 【SystemUI】新增实体键盘快捷键说明
  • 【SystemUI】锁屏点击通知显示的解锁界面和通知重叠
  • [Sync_ai_vid] 唇形同步推理流程 | Whisper架构
  • 技术分享︱国产化突破:开源MDO工具链在新一代神威超算上的安装与调试
  • DevExpress WinForms中文教程:Data Grid - Excel样式的自定义过滤器对话框
  • 在Excel和WPS表格中输入分数的两种方法
  • 自然处理语言NLP: 基于双分支 LSTM 的酒店评论情感分析模型构建与实现
  • PostgreSQL快速入门
  • 会议室预约小程序主要功能及预约审批流程
  • Java大厂面试全解析:从Spring Boot到微服务架构实战
  • Hadoop MapReduce 任务/输入数据 分片 InputSplit 解析
  • ProfiNet转CAN/CANopen网关技术详解-三格电子
  • uniapp uview吸顶u-sticky 无效怎么办?
  • 利用Certbot生成ssl证书配置到nginx
  • Android之穿山甲广告接入
  • Flutter 项目命名规范 提升开发效率
  • 深度学习(三):PyTorch 损失函数:按任务分类的实用指南
  • Swift 解法详解 LeetCode 363:矩形区域不超过 K 的最大数值和
  • Unity游戏打包——Mac基本环境杂记
  • Android Glide生命周期管理:实现原理与最佳实践
  • ubuntu2204安装搜狗拼音输入法
  • 基于spark的招聘岗位需求分析可视化系统设计与实现
  • 《相关法律、法规知识(五)》
  • 【数据结构】串——模式匹配