学习笔试ing
今天卡了吗
但行好事,莫问前程
展开
-
【offer7】数组中重复的数。
class Solution {public: // Parameters: // numbers: an array of integers // length: the length of array numbers // duplication: (Output) the duplicated number in the array number // Return value: true原创 2020-09-13 12:30:44 · 79 阅读 · 0 评论 -
【剑指offer6】不用加减乘除
运用异或题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。禁止使用加减乘除计算的话,我们很容易就能想到用位运算。第一步:我们试想,对于二进制相加,不考虑进位的话,如下:0+1=1,1+0=1;1+1=0,0+0=0;可以观察到,这和异或的结果是一样的。第二步:我们再来考虑进位的过程,上面的过程,只有1+1会产生进位,此时我们可以想象成两个数先做位与运算,然后再向左移动一位,只有两个数都是1的时候,位与得到的结果是1,其余都是0。第三步:相加,重复前两步,直到转载 2020-09-08 18:37:12 · 68 阅读 · 0 评论 -
【剑指offer5】二叉树的深度
二叉树的所有基本上就是,递归,递归,递归√class Solution {public: int TreeDepth(TreeNode* pRoot) { if(pRoot) { int le=0,ri=0,maxtree; le = TreeDepth(pRoot->left); ri = TreeDepth(pRoot->right);原创 2020-09-08 18:14:58 · 88 阅读 · 0 评论 -
【剑指offer3】变态跳台阶
没啥好说的,基础递归。f(n)=f(1)+f(2)+f(3)+……f(n-1)f(n-1)=f(1)+……+f(n-2)f(n) = 2f(n-1)class Solution {public: int jumpFloorII(int number) { if(number<=1) { return number; } else{ return jumpFloorII(nu原创 2020-09-08 15:31:25 · 43 阅读 · 0 评论 -
【剑指offer2】旋转数组(变形二分查找)
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组[3,4,5,1,2]为[1,2,3,4,5]的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。一共有两种方法,暴力和二分,复杂度为o(n)和o(logn):二分法:class Solution {public: int minNumberInRotateArray(vector<int> rotat原创 2020-09-07 16:04:59 · 124 阅读 · 0 评论 -
【剑指offer第一题】用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
昨天笔试了两道题,在牛客网,看到核心代码考核的时候,我整个人都傻了……这是个什么模式。找到了这个剑指offer,甚至发现了昨天笔试的原题,QWQ,唉注定过不了。定个小目标,七天刷二十道左右,一天两道,应该不是很难,先从简单的开始。第一个选定的时候栈模拟队列,不算难,主要是复习一下知识吧,毕竟好久没编了,手生。(1)用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。有参考网上大佬的各类文章,其中:https://blog.csdn.net/cherrydreamso原创 2020-09-06 23:18:53 · 139 阅读 · 0 评论 -
c++学习日记(1)
c++学习日记,基本选择知识计算机操作系统出现死锁的原因是什么?死锁的原因主要是:(1)bai 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺原创 2020-09-05 13:51:41 · 140 阅读 · 1 评论