面试题
学苦以至
持之以恒,进取拼搏
展开
-
TCP 和UDP的区别以及各自的应用场景
1. UDP用户数据报协议UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。它有以下几个特点:1. 面向无连接UDP在发送报文前不需要建立连接,只要客户端想发送信息给服务器端就可以发送信息,并且不会对报文进行任何分组和重组操作。UDP:我们只是报文的搬运工!传输数据时:UDP对原创 2020-09-09 16:15:51 · 4724 阅读 · 0 评论 -
简单介绍OSI网络模型和TCP/IP四层模型
1. TCP/IP2.TCP/UDP3.三次握手/四次挥手原创 2020-09-09 15:14:24 · 1165 阅读 · 0 评论 -
Mysql数据库--事务
1. 概念mysql 事务是一个最小的不可分割的工作单元。事务能够保证一个业务的完整性。比如我们的银行转账:a->-100update user set money=money-100 where name='a';b->+100update user set money=money+100 where name='b';这就是一个事务,就是a给b转账,他俩的账户应该同时发生变化。实际程序中,如果只有一条语句执行成功了,而另外一条没有执行成功?出现数据前后不一致update原创 2020-09-08 22:28:24 · 167 阅读 · 0 评论 -
Mysql 三大设计范式
1. 第一范式1NF数据表中的所有字段都是不可分割的原子键;create table student1(id int primary key,name varchar(20),address varchar(30));insert into student values(1,‘zhagnsan’,‘中国辽宁沈阳’);insert into student values(2,‘lisi’,‘中国山东青岛’);insert into student values(3,‘wangwu’,‘中国原创 2020-09-07 12:24:55 · 125 阅读 · 0 评论 -
Mysql键表约束
1. 主键约束它能够唯一确定表中的一条记录,也就是通过给某个字段添加约束,就可以使得该字段不重复且不为空。create table user(id int primary key,name varchar(20));insert into user values(1,‘张三’); // id=1,name= 张三//重复插入1.张三就会报错,因为id是主键,具有唯一性所以再插入一个需要修改idinsert into user values(2,‘张三’); // id=2,name= 张原创 2020-09-07 11:32:33 · 125 阅读 · 0 评论 -
Mysql数据库
1. 数据库(database)1.1概念数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。RDBMS 即关系数据库管理系统(Relational Da原创 2020-09-07 10:42:38 · 315 阅读 · 1 评论 -
C/C++复杂指针变量的声明如何解读
1. 指针指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。2.定义一个简单指针int *p; // 代表这是指向int 的指针p,在该地址内存放的数据类型为整型int。int * func(int i,int j); //func是一个函数表示函数的返回值为int *int (*func) (int a, int原创 2020-09-05 14:19:49 · 251 阅读 · 0 评论 -
链表两数相加leetcode2
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807计算每一位的相加结果sum,并且使用flag保存进位信息,如果有进位信息su原创 2020-09-04 22:26:38 · 127 阅读 · 0 评论 -
leetcode54 螺旋矩阵按照一定规律输出矩阵的值
以周围四条边为边界,每次遍历一条边就让该条边的边界值内缩一,当两条对边的边界值相等时就表明遍历完成即可输出结果res代码如下#include<iostream>#include<string>#include<memory>#include<vector>#include<algorithm>using namespace std;class Solution {public: vector<int> spi原创 2020-09-04 21:09:39 · 105 阅读 · 0 评论 -
面试题美团默契游戏
原题:(默契游戏)小明和小红分别从整数区间[1,m]之间选取一个数,小明选取的数为l,小红选取的数为r,然后根据选取的数为边界判断数组中的数是否保留,同时对保留后的数组也有要求,要求如下要求:选取的l<=r;对于序列中的元素保留原则:元素x不能取在[l,r]之间的数,即0<x<l,r<x<m+1;要求保留下来的子序列单调不下降。非递减子序列。输入要求:输入第一行为两个正整数m,n,其中m为序列元素最大值,n为序列的长度[1<=n,m<=10000原创 2020-08-29 19:58:42 · 342 阅读 · 0 评论 -
面试笔试题中的LRU算法及其缺页次数替换
1 LRE算法LRU(最近最久使用法)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。每次更新数据时,就想数据中最久没有被使用的数据进行替换。如果是已有的数据那么就将该数据放到最前边。添加元素:1.新元素1)先判断链表中元素是否已满,如果元素已满,将最后的一个元素删除并将新元素放到链表最前边。因为链表最后一个数据表示的该数据最长时间未被使用。2)链表未满,将元素插入到链表的开头。2.非新元素:将链表中该元素直接覆盖,并且将该元素提原创 2020-08-29 14:03:25 · 3280 阅读 · 0 评论 -
leetcode 字母异或词的判断以及分组
问题1:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。:示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。判断思路:根据排序后的结果是否相同,判断是否符合要求。因为字母相同只是顺序不同,排序后的结果是一样的// 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词原创 2020-08-29 10:43:30 · 226 阅读 · 0 评论 -
动态规划--背包问题
0-1 背包问题N件物品 背包最大重量W,每个物品都有value和w每个物品都只能取一次,重量不超过W的情况下求价值最大。0<N,W<10000<wi,valuei<1000输入:N WN行:重量和价值wi valuei示例:4 51 22 43 44 58思路:先用表格即二维数组的想法规划一下,将没种情况都列举出来,最后找到最大值即可。f[i][j] 表示在j的重量下此时,只考虑前i个物品的最大价值此时俩种情况:1.不算i物品,此时f原创 2020-08-26 21:57:57 · 108 阅读 · 0 评论 -
经典排序算法及其代码实现
1. 冒泡排序2. 快速排序原创 2020-08-08 22:38:00 · 252 阅读 · 0 评论 -
C++三大特性,七项原则
1. C++面向对象三大特性1. 封装封装:把客观事物抽象为类,并且类可以把自己的数据和方法只让可信的类或对象操作,对不可信的进行信息隐藏。类将成员变量封装在类的内部,根据需求设置访问权限,通过成员函数管理内部状态。2. 多态多态简单讲可以概括为“一种接口,多种方法”,多种形态,程序在运行过程才决定要调用的函数,是核心概念。ps:重载,重写,重定义的区别:重载,同一作用域的同名函数1.同一个作用域2.参数个数,参数顺序,参数类型不同3.和函数返回值,没有关系4.const也可以作为原创 2020-08-07 22:45:06 · 785 阅读 · 0 评论 -
DFS 深度优先搜索 迷宫回溯问题,能否回到迷宫原地问题
问题描述:牛牛在一个迷宫中,迷宫有n个格子,有 m条通道,每条通道连接两个格子 u, v,编号为 u 的格子与编号为 v 的格子可互相到达,每人每条通道只能走一次。牛牛想知道,他是否能从 11号格子出发回到 1 号格子。输入第一行给定两个整数 n , m 。接下来 m 行,每行有两个整数 u,v 。//1≤n≤100,000 0≤m≤100,000 0≤L≤m//m对 u, v 互不相同//输出//若能回到 1号格子则返回Yes,否则返回No。问题思路:深度优先搜索算法从顶原创 2020-07-31 20:35:22 · 254 阅读 · 0 评论 -
面试题C++编程 车站建造问题,间隔要求必须为1或者为某个质数,求最小建造数量
题目描述有108个村庄排在一条公路上,依次编号为0~108-1,相邻村庄距离为1,其中有n个村庄居住着牛牛,居住着牛牛的村庄从小到大依次为a0~an-1,其中保证a0=0.现在需要建设车站,有两个要求必须被满足:1、每个有牛牛居住的村庄必须修建车站。2、相邻车站的距离必须为1或为某个质数。现给出n和a数组,求需要建设车站的最小数量。示例 13,[0,7,11]输出4说明在0,7,8,11处建造车站,差值分别为7,1,3,符合要求编程思想:根据题意可知,最少建造数量:为n原创 2020-07-31 15:44:08 · 234 阅读 · 0 评论