11 2022 档案
摘要:一、题目 统计一个数字在排序数组中出现的次数。 二、思路 整个数组是单调递增的,我们可以利用二分法来加速查找的过程。 三、代码 class Solution { public: int binarySearch(vector<int>& nums, int target, bool lower) {
阅读全文
摘要:一、概念 简单工厂模式也叫静态工厂模式,是指由 一个工厂 决定创建哪一种产品类的实例,但它不属于GoF的23种设计模式。简单工厂模式适用于工厂类负责创建的对象较少的场景。(不属于标准的设计模式) 该工厂类一般是使用静态方法,根据我们传参的不同,返回不同的派生自同一个父类 或 实现同一接口的实例对象。
阅读全文
摘要:一、题目 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 二、思路 在一个长度为 n 的数组 nums 里的所有数字都在 0 ~ n-1
阅读全文
摘要:一、题目 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 二、思路 反转区间为前n的子串 反转区间为n到末尾的子串 反转整个字符串 三、代码 c
阅读全文
摘要:用g++命令执行C++多文件项目 (一)过程执行 C 或者 C++ 程序的执行过程分为 4 步,依次是预处理、编译、汇编和链接。 在执行 C++ 项目时,头文件是不需要经历以上这 4 个阶段的,只有项目中的所有源文件才必须经历这 4 个阶段。 假设,当前项目中有 1 个 student.h 头文件,
阅读全文
摘要:一、题目 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 二、思路 在 C++ 语言中, string 被设计成「可变」的类型,因此可以在不新建字符串的情况下实现原地修改。 三、代码 class Solution { public: string replaceSpace(string
阅读全文
摘要:当键入网址后,到网页显示,其间发生了什么? 一、孤单小弟--HTTP (一)浏览器做的第一步工作是解析 URL 首先浏览器做的第一步工作就是要对 URL (统一资源定位符Uniform Resource Locator)进行解析,从而生成发送给 Web 服务器的请求信息。 URL 里的各个元素的代表
阅读全文
摘要:一、应用层 应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。 二、传输层 在传输层会有两个传输协议,分别是 TCP 和 UDP。 TCP 的全称叫传输控制协议(Transmission Control Protocol)。TCP 相比 UDP 多了很多特性,比如流量控制、超时重传、拥塞
阅读全文
摘要:一、题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 二、思路 反转链表 三、代码 class Solution { public: ListNode* reverseList(ListNode* head) { ListNode *now = head, *pre =
阅读全文
摘要:一、二进制信号量 struct binary_semaphore { enum(zero, one) value; queueType queue; } void waitB(binary_semaphore s) { if (s.value == 1) s.value = 0; else//为0阻
阅读全文
摘要:一、预处理(预编译)阶段 1.头文件的包含 2.清除注释 3.宏的替换 4.处理所有的条件编译指令,如#ifdef #ifndef #endif等,也就是带#那些 5.保留#pargma指令 6.添加行号和文件名标识,方便调试使用 此时源程序还是文本文件。这个过程不会检查错误,生成预处理文件xxx.
阅读全文
摘要:一、问题 讨论一种错误:XXX已经在 main.obj 中定义 二、原因 头文件中定义了全局变量或者函数。注意:是定义,不是声明。在.h文件中定义变量和函数本身没有问题。但是如果.h被2个及以上的cpp引用了。或者"另一个.h"引用了这个头文件,而"另一个.h"又被多个cpp引用。都会报这个问题。
阅读全文
摘要:一、题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 二、思路 直接转数组 再数组反转 三、代码 class Solution { public: vector<int> reversePrint(ListNode* head) { vector <int>res; whi
阅读全文
摘要:〇、总览 (一)术语说明 稳定 :如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定 :如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序 :所有排序操作都在内存中完成;外排序 :由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度
阅读全文
摘要:一、题目 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 二、思路 两个栈,一个管输入,一个管输出,输出栈为空在把输入栈给倒
阅读全文
摘要:一、题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 二、思路 我的困扰是如何存储在数组,解决方案:将数组也传过去 三、代码 class Solution { public: void inorder(TreeNode* root, vector<int>& res) { i
阅读全文
摘要:一、题目描述 给你一个整数 n 。按下述规则生成一个长度为 n + 1 的数组 nums : nums[0] = 0 nums[1] = 1 当 2 <= 2 * i <= n 时,nums[2 * i] = nums[i] 当 2 <= 2 * i + 1 <= n 时,nums[2 * i +
阅读全文
摘要:一、显示文字 (一)代码实例 // 窗口(WIDTH * 0.85, 20)起位置显示坚持了多少秒 TCHAR s[20]; setbkmode(TRANSPARENT); // 文字字体透明 _stprintf_s(s, _T("%d秒"), liveSecond); settextcolor(W
阅读全文
摘要:一、Sleep (一)Sleep 功能: 执行挂起一段时间,也就是等待一段时间在继续执行 原理:Sleep函数是使调用Sleep函数的线程休眠,线程主动放弃时间片。当经过指定的时间间隔后,再启动线程,继续执行代码。Sleep函数并不能起到定时的作用,主要作用是延时。在一些多线程中,可能会看到Slee
阅读全文
摘要:一、ReLU(Rectified Linear Activation Function) ReLU是一个分段函数,当输入小于零的时候,输出为零,当输入大于零的时候,将输入值作为输出。 二、ReLU实现 def rectified(x): return max(0.0, x) 三、ReLU优点 (一)
阅读全文
摘要:一、题目描述 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组
阅读全文
摘要:float 是单精度浮点数,内存占4个字节,有效数字8位,表示范围是 -3.40E+38~3.40E+38。 double 是双精度浮点数,内存占8个字节,有效数字16位,表示范是-1.79E+308~-1.79E+308。 存储方式 float的存储方式如下图所示: 双精度的存储方式为:
阅读全文
摘要:一、题目描述 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。 二、思路 定义状态 dp[i][0
阅读全文
摘要:取绝对值函数在多个头文件均有定义 一、stdlib.h _Check_return_ int __cdecl abs (_In_ int _Number); _Check_return_ long __cdecl labs (_In_ long _Number); _Check_return_ lo
阅读全文
摘要:一、头文件 #include <graphics.h> 二、鼠标功能 以下截取自graphics.h的117行到145行 // Old mouse related functions旧鼠标相关功能 // Mouse message这个对应下面的UINT uMsg // WM_MOUSEMOVE Mo
阅读全文
摘要:一、题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 二、思路 根据状态的定义,由于 nums[i] 一定会被选取,并且以 nums[i] 结尾的连续子数组与以 nums[i - 1] 结尾的连续子
阅读全文
摘要:一、题目描述 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费。 二、思路 动态规划 三、代码 class
阅读全文
摘要:一、题目描述 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。 二、思路 动态规划 三、代码 class Solution
阅读全文
摘要:一、平衡二叉树 平衡二叉树(balanced binary tree)又称AVL树(Adelson-Velskii and Landis) 一棵平衡二叉树或者是空树,或者是具有下列性质的二叉排序树: 左子树与右子树的高度之差的绝对值小于等于1; 左子树和右子树也是平衡二叉排序树 为了方便起见,给每个
阅读全文
摘要:一、题目描述 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。 二、思路 动态规划 三、代码 class Solution { public: int fib(int n) { if(n<=1){ return
阅读全文
摘要:c/c++共有 1):修饰全局变量时,表明一个全局变量只对定义在同一文件中的函数可见。 2):修饰局部变量时,表明该变量的值不会因为函数终止而丢失。 3):修饰函数时,表明该函数只在同一文件中调用。 c++独有: 4):修饰类的数据成员,表明对该类所有对象这个数据成员都只有一个实例。即该实例归 所有
阅读全文
摘要:一、准备 https://easyx.cn/ 下载EasyX_20220901.exe,点击运行安装即可,这个好像还没有vs2022安装选项。 #include <graphics.h> 二、loadimage (一)参数解释 void loadimage(IMAGE *pDstImg, LPCTS
阅读全文
摘要:(一)题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的
阅读全文
摘要:一、面向过程语言和面向对象语言 C语言是面向过程语言,而C++是面向对象语言 (一)面向过程和面向对象的区别 (1)面向过程:面向过程编程就是分析出解决问题的步骤,然后把这些步骤一步一步的实现,使用的时候一个一个的依次调用就可以了。(2)面向对象:面向对象编程就是把问题分解成各个对象,建立对象的目的
阅读全文
摘要:一、问题描述 “假设你正在参加一个游戏节目,你被要求在三扇门中选择一扇:其中一扇后面有一辆车;其余两扇后面则是山羊。你选择了一道门,假设是一号门,然后知道门后面有什么的主持人,开启了另一扇后面有山羊的门,假设是三号门。他然后问你:“你想选择二号门吗?”转换你的选择对你来说是一种优势吗 二、概率论解法
阅读全文
摘要:给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。
阅读全文
摘要:一、SVR与一般线性回归的区别 SVR 一般线性回归 1.数据在间隔带内则不计算损失,当且仅当f(x)与y之间的差距的绝对值大于ϵ 才计算损失 1.只要f(x)与y不相等时,就计算损失 2.通过最大化间隔带的宽度与最小化总损失来优化模型 2.通过梯度下降之后求均值来优化模型 原理:SVR在线性函数两
阅读全文
摘要:一、标准方程法 二、求导加法 三、特殊求导 四、转置求导 五、系数求导
阅读全文
摘要:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 思路: 算就行了,不过标签是动态规划唉 代码: class Solution { public: vector<vector<int>> generate(int nu
阅读全文
摘要:给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 思路: 动态规划?递推 代码: class Solution { public: int minPathSum(vector<vector<in
阅读全文
摘要:一、快表 TLB(translation lookaside buffer,又称转换后援缓冲器、转换旁路缓冲区、快表) TLB是关联的快速内存。TLB条目由两部分组成:键(标签)和值。当关联内存根据给定值查找时,它会同时与所有键进行比较。 TLB是MMU中的一块高速缓存,其中存储了当前最可能被访问到
阅读全文
摘要:一、构造函数 (一)构造函数继承 1,如果子类没有定义构造方法,则调用父类的无参数的构造方法。 2,在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数且父类自己提供了无参构造函数,则会调用父类自己的无参构造函数。 3,在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数且父
阅读全文
摘要:一、为什么需要红黑树? 对于二叉搜索树,如果插入的数据是随机的,那么它就是接近平衡的二叉树,平衡的二叉树,它的操作效率(查询,插入,删除)效率较高,时间复杂度是O(logN)。但是可能会出现一种极端的情况,那就是插入的数据是有序的(递增或者递减),那么所有的节点都会在根节点的右侧或左侧,此时,二叉搜
阅读全文
摘要:一、页表 页表:又称页面映像表,存储在内存中,通过页表建立页(面)与物理块的索引。 二、页表项 页表项:在页表中,一个页号与其对应的物理块号称之为一个页表项(由已知条件知道大小是32位)。故页表项的数目就等于页(面)数目即为2^20个,全部页表项(页表中从上往下数)所需的地址也就是20位。 红框即为
阅读全文
摘要:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 思路: 这就是动态规划? 代码: class Solution { public: int climbStairs(int n) { if(n<=3){ return n; } i
阅读全文
摘要:题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 思路: 组合数学 代码: class Solution { pu
阅读全文
摘要:题目描述: 给你一个非负整数数组 nums ,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 假设你总是可以到达数组的最后一个位置。 思路: 找此跳范围内,可以跳到最远地方的下一个位置 class Solutio
阅读全文
摘要:给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 思路: 每次走到一个格子的时候,你检查现在格子里面的“能量”和你自己拥有的“能量”哪个更大,取更大的“能量”! 如果你有更多的能量,你就可以走的更
阅读全文
摘要:一、vector vector<int> v 创建 v.size() 返回元素个数 v.empty() 返回是否为空 v.clear() 清空元素 v.front() 返回第一个元素 v.back() 返回最后一个元素 v.push_back(x) v.emplace_back(x) 在最后一个向量
阅读全文