牛客刷题
cxycxycxyfighting
这个作者很懒,什么都没留下…
展开
-
2019.3.26牛客网第一套试题知识点整理——顺丰科技2019秋招信息安全工程师笔试题
1 二叉排序树:左子树<根<右子树2 排序算法的时间复杂度:冒泡、选择、插入——n*n(冒泡与选择的区别:冒泡排序是每一次都可能要交换,选择是最后只交换一次)快速、堆——nlogn(快速排序不适合有序程序比较高的序列,因为递归深度大)快速排序的代码实现:#include <iostream>using namespace std;int getIndex(in...原创 2019-03-26 21:30:26 · 1388 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
1 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。2 基本思路:①创建两个数组odd,even分别用来按照次序存放原数组中的奇数、偶数②把odd数组的值赋值给原数组的前一部分,把even数组的值赋值给原数组的剩余部分。3 具体代码:class Solution...原创 2019-05-10 15:35:12 · 106 阅读 · 0 评论 -
旋转数组的最小值
1 基本思路:旋转数组的特点:旋转数组只有在旋转的接口处(旋转前数组的最后一个元素和旋转前数组的第一个元素拼接的地方)会出现下降,其余大部分都是非递减的。利用这个特点,只要找到旋转数组中第一个比前一个元素小的元素,该元素就是旋转前数组的第一个元素,因为旋转前数组时非递减的,所以该元素即为数组中最小元素。这是一般情况。还需要考虑两个特殊情况:第一个是比较常规的特殊情况,就是数组长度为0的时候,返回...原创 2019-05-07 21:26:11 · 106 阅读 · 0 评论 -
用两个栈实现队列
1 基本思路:考查栈和队列的特点:栈是后进先出,队列是先进后出。入队很好解决,用栈1的入栈等同于队列的入队。出队的话,要出队的元素刚好被压在栈1的底部,这时候需要栈2作为中转,把栈1的全部元素依次弹出并压入栈2,此时要出队的元素就位于栈2的顶部,直接将其弹出。然后再把其余元素恢复:将栈2中剩余元素依次弹出并压入栈1。总而言之,出队就是把栈2作为中转,现将元素从栈1挪到栈2,此时栈2的出栈元素恰好...原创 2019-05-07 20:28:01 · 110 阅读 · 0 评论 -
递归实现斐波拉契数列
1 基本思路:递归终止条件+递归表达式2 代码class Solution {public: int Fibonacci(int n) { //递归的起始条件 if(n==0) return 0; else if(n==1) return 1; //递归表达式 ...原创 2019-05-07 17:38:10 · 718 阅读 · 0 评论 -
跳台阶
1 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。2 思路:完成第n节台阶,最后一步有两种情况:一是最后一步走1阶,二是最后一步走2阶。递归表达式:f(n)=f(n-1)+f(n-2)递归终止条件:当n=1时,f(n)=1; 当n=2时,f(n)=2;3 具体代码:class Solution {publi...原创 2019-05-08 16:09:23 · 104 阅读 · 0 评论 -
根据前序序列和中序序列重建二叉树
1 基本思路:前序遍历的第一个节点为根节点,找到根节点在中序遍历中的位置i。然后分别找到前序遍历中左子树对应的部分,前序遍历中右子树对应的部分,中序遍历中左子树对应的部分,中序遍历中右子树对应的部分,分别用四个数组来存储。然后分别对左子树、右子树递归调用,传入的参数也对应发生改变。2 代码实现:/** * Definition for binary tree * struct TreeNo...原创 2019-05-05 18:44:23 · 573 阅读 · 0 评论 -
牛客网c++工程师测试知识点整理
1 枚举类型枚举类型是能被列举的常量的一个集合。在枚举类型中,各常量的值只能是整型。2 sizeof(类)①类的大小为类的非静态成员数据的类型大小之和,也就是说静态成员数据不作考虑。②普通成员函数与sizeof无关。③虚函数由于要维护在虚函数表,所以要占据一个指针大小,也就是4字节。④类的总大小也遵守类似class字节对齐的,调整规则。3 字节对齐sizeof的结果往往都比你声明...原创 2019-03-29 21:48:35 · 453 阅读 · 0 评论 -
2019.4.6 C++三套练习知识点总和
1 字符常量字符常量只有一个字符。C语言中 \ddd 代表的是1到3位八进制字符。2 数组错误说法:数组大小必须在编译时确定。反例:可以动态分配数组。数组可以值参数、地址参数、引用参数传递给函数。3 cincin输入时遇到空格会结束在录入数组的时候,需要采取循环结构,cin语句在循环体中。cin输入结束条件 :遇到Enter、Space、Tab键。使用getline作为含空格的...原创 2019-04-06 23:28:29 · 134 阅读 · 0 评论 -
2019.03.26牛客网第二套题知识点整理——小米2019秋招算法笔试题
1 判别模型&生成模型监督学习分为判别模型和生成模型。判别模型:由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型。基本思想是有限样本条件下建立判别函数,不考虑样本的产生模型,直接研究预测模型。例子:SVM 、逻辑回归(LR)、决策树生成模型:由数据学习联合概率密度分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型。例子:朴素贝叶斯、隐马尔...原创 2019-03-27 16:06:19 · 1095 阅读 · 0 评论 -
链表中倒数第k个结点
1 题目:输入一个链表,输出该链表中倒数第k个结点。2 基本思路:由于链表是单向,所以只能从前向后,不能从后向前访问。所以反向思维:将链表的倒数第k个结点转换成正数第n-k+1个结点。(n代表链表中全部元素的个数)通过遍历链表并设置技术变量可以求得n。3 具体代码:class Solution {public: ListNode* FindKthToTail(ListNode* ...原创 2019-05-12 16:44:27 · 107 阅读 · 0 评论