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

秋招突击——6/17——复习{整理昨天的面试资料}——新作{删除链表倒数第n个节点}

文章目录

    • 引言
    • 复习
    • 新作
      • 删除链表倒数第N个节点
        • 题目描述
        • 个人实现
        • 参考实现
    • 总结

引言

  • 主管面,面的很凄惨,不过无所谓了,我已经尽力了。上午都在整理的面经,没有复习算法,而且这两天要弄一下论文,二十号就要提交了,可能都没有复习了,只有新作。

复习

  • 这里是复习了昨天主管面的所有的问题,还有对应的算法题,不过由于结果还没出,要保密,这里就不说了。

新作

删除链表倒数第N个节点

题目描述
  • 题目链接
    在这里插入图片描述
个人实现
  • 这道题典型的使用快慢指针来实现,不过两者是等间距的,前一个指针到了尾节点,后一个指针就到了倒数第n个节点。
  • 有两个需要注意的地方
    • 需要维持一个快慢指针之间的间距
    • 需要找到倒数第n个指针的前一个指针,才能把倒数第n个指针删除

正常通过
在这里插入图片描述
具体实现代码

#include <iostream>using namespace std;struct ListNode{int val;ListNode* next;ListNode(int x):val(x),next(NULL){};ListNode(ListNode* t):val(-1),next(t){};
};ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode preHead = ListNode(-1,head);ListNode* ahead = &preHead;ListNode* back = &preHead;int dist = 0;while(back->next){if (dist < n) back = back->next,dist ++;else{ahead = ahead->next;back = back->next;}}// 将对应指针删除ahead->next = ahead->next->next;// delete preHead;return preHead.next;
}int main(){}
参考实现
  • 他是完整遍历一遍,获取链表的长度,然后找倒数第n个指针,时间复杂度是一样,我这样写也是遍历了两次,没什么更快的。
  • 我又愚蠢了,其实都是一样的,我那样写反而复杂了。
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int k) {auto dummy =new  ListNode(-1);dummy->next = head;int n = 0;for(auto p = dummy;p;p = p->next) n ++;auto p = dummy;for(int i = 0;i < n - k - 1;i ++) p = p->next;p->next = p->next->next;return dummy->next;}
};

总结

  • 今天的题目过得有点快,不往下做了。早点睡觉,背一下八股。
http://www.lryc.cn/news/378730.html

相关文章:

  • 宝塔面板使用技巧(pure-FTP)上传文件和文件夹默认权限644的修改
  • mac m芯片安装win11遇坑
  • 一个自定义流程的平台
  • 舔狗日记Puls微信小程序源码
  • PyMuPDF 操作手册 - 05 PDF的OCR识别等
  • Vue与TypeScript的配合:如何在Vue项目中使用TypeScript,利用静态类型提高代码的可维护性
  • 华为仓颉语言介绍
  • 《昇思 25 天学习打卡营第 3 天 | 张量 Tensor 》
  • free命令——显示系统内存使用情况
  • 麒麟移动运行环境(KMRE)——国内首个开源的商用移固融合“Android生态兼容环境”正式开源
  • print(“{}{}“.format())
  • 2-12 基于CV模型卡尔曼滤波、CT模型卡尔曼滤波、IMM模型滤波的目标跟踪
  • 序列1bp插入有什么影响
  • CVPR 2024盛况空前,上海科技大学夺得最佳学生论文奖,惊艳全场
  • HTTP 状态码详解及使用场景
  • 【Windows】配置Flutter开发环境
  • 云渲染与传统渲染器的较量与融合
  • 比较新旧两数组列表,新增或删除数据库记录(ai生成)
  • Java基础 - 练习(五)根据今天日期获取一周内的日期(基姆拉尔森公式)
  • HTML5 新元素
  • 虹软ArcSoft—真正离线免费的人脸识别SDK
  • [环境配置]vscode通过ssh连接autodl进行项目开发
  • 2024中国宁波-东南亚职业教育产教协同发展校企对接会举办
  • Web前端、后端与建站:全方位解析四大基石、五大挑战、六大技术与七大策略
  • nginx出现504 Gateway Time-out错误的原因分析及解决
  • 基于STM32的智能插座项目
  • VR虚拟现实(Virtual Reality)
  • pywinauto入门指南:轻松掌握Windows GUI自动化
  • 分布式缓存框架Hazelcast与Java整合详解
  • ApplicationEventPublisher的使用、Spring事件发布