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

实习冲刺第十三天

时间:2024-11-04 21:18:03浏览次数:6  
标签:函数 nums 成员 基类 冲刺 派生类 实习 节点 第十三天

704.二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1
示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

代码详解: 

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int IndexL=0;//定义左节点索引
        int IndexR=nums.size()-1;//定义右节点索引
        int IndexM=(IndexL+IndexR)/2;//得到中间节点索引
        while(IndexL<=IndexR)//如果右边大于左边循环
        {
            int num=nums[IndexM];//记录当前的中间节点
            if(num==target)return IndexM;//如果目标就是中间节点直接返回
            else if(num>target)//如果中间节点大于目标节点说明需要查找的数在中间节点左侧
            {
                IndexR=IndexM-1;//移动最右节点至中间节点-1
                IndexM=(IndexL+IndexR)/2;//重新记录节点
            }
            else{
                IndexL=IndexM+1;//同上
                IndexM=(IndexL+IndexR)/2;
            }
        }
        return -1;
    }
};

面经:

1. c++中类的三大特性

在C++中,类的三大特性是指封装、继承和多态

  • 封装:它指的是将数据和操作数据的函数捆绑在一起,形成一个对象。在C++中,通过访问修饰符(public, private, protected)来实现封装。封装的目的是隐藏对象的内部细节,仅对外提供有限的接口,从而保护对象不被外部任意访问和修改。

public成员可以在类的外部被访问。

private成员只能被类的内部成员函数访问。

protected成员可以被类本身、子类以及类的友元函数访问。

  • 继承:继承允许我们根据一个类(称为基类或父类)来创建新的类(称为派生类或子类)。派生类继承了基类的方法和属性,可以添加新的方法和属性,或者修改继承来的行为。继承机制促进了代码的复用,并且建立了类之间的关系层次。

公有继承:基类的公有成员和保护成员在派生类中保持其访问属性。

保护继承:基类的公有成员和保护成员在派生类中变为保护成员。

私有继承:基类的公有成员和保护成员在派生类中变为私有成员。

  • 多态:多态是指在继承关系中,同一个操作作用于不同的对象时可以有不同的解释和行为。在C++中,多态通常通过虚函数实现,允许使用基类的指针或引用来调用派生类中重写的函数。

要实现多态,通常遵循以下步骤:

   在基类中声明虚函数,在派生类中重写这些虚函数。

   使用基类的指针或引用来指向派生类的对象。

   当通过基类指针或引用调用虚函数时,会根据对象的实际类型来调用相应的函数版本。

2. 什么是构造函数和析构函数,他们有什么作用 

构造函数

语法:类名(){}

构造函数的作用是为成员变量赋值,由编译器自动调用无需手动调用。

构造函数的特点:

  •    没有返回值不写void
  •    名与类名相同
  •    在调用对象的时候自动调用一次
  •    可以有参数,可以重载
  •    实现构造函数后,编译器将不再提供默认构造,但是会提供默认拷贝构造
  •    如果实现了拷贝构造则编译器将不提供其他构造

析构函数

语法:~类名( ){ }

析构函数的作用是释放指针类型成员变量指向的内存堆区

析构函数特点:

  •     没有返回值不写void
  •     名与类名相同
  •     没有参数,不能重载。
  •     在对象销毁前自动调用一次

 

标签:函数,nums,成员,基类,冲刺,派生类,实习,节点,第十三天
From: https://blog.csdn.net/m0_74381802/article/details/143494418

