- 博客(7)
- 收藏
- 关注
原创 反转链表(C++)——-剑指offer
题目描述:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。方法1:使用reverse函数(常用)vector<int> printListFromTailToHead(ListNode* head) { vector<int> ret; while (head) { ret.push_back(head->val);...
2020-05-05 17:16:54 299
原创 dfs+剪枝函数解决城市间最短路径
题目样例(2020华为C++笔试原题)N个城市,编号1到N。城市间有R条单向道路。每条道路连接两个城市,有长度和过路费两个属性。Bob只有K块钱,他想从城市1走到城市N。问最短共需要走多长的路。如果到不了N,输出-12<=N<=1000<=K<=100001<=R<=10000每条路的长度 L, 1 <= L <= 100每条路的过路...
2020-05-04 20:27:56 813 3
原创 构建乘积数组-剑指offer
构建乘积数组题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)class Solution{ public: vector<int> multiply(const vector<int>
2020-05-28 22:41:55 149
原创 数组中重复的数字-剑指offer
数组中重复的数字在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。7.1 暴力破解法第一重循环,i 扫描数组 numbers第二重循环,j 初始值设为 i+1,即 j 从 i 后的一个位置开始往后遍历并分别与 numbers[i]进行比较,一旦有相等,下标 i 的位置为第一个重复数字,将
2020-05-28 17:19:23 193
原创 重建二叉树-剑指offer
重建二叉树-剑指offer题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。1. 分析根据中序遍历和前序遍历可以确定二叉树,具体过程为:1.根据前序序列第一个结点确定根结点2.根据根结点在中序序列中的位置分割出左右两个子序列3.对左子树和右子树分别递归使用同样的方法继续分解例如:前序序列{1,2,4
2020-05-28 16:25:28 146
原创 violate限定符
1.volate是特征修饰符,主要目的是确保该指令不会因编译器优化而被省略,且要求每次直接读值。2.voalte跟机器有关,volate的程序在移植到新机器和新编译器后仍然有效,比如,程序包含一个系统定时更新时钟变量,当对象值在程序控制或检测外改变时,需要定义为volate。3.volate与const不同的是,合成的拷贝对volate对象无效,除非将形参指定为const volate引用,可...
2020-05-05 22:16:03 634
原创 TCP和UDP三次握手、四次握手、为什么三次握手、TCP和UDP区别等相关问题
TCP三次握手流程:第一次握手:客户端向服务器端发送连接请求报文段,报文段中包含数据通信初始序列,发送成功后,客户端进入SYN-SENT状态。第二次握手:服务器端接收客户端发送的连接请求报文段,进入SYN-RECEIVED状态,并向客户端发送ACK确认报文,里面包含自身的数据通信初始序列。第三次握手:客户端接收服务器端发送的ACK确认报文后,自身进入ESTABLISHED状态,并向服务器端...
2020-05-05 18:12:50 283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人