04 2022 档案

剑指 Offer 29. 顺时针打印矩阵
摘要:思路:循环打印即可,终止条件是存储数组的长度等于原始数组中元素的个数 Python: class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: res=[] if not matrix: return r 阅读全文
posted @ 2022-04-27 20:56 catch(...) 阅读(18) 评论(0) 推荐(0) 编辑
计算机网络:数据通信基础知识
摘要:典型的数据通信类型 数据通信相关术语 数据:传送信息的实体,通常是有意义的符号序列 信号:数据的电气/电磁的表现,是数据在传输过程中的几种形式 信源:产生和发送数据的源头 信宿:接受数据的终点 信道:信号的传输媒介,一般用来表示向某个方向传送信息的介质 通信的三种基本方式:1)单工通信2)半双工通信 阅读全文
posted @ 2022-04-22 16:36 catch(...) 阅读(589) 评论(0) 推荐(0) 编辑
操作系统:操作系统的基础概念
摘要:对应王道考研课程:王道计算机考研 操作系统_哔哩哔哩_bilibili 计算机系统的层次体系: 注意:操作系统是一种软件(系统软件),而非硬件 操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基 阅读全文
posted @ 2022-04-21 22:59 catch(...) 阅读(226) 评论(0) 推荐(0) 编辑
计算机网络:Faster RCNN
摘要:Faster RCNN=Fast RCNN+RPN Faster RCNN可以分为四个部分: 1)Conv Layer:特征提取网络,通过一组conv+relu+pooling来提取图像的feature map,用于后续的RPN来提取proposal 2)RPN(Region Proposal Ne 阅读全文
posted @ 2022-04-21 21:13 catch(...) 阅读(33) 评论(0) 推荐(0) 编辑
计算机视觉:Fast RCNN
摘要:提出的背景 Fast-RCNN的提出是为了解决RCNN存在的三大问题:1)训练步骤繁琐,region proposal要单独用Selective Search来生成,先要fune-tuning一个预训练的网络,然后针对每个类别训练一个SVM分类器,最后再通过回归器对bbox做回归。2)时间及内存消耗 阅读全文
posted @ 2022-04-21 20:11 catch(...) 阅读(51) 评论(0) 推荐(0) 编辑
计算机视觉:Object Detection
摘要:基于DL的深度学习目标检测算法主要可分为One-Stage和Two-Stage两大类,这两类分别是不同的实现思路。 One-stage 思路:直接通过卷积神经网络进行特征提取,进行分类和回归任务。 典型算法:RCNN系列(RCNN、Fast RCNN、Faster-RCNN、Mask-RCNN),S 阅读全文
posted @ 2022-04-21 17:42 catch(...) 阅读(39) 评论(0) 推荐(0) 编辑
数据结构:二叉树的前、中、后序遍历
摘要:前序遍历: class Solution: def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]: self.res=[] def dfs(root): if not root: return None self.res 阅读全文
posted @ 2022-04-20 23:59 catch(...) 阅读(41) 评论(0) 推荐(0) 编辑
数据结构:常见的排序算法及思想
摘要:稳定排序:归并排序、冒泡排序、插入排序、基数排序、桶排序不稳定排序:选择排序、快速排序、堆排序、希尔排序 划分排序算法稳定与否的依据:排序前后两个相等的数相对位置不变,则算法稳定,否则不稳定。 1.冒泡排序 时间复杂度:O(n) def bubble_sort(testlist): for i in 阅读全文
posted @ 2022-04-20 23:51 catch(...) 阅读(152) 评论(0) 推荐(0) 编辑
剑指 Offer 16. 数值的整数次方
摘要:思路:快速幂 demo:a的11次方,11可表示为1011,则可表示为a(2**0+2**1+2**3) class Solution: def myPow(self, x: float, n: int) -> float: if n < 0:x,n = 1/x,-n res = 1 while n 阅读全文
posted @ 2022-04-20 23:17 catch(...) 阅读(13) 评论(0) 推荐(0) 编辑
剑指 Offer 41. 数据流中的中位数
摘要:Python: class MedianFinder: def __init__(self): """ initialize your data structure here. """ self.stack=[] def addNum(self, num: int) -> None: self.st 阅读全文
posted @ 2022-04-20 22:26 catch(...) 阅读(17) 评论(0) 推荐(0) 编辑
剑指 Offer 67. 把字符串转换成整数
摘要:思路:模拟,排除边界情况 Python: class Solution: def strToInt(self, str: str) -> int: if not str or (len(str)==1 and (str[0]<'0' or str[0]>'9')): return 0 str=str 阅读全文
posted @ 2022-04-20 21:52 catch(...) 阅读(17) 评论(0) 推荐(0) 编辑
剑指 Offer 48. 最长不含重复字符的子字符串
摘要:思路:滑动窗口,通过check函数来判断是否数组元素唯一,若不唯一,更新start位置,若唯一,更新max_len Python: class Solution: def lengthOfLongestSubstring(self, s: str) -> int: max_len=float('-i 阅读全文
posted @ 2022-04-20 16:46 catch(...) 阅读(11) 评论(0) 推荐(0) 编辑
剑指 Offer 47. 礼物的最大价值
摘要:思路:简单dp,首先走第一行/第一列时只能是直行,所以初始化第一行和第一列的值,dp中存放到此点,可收获礼物的最大值。 Python: class Solution: def maxValue(self, grid: List[List[int]]) -> int: row=len(grid) co 阅读全文
posted @ 2022-04-20 16:35 catch(...) 阅读(11) 评论(0) 推荐(0) 编辑
剑指 Offer 56 - II. 数组中数字出现的次数 II
摘要:思路:建立哈希表 Python: class Solution: def singleNumber(self, nums: List[int]) -> int: adict={} for i in range(len(nums)): if nums[i] not in adict: adict[nu 阅读全文
posted @ 2022-04-20 16:08 catch(...) 阅读(16) 评论(0) 推荐(0) 编辑
剑指 Offer 53 - II. 0~n-1中缺失的数字
摘要:排序数组中的搜索问题,首先要想到用二分法来解决 思路:如果nums[mid]==mid,说明从left到mid位置都是有序的,left=mid+1,否则说明left到mid位置不是有序的,right=mid-1。 Python: class Solution: def missingNumber(s 阅读全文
posted @ 2022-04-19 22:11 catch(...) 阅读(16) 评论(0) 推荐(0) 编辑
剑指 Offer 53 - I. 在排序数组中查找数字 I
摘要:思路:辅助字典,若存在,则返回字典中相应键对应的值。若不存在,返回0。 Python: class Solution: def search(self, nums: List[int], target: int) -> int: from collections import Counter hel 阅读全文
posted @ 2022-04-19 21:12 catch(...) 阅读(14) 评论(0) 推荐(0) 编辑
剑指 Offer 30. 包含min函数的栈
摘要:思路:用辅助栈来存动态的最小值,pop时弹出栈顶的最小值即可。 Python: class MinStack: def __init__(self): """ initialize your data structure here. """ self.stack=[] self.helpstack= 阅读全文
posted @ 2022-04-19 21:10 catch(...) 阅读(12) 评论(0) 推荐(0) 编辑
剑指 Offer 28. 对称的二叉树
摘要:思路:递归的思想,当头节点不存在时直接返回True,递归遍历左右节点的值。 Python: # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.le 阅读全文
posted @ 2022-04-19 20:21 catch(...) 阅读(15) 评论(0) 推荐(0) 编辑
剑指 Offer 50. 第一个只出现一次的字符
摘要:思路:查表法,首先建立字典,遍历字符串判断字典中的值是否为1,若为1,则返回。 Python: class Solution: def firstUniqChar(self, s: str) -> str: if not s: return ' ' from collections import C 阅读全文
posted @ 2022-04-18 22:27 catch(...) 阅读(13) 评论(0) 推荐(0) 编辑
剑指 Offer 32 - III. 从上到下打印二叉树 III
摘要:思路:在二叉树的层序遍历基础上加一个校验位,通过校验位来判断此层需要正序添加还是逆序添加。 Python: class Solution: def levelOrder(self, root: TreeNode) -> List[List[int]]: res=[] if not root: ret 阅读全文
posted @ 2022-04-18 22:23 catch(...) 阅读(10) 评论(0) 推荐(0) 编辑
剑指 Offer 32 - II. 从上到下打印二叉树 II
摘要:思路:遍历每层,将每层的节点的value存到tmp数组中,每迭代完成一层,将tmp存入至res并清空。 Python: class Solution: def levelOrder(self, root: TreeNode) -> List[List[int]]: res,queue=[],[] i 阅读全文
posted @ 2022-04-18 22:07 catch(...) 阅读(15) 评论(0) 推荐(0) 编辑
剑指 Offer 32 - I. 从上到下打印二叉树
摘要:思路:二叉树的前序遍历,存到res中返回。 Python: #dfsclass Solution: def levelOrder(self, root: TreeNode) -> List[int]: res=[] def dfs(root): if not root: return None re 阅读全文
posted @ 2022-04-18 21:24 catch(...) 阅读(15) 评论(0) 推荐(0) 编辑
剑指 Offer 25. 合并两个排序的链表
摘要:思路:遍历两个链表,按顺序添加在dummy链表后即可 Python: class Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: dummy=res=ListNode(None) while l1 阅读全文
posted @ 2022-04-18 21:21 catch(...) 阅读(18) 评论(0) 推荐(0) 编辑
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
摘要:思路:类似快排的思路,从两端开始查找,左边找到第一个偶数,右边找到第一个奇数进行交换,进入递归即可。 Python: class Solution: def exchange(self, nums: List[int]) -> List[int]: i,j=0,len(nums)-1 while i 阅读全文
posted @ 2022-04-18 21:09 catch(...) 阅读(12) 评论(0) 推荐(0) 编辑
C++中的this指针
摘要:概念:this实际上是成员函数得一个形参,在调用成员函数时将对象的地址作为实参传递给this。this这个形参是隐式的,并不会出现在代码中,而是在编译阶段由编译器隐式地将其添加至参数列表中。 this使用的基本原则:若代码不存在二义性隐患,就不必使用this指针 class Human { publ 阅读全文
posted @ 2022-04-18 11:56 catch(...) 阅读(30) 评论(0) 推荐(0) 编辑
计算机网络:分层结构
摘要:OSI七层模型 1.应用层 所有能和用户交互产生网络流量的程序 典型服务及协议: (1)文件传输(FTP) (2)电子邮件(SMTP) (3)万维网(HTTP) 2.表示层 用于处理在两个通信系统中交换信息的表示方式 功能1:数据格式变换(翻译) 功能2:数据加密解密 功能3:数据压缩和恢复 3.会 阅读全文
posted @ 2022-04-17 20:51 catch(...) 阅读(157) 评论(0) 推荐(0) 编辑
计算机网络:速率、时间相关的性能指标
摘要:速率 速率:速率即数据率或称数据传输率或比特率 带宽:表示网络的通信线路传输数据的能力,通常是指单位时间内从网络中的某一点到另一点所能通过的最高数据率。(网络设备支持的最高速度) 吞吐量:表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受网络的带宽或网络的额定速率的限制。 时间 延时:指 阅读全文
posted @ 2022-04-17 16:18 catch(...) 阅读(365) 评论(0) 推荐(0) 编辑
剑指 Offer 11. 旋转数组的最小数字
摘要:思路:遍历数组,如果后一个元素比前一个元素小,说明从此开始旋转,输出后一个元素。若遍历结束仍未找到,则说明旋转从index=0开始,输出队首元素。 Python: class Solution: def minArray(self, numbers: List[int]) -> int: if no 阅读全文
posted @ 2022-04-17 00:39 catch(...) 阅读(15) 评论(0) 推荐(0) 编辑
剑指 Offer 10- I. 斐波那契数列
摘要:思路:简单递归,脚本语言实现即可 class Solution: def fib(self, n: int) -> int: res=[0,1,1] if n<=2: return res[n] for i in range(3,n+1): res.append(res[i-1]+res[i-2]) 阅读全文
posted @ 2022-04-17 00:32 catch(...) 阅读(12) 评论(0) 推荐(0) 编辑
计算机网络:什么是TCP与UDP
摘要:概念 TCP:TCP是一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,会在传输开始前建立连接,传输结束后断开连接。此外,TCP还采取了多种保障传输可靠性的手段(确认包)。 UDP:UDP仅提供最基本的数据传输功能,UDP协议并不关心传输数据时的可靠性,在传输时也无需建立连接,将这些问题抛 阅读全文
posted @ 2022-04-17 00:28 catch(...) 阅读(122) 评论(0) 推荐(0) 编辑
剑指 Offer 06. 从尾到头打印链表
摘要:思路:遍历链表,通过数组来存储读取到的value,最终逆序输出 Python: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = N 阅读全文
posted @ 2022-04-17 00:13 catch(...) 阅读(15) 评论(0) 推荐(0) 编辑
剑指 Offer 05. 替换空格
摘要:思路:遍历查找空格进行替换 Python: class Solution: def replaceSpace(self, s: str) -> str: res=[] for c in s: if c==' ': res.append("%20") else: res.append(c) retur 阅读全文
posted @ 2022-04-17 00:08 catch(...) 阅读(16) 评论(0) 推荐(0) 编辑
剑指 Offer 04. 二维数组中的查找
摘要:思路:从第一行末尾元素进行查找,分别确定行列数(若最末尾元素小于target,则行数+1,若大于target,则列数-1) Python: class Solution: def findNumberIn2DArray(self, matrix: List[List[int]], target: i 阅读全文
posted @ 2022-04-16 22:14 catch(...) 阅读(23) 评论(0) 推荐(0) 编辑
剑指 Offer 03. 数组中重复的数字(C++)
摘要:思路1:对于排序后的数组,通过前后两个元素进行比较判定是否存在重复数字 代码实现 C++ class Solution { public: int findRepeatNumber(vector<int>& nums) { sort(nums.begin(), nums.end()); for (i 阅读全文
posted @ 2022-04-16 18:58 catch(...) 阅读(49) 评论(0) 推荐(0) 编辑
计算机网络:操作系统
摘要:操作系统 操作系统是管理计算机硬件和软件资源的计算机程序,提供一个计算机用户与硬件系统之间的接口,向上对用户程序提供接口,向下接管硬件资源 用户态和内核态 区分用户态和内核态的原因:用了避免操作系统和关键数据被用户程序破坏,将处理器的执行状态分为用户态和内核态 用户态:用户程序执行时处理器所处的状态 阅读全文
posted @ 2022-04-15 23:53 catch(...) 阅读(63) 评论(0) 推荐(0) 编辑
计算机网络:进程/线程
摘要:进程和线程的区别 1.进程是资源分配的最小单位,线程是CPU调用的最小单位 2.一个线程只能属于一个进程,一个进程可以有多个线程,但至少有一个线程,线程依赖于进程而存在 3.进程在执行过程中拥有独立的地址空间,而多个线程共享进程的内存空间 4.进程间不会相互影响,一个进程中某个线程挂掉会导致整个进程 阅读全文
posted @ 2022-04-15 23:48 catch(...) 阅读(94) 评论(0) 推荐(0) 编辑
计算机网络:TCP协议三次握手和四次挥手的过程
摘要:三次握手 所谓的三次握手是指在建立一个TCP连接时,需要客户端和服务器总共发送三个包: 1.第一次握手:建立连接时,client发送SYN包到server,并进入SYN_SEND状态,等待server确认(SYN:同步序列编号) 2.第二次握手:server收到SYN包,必须确认client的SYN 阅读全文
posted @ 2022-04-15 23:39 catch(...) 阅读(129) 评论(0) 推荐(0) 编辑
C++中的多态机制
摘要:概念 多态:不同对象进行相同操作或行为而产生的不同的结果或状态 虚函数 虚函数是定义在基类中的函数,派生类必须对其进行覆盖,在类中声明虚函数的格式如下: virtual void my_virtual_func(); 虚函数是多态的基础,有虚函数才能构成多态 构成多态的条件 1.必须存在继承关系 2 阅读全文
posted @ 2022-04-15 22:37 catch(...) 阅读(41) 评论(0) 推荐(0) 编辑
C++中的继承机制
摘要:继承的作用&概念: 继承机制允许依据某一个父类来定义多个子类,这使得创建和维护一个应用程序更加简单高效。 继承中依据访问权限有不同的子类访问类型: 一个派生类继承了所有的基类方法,但下列情况除外: 1.基类的构造/析构函数和拷贝构造函数 2.基类的重载运算符 3.基类的友元函数 继承demo: na 阅读全文
posted @ 2022-04-15 20:18 catch(...) 阅读(101) 评论(0) 推荐(0) 编辑
C++中的析构/构造函数
摘要:C++中的构造函数在类被实例化时自动调用,析构函数在对象消亡时自动被调用,用来释放对象占用的空间。 构造函数与析构函数与类名相同,析构函数在类名前加~。 class Line { public: void setLength(double len); double getLength(void); 阅读全文
posted @ 2022-04-15 16:45 catch(...) 阅读(43) 评论(0) 推荐(0) 编辑
C++中static/extern关键字的作用
摘要:声明&定义 变量定义的过程包括了声明,如果在多个文件中使用相同的变量,则需将变量及声明分离开来。 1.声明不会分配内存,但是定义会分配相应的内存空间 2.声明可以有很多次,但是定义只能有一次 Static void getShape() { static double width = 5.0; st 阅读全文
posted @ 2022-04-15 14:04 catch(...) 阅读(55) 评论(0) 推荐(0) 编辑

 
点击右上角即可分享
微信分享提示