相关文章

  • UsingAI-算法实习生(数学方向)一面面经分享(10分钟):
    题目:1.继承和封装的特性2.Python中的多线程是真的多线程吗?是怎么实现的3.l1和l2正则化的对比(深度,收敛速度)4.神经网络的学习因子过大会导致什么5.卷积神经网络的核函数是越大越好的吗6.对于很大的数据集,怎样提高决策树的效率7.什么是模型过拟合,又怎么处理8.k值分类以文......
  • [赛记] 多校A层冲刺NOIP2024模拟赛16 && 17
    四舍五入100pts对于一个数$x$,可以发现它的答案可以分成两部分,一部分在$[2x+1,n]$范围内,一部分在小于它的数的范围内,前者$\Theta(1)$算,对于后者,我们发现满足这个要求的数$y$一定有$x\mody<w(x,y)$($w(x,y)$定义为如果$x\mody=0$,则$w(a,......
  • 本科阶段讲个透(全)|保研/推免(流程、时间、前期必要的准备、心得感悟)、考试学习(思政类、
    文章目录一、前言二、保研/推免2.1保研流程2.2保研的前期准备2.3保研心得2.4如何择校三、考试学习(学习方法、学习时间、记忆方法、各科的学习大致规划)四、科研竞赛(途径、队友、机会)五、志愿六、社会工作七、就业7.1为什么考虑就业7.1明白自己具体做什么7.2招聘看......
  • 多校A层冲刺NOIP2024模拟赛17
    多校A层冲刺NOIP2024模拟赛17T1、网格首先看上去很麻烦,但是最终所有的式子都可以写成几个数的积相加的形式,那么我们只要处理数(拼接起来)、数的积以及积的和。那么我们维护三个变量,第一个是$x$,表示最后一个积前面所有的数和,第二个是$y$,表示目前的积,第三个是z,表......
  • 多校 A 层冲刺 NOIP2024 模拟赛 17
    多校A层冲刺NOIP2024模拟赛17T1网格签到题注意到\(+\)与\(\times\)由于优先级其实是分开的,所以可以考虑每到达一个\(+\)计算一次贡献(乘上一个组合数),然后将前置贡献重新赋值为方案数,DP只需考虑连续\(\times\)段即可。时间复杂度\(O(nm)\)。T2矩形根号分治发现不......
  • NoSQL数据库实习头歌实验知识点整理(二)-MongoDB部分
    文章目录1-1初识MongoDB1.1DOS(Windows)端启动MongoDB服务1.1.1配置环境变量1.1.2启动服务并进行相关配置1.2Linux端启动MongoDB服务1.2.1数据存放位置1.2.2日志文件1.2.3配置文件1.3启动客户端1.4退出客户端1.5关闭MongoDB服务1.5.1能连接到客户端时1......
  • 【考试题解】多校A层冲刺NOIP2024模拟赛17
    A.网格(grid)题目内容给你一个\(n\timesm\)的字符网格\(s\),\(s_{i,j}\in[1,9]\cup\{+,*\}\),从\((1,1)\)开始,仅向下或向右走并最终到达\((n,m)\)的路径被称为合法路径,求所有合法路径对应的表达式的运算结果之和,答案对\(998244353\)取模。部分分44pts爆搜,枚举路径,......
  • 『模拟赛』多校A层冲刺NOIP2024模拟赛17
    Rank一般A.网络签不上的签到题。首先考虑枚举路径的做法,如果先枚举再计算的话复杂度会是\(\mathcal{O(\binom{n+m-2}{n-1}(n+m))}\)的,稍微优化一点的过程中可以去掉后面的\((n+m)\)。考虑此时我们要记什么,首先遇到加号其前面的值\(z\)就确定了,若上个符号为乘号那么......
  • PMP–一、二、三模、冲刺–分类–8.质量管理–技巧–成本效益分析
    文章目录技巧一模1.引论--阶段关口--为做出进入下个阶段、进行整改或结束项目集或项目的决定,做的阶段未审查。审查一个阶段末的问题,做成本效益分析,以决定下个阶段的项目。39、[单选]在新目标国家推出产品前不久,公司意识到该产品并不完全符合当地的数据隐私法。由于预算......
  • 多校 A 层冲刺 NOIP2024 模拟赛 16
    多校A层冲刺NOIP2024模拟赛16T1四舍五入签到题注意到一个数是否会入上去只和其剩余系有关,即满足\(i\modj<\frac{1}{2}j\),会入上去,考虑枚举j的倍数,其贡献就成了一个区间,差分即可。时间复杂度是调和级数的,为\(O(n\lnn)\)。T2填算符贪心,特殊性质显然将所有\(\&\)放......