
校招刷题题库
程序远远
这个作者很懒,什么都没留下…
展开
-
构建乘积数组-剑指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 · 164 阅读 · 0 评论 -
数组中重复的数字-剑指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 · 205 阅读 · 0 评论 -
重建二叉树-剑指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 · 158 阅读 · 0 评论 -
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 · 854 阅读 · 3 评论