首页 > 其他分享 >实习冲刺第八天

实习冲刺第八天

时间:2024-10-30 22:18:45浏览次数:5  
标签:存储 fast 第八天 C++ 冲刺 内存 实习 NULL 指针

代码详解:这里使用快(一次移动两个节点)慢(一次移动一个节点)指针的办法解决,如果链表有环那么快指针和慢指针一定会相遇 ,如果没有环那么快指针会移动到NULL节点,这时结束并返回false

class Solution {
public:
    bool hasCycle(ListNode *head) {
        ListNode*fast=head;//定义快慢指针
        ListNode*slow=head;
        while(fast&&fast->next)//快指针当前和下一个节点都存在时,即只要快指针可以移动两步就让快指针移动
        {
            slow=slow->next;//慢指针移动一步
            fast=fast->next->next;//快指针移动两步
            if(slow==fast)
            {
                return true;//相遇说明有环
            }
        }
        return false;//如果走到结尾都没有相遇则没有环
    }
};

面经:

  1. 解释以下空指针和野指针,并说明如何解决这些问题

(1)野指针:指向被释放的内存或者访问受限的指针,可能是因为指针未被初始化,被释放的指针没有被置为NULL,指针越界操作导致。

解决办法:

  • 始终初始化指针。
  • 在释放内存后立即将指针设置为NULL,避免它成为野指针。
  • 在使用指针之前检查其是否为NULL。
  • 使用智能指针(如C++中的std::unique_ptr或std::shared_ptr)自动管理内存

(2)空指针是一个没有被初始化的指针,它不指向任何有效的内存地址。在C/C++中,通常使用NULL(在C++11标准之后推荐使用nullptr)来表示空指针。

解决办法:

  • 在声明指针后立即初始化为NULL或nullptr。
  • 在使用指针之前检查是否为NULL或nullptr。

      2. c/c++内存分区

  • 内存分配方式:在C++中内存分为5个区,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区。
  • 栈:在执行程序过程中,局部作用域出现的一些局部变量可以在栈上创建,等脱离该作用域创建的内存被释放。栈是机器系统提供的数据结构,计算机会在底层对栈提供支持:分配专门的寄存器存放栈的地址,压栈出栈都有专门的指令执行,这就决定了栈的效率比较高。
  • 堆:用于程序内存动态分配,用c/c++中的new/malloc分配,delete/free 释放。堆则是 C/C++函数库提供的,它的机制是很复杂的。
  • 自由存储区:它是C++基于new 操作符的一个概念,凡是通过new 操作符申请的内存即为自由存储区
  • 全局/静态存储区:这块内存在程序编译期间已经分配好,在程序整个运行阶段一直存在。全局变量个和静态变量
  • 常量存储区:特殊的一块内存,里面存放的是常量,不允许修改

 

标签:存储,fast,第八天,C++,冲刺,内存,实习,NULL,指针
From: https://blog.csdn.net/m0_74381802/article/details/143376582

相关文章

  • MySQL存储引擎——针对实习面试
    目录MySQL支持哪些存储引擎?MySQL存储引擎架构了解嘛?MyISAM和InnoDB有什么区别?MyISAM和InnoDB如何选择?如何查看表的存储引擎?如何修改表的存储引擎?MySQL支持哪些存储引擎?MySQL支持多种存储引擎,包括InnoDB、MyISAM、MEMORY、ARCHIVE、BLACKHOLE、FEDERATED、NDBCluste......
  • 实习中第一次帮助mentor之thrift协议
    Thrift协议前因后果在实习中发现自己需要用thrift协议发送请求,起因就是需要用到公司内部rpc来进行服务之间的请求本篇主要着重于如何解读thrift接口文档,节省大家的时间thrift的优点二进制格式:Thrift使用二进制格式来序列化和反序列化数据,这使得它在网络传输中比纯文本格式......
  • 基于Spring的高校实习信息发布网站的设计与实现,LW+源码+讲解
    摘   要传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,职位实习信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大用户的需求,因此就应运而生出相应的高校实习信息发布网......
  • 多校A层冲刺 NOIP2024 模拟赛 15
    多校A层冲刺NOIP2024模拟赛15T1追逐游戏(chase)签到题注意到三个点构成的树就是全部路径,找到交汇点(两两lca中dep最大的那个),分讨能否在终点前追上即可。时间复杂度为\(O(nlogn)\)T2统计哈希,差分维护每个值的前缀个数,发现合法段的两个前缀个数的形态一致,只是整体会多......
  • Java毕业设计-基于Springboot框架的高校专业实习管理系统项目实战(附源码+论文)
    大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。......
  • 计算机毕业设计-基于Java+Springboot架构的高校专业实习管理系统项目开发实战(附源码+
    大家好!我是职场程序猿,感谢您阅读本文,欢迎一键三连哦。......
  • 『模拟赛』多校A层冲刺NOIP2024模拟赛15
    Rank一般A.追逐游戏(chase)签,但是保龄。上来发现情况好像是有限的,于是直接分讨,不过漏了n种情况,小样例水,大样例vscose自带的compare跑不出来,注销一遍之后甚至进度条都没了导致我以为过了,最后10min才发现(赛后发现二分是可做的,但是倍增的巨大常数加上逆天评测速度......
  • [57] (多校联训) A层冲刺NOIP2024模拟赛15
    A.追逐游戏一个非常暴力的想法是直接求出最短路径\(S\),然后对\(S\)上的点,比较\(dis_{s,S_i}\)和\(dis_{s',S_i}\)的大小,如果抓捕的人先到就符合条件实际上,这个符合条件的路径是单调的,即在最短路径上存在一个断点,断点靠近起点的一侧总不可达,靠近终点的一侧总是可达的证明......
  • 从实习到春招成为一名安全工程师,我经历了什么
    前言借朋友口述总结了安全招聘面试经历分享,希望更多的人看到这篇文,从中得到启发,找到自己心仪的工作。基本情况签了字节的三方,春招终于告一段落。从八月份边实习边准备春招到现在,经历了许多,这篇帖总结一下这几个月的努力。本人普通本科网络空间安全科班,没有参加过任何竞......
  • [赛记] 多校A层冲刺NOIP2024模拟赛11 && 12
    冒泡排序100pts比较显然的签到题(好久没这么水过了);考虑这个错的冒泡排序,手模一下即可发现这个$+k$有点像以前做过的同余系中求和的问题,于是这个题同理,用set维护每个同余系的排名,最后按顺序输出即可;对于正确性,相当于每次$+k$,则就相当于在一个同余系中排序;时间复杂度:$......