《剑指offer》
__矮油不错哟
多多交流
展开
-
牛客《机器学习》习题收集整理
牛客习题讲解收集(以下数据均来自牛客网): 01.关于 logit 回归和 SVM 不正确的是() A.Logit回归目标函数是最小化后验概率 B.Logit回归可以用于预测事件发生概率的大小 C.SVM目标是结构风险最小化 D.SVM可以有效避免模型过拟合 解析:答案:A A. Logit回归本质上是一种根据样本对权值进行极大似然估...原创 2018-04-23 11:43:13 · 2383 阅读 · 1 评论 -
《剑指offer》面试题18——树的子结构(C++)
题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路: 链接:https://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88 来源:牛客网思考: 1.首先需要递归pRoot1树,找到与pRoot2根一样的节点,这需要一个遍历 2.找到相同...转载 2018-05-22 22:02:43 · 758 阅读 · 0 评论 -
[编程题] 被3整除
题目链接: https://www.nowcoder.com/test/question/51dcb4eef6004f6f8f44d927463ad5e8?pid=9763997&tid=15741750题目描述: 小Q得到一个神奇的数列: 1, 12, 123,…12345678910,1234567891011…。 并且小Q对于能否被3整除这个性质很感兴趣。 小Q现在希...转载 2018-05-23 11:11:09 · 876 阅读 · 0 评论 -
《剑指offer》面试题19——二叉树的镜像(C++)
操作给定的二叉树,将其变换为源二叉树的镜像。递归思想。代码:#include<iostream>#include <vector>#include <queue>using namespace std;struct TreeNode { int val; struct TreeNode *left; ...原创 2018-05-23 11:32:59 · 222 阅读 · 0 评论 -
《剑指offer》面试题24——二叉搜索树的后序遍历序列(C++)
1.题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。2.解题思路:链接:https://www.nowcoder.com/questionTerminal/a861533d45854474ac791d90e447bafd 来源:牛客网 采用分治法的思想,找到根结点、左子树的序列、...原创 2018-05-23 13:32:17 · 257 阅读 · 0 评论 -
《剑指offer》面试题25——二叉树中和为某一值的路径
题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。代码://主函数——核心代码vector<vector<int> > allRes;vector<int> tmp;void bfsFind(TreeNode* node, int expectN...原创 2018-05-23 15:58:06 · 169 阅读 · 0 评论 -
《剑指offer》面试题33、32——把数组排成最小的数、整数中1出现的次数
31.把数组排成最小的数输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。代码:```#include&amp;lt;iostream&amp;gt;#include&amp;lt;algorithm&amp;gt;using namespace std;//链接:https://w...转载 2018-05-28 19:23:09 · 217 阅读 · 0 评论 -
《剑指offer》面试题60——把二叉树打印成多行(C++)
题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。vector&lt;vector&lt;int&gt; &gt; Print(TreeNode* pRoot){ vector&lt;vector&lt;int&gt; &gt; vec; if(pRoot==NULL) return vec; que原创 2018-05-24 11:31:09 · 184 阅读 · 0 评论 -
《剑指offer》面试题46、47、49
//面试题46:求1+2+3+...+n//求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。int Sum_Solution(int n){ int ans=n; ans&amp;amp;amp;&amp;amp;amp;(ans+=Sum_Solution(n-1)); return ans;}/...转载 2018-05-24 12:06:14 · 296 阅读 · 0 评论 -
《剑指offer》面试题——把数组排成最小的数
1.题目描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。2.解题思路:http://cuijiahua.com/blog/2018/01/basis_32.html 遇到这个题,全排列当然可以做,但是时间复杂度为O(n!)。在这里我们自己定义一个规则,...转载 2018-06-22 10:32:42 · 230 阅读 · 0 评论 -
《剑指offer》面试题34——丑数
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。代码://要注意,后面的丑数是有前一个丑数乘以2,3,5中的一个得来。因此可以用动态规划去解//同时注意一下,题目意思应该是质数因此,而不是因子,因为8的因子有1,2,4,8链接:https://www.now...转载 2018-05-31 17:13:52 · 160 阅读 · 0 评论 -
《剑指offer》面试题41/42——和为s的两个数字VS和为s的连续正数序列(C++代码实现)
和为s的两个数字VS和为s的连续正数序列1. 和为s的两个数字;1)思路:假设数组升序排列: 定义两个指针min 和max; 如果这两个指针指向的数字等于sum,则找到; 如果和小于sum,则将min向右移; 如果和大于sum,则将max向左移。2)代码:#include &amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;vector&amp;amp;原创 2018-07-12 11:41:44 · 479 阅读 · 0 评论 -
《剑指offer》面试题42——翻转单词顺序列
1.题目描述:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?2:Pytho...原创 2018-07-15 18:22:05 · 168 阅读 · 0 评论 -
网易编程题目——相反数:
网易相反数: 为了得到一个数的”相反数”,我们将这个数的数字顺序颠倒,然后再加上原先的数得到”相反数”。例如,为了得到1325的”相反数”,首先我们将该数的数字顺序颠倒,我们得到5231,之后再加上原先的数,我们得到5231+1325=6556.如果颠倒之后的数字有前缀零,前缀零将会被忽略。例如n = 100, 颠倒之后是1. 输入描述:输入包括一个整数n,(1 ≤ n ≤ 10^5)...原创 2018-04-28 13:42:51 · 872 阅读 · 0 评论 -
《剑指offer》面试题23——从上往下打印二叉树
从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:二叉树的层次遍历,借助一个队列实现。代码:#include&amp;lt;iostream&amp;gt;#include &amp;lt;vector&amp;gt;#include &amp;lt;queue&amp;gt;using namespace std;struct TreeNode {转载 2018-05-22 19:03:26 · 122 阅读 · 0 评论 -
《剑指offer》面试题27——二叉搜索树与双向链表(C++)
二叉搜索树与双向链表#include &quot;bintree.h&quot;TreeNode* LastTail=NULL; //记录已经转换部分的尾结点TreeNode* RealHead=NULL; //双向链表的头结点void ConvertSub(TreeNode* Node){ if(Node==NULL) return; ...原创 2018-05-24 17:28:34 · 611 阅读 · 0 评论 -
《剑指offer》面试题5———从尾到头打印链表(C++ 实现)
1、题目:https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&amp;amp;tqId=11156&amp;amp;tPage=1&amp;amp;rp=1&amp;amp;ru=/ta/coding-interviews&amp;amp;qru=/ta/coding-interviews/question-ranking2原创 2018-05-12 14:33:16 · 231 阅读 · 0 评论 -
C/C++中如何接收return返回来的数组元素
原文链接:https://www.cnblogs.com/Wade-James/p/7965775.html一、返回传入数组指针的方式1)通过传入一个空的数组头地址,返回这个变量2) 我们知道静态变量能够在整函数作用有效那么,我们可以定义一个静态的局部变量的数组来达到返回的效果:二、以指针变量作为函数参数,实现数组的返回我们知道return语句作为被调用函数...转载 2018-06-25 11:06:05 · 1703 阅读 · 0 评论 -
《剑指offer》面试题31——连续子数组的最大和
1.题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向...转载 2018-05-26 19:13:14 · 197 阅读 · 0 评论 -
《剑指offer》面试题30——最小的k 个数
《剑指offer》面试题30——最小的k 个数1.题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。2.解题思路:1。全排序。时间复杂度O(nlogn)。 2。Partiton思想 ——用快速排序,时间复杂度O(n) 。 3。最大堆 时间复杂度O(nlogk) 4。红黑树:multis...转载 2018-05-26 16:04:36 · 558 阅读 · 0 评论 -
算法——查找和排序
查找算法:顺序查找、二分查找、哈希表查找、二叉排序树查找。 排序算法:插入排序、冒泡排序、归并排序、快速排序等。以下皆为转载: 原文地址: https://www.cnblogs.com/wxisme/p/5243631.html1.1 冒泡排序:冒泡排序是最简单的排序之一了,其大体思想就是通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得...转载 2018-05-11 16:52:34 · 14805 阅读 · 0 评论 -
二分法查找——C++代码
参考代码: https://www.cnblogs.com/wanglog/p/6650695.html伪代码:输入:排序好的数组array,需要查找的字key输出:对应的下表----------定义low,high,midwhile(low<high){mid=(low+high)/2;if (array[mid]==key) return mid;...原创 2018-05-12 15:53:12 · 11691 阅读 · 6 评论 -
网易校招——魔法币问题
魔法币时间限制:1秒空间限制:32768K 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币。 魔法机器1:如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币 魔法机器2:如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币 小易采购魔法神器总共需要n个魔法币,所以小易只原创 2018-04-27 23:49:03 · 215 阅读 · 0 评论 -
剑指offer(数值的整数次方)
数值的整数次方 解题思路: 注意考虑不同的情况: 1:指数为整数,包括正整数、负整数和0; 2:对于底数为0,指数为负数 的情况,此时0作分母,要出错。。在计算机中表示小数(包括float和double类型)都有误差,,我们不能直接用等号(==)判断两个数是否相等。。如果两个数的差的绝对值很小,比如小于0.0000001,就可以认为这两个数相等。#include&lt;iostre...原创 2018-05-19 15:07:09 · 311 阅读 · 0 评论 -
数组中的奇数排在偶数组前面
单纯的使得奇数在前,偶数在后,不考虑相对位置#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;vector&amp;amp;gt;#include&amp;amp;lt;windows.h&amp;amp;gt;using namespace std;void reOrderArray(vector&amp;am原创 2018-05-19 16:06:58 · 292 阅读 · 0 评论 -
《剑指offer》面试题15——链表中倒数第k个结点
输入一个链表,输出该链表中倒数第k个结点。#include&lt;iostream&gt;#include&lt;vector&gt;#include&lt;windows.h&gt;using namespace std;struct ListNode { int val; ListNode *next;};ListNode* FindKthToTail (...原创 2018-05-19 17:12:03 · 136 阅读 · 0 评论 -
《剑指offer》面试题16——反转链表(C++)
输入一个链表,反转链表后,输出链表的所有元素。 解题思路: 用三个指针分别指向当前结点pPrev,前结点pNode,后结点pNext。 如果当前结点为尾结点(当前结点的后结点为空时),则新的头结点指向该结点; 否则: 当前结点的指针指向前结点(指针反向)、前指针后移、当前指针后移。#include&lt;iostream&gt;using namespace std;struct...原创 2018-05-21 11:25:33 · 210 阅读 · 0 评论 -
《剑指offer》面试题17——合并两个有序的链表(C++):
题目描述:#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt;using namespace std;struct ListNode { int val; struct ListNode *next;};void MYPrint(ListNode *p) //打印链表{ while(p!=NULL) { cout&amp;amp;amp;lt;&a原创 2018-05-21 12:00:47 · 405 阅读 · 0 评论 -
《剑指offer》面试题20——顺时针打印矩阵(C++)
题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.#include&amp;lt;iostream&amp;gt;#include&amp;lt;vector&amp;gt;us...原创 2018-05-21 16:08:29 · 156 阅读 · 0 评论 -
《剑指offer》面试题21——包含min函数的栈(C++)
题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。解题思路: 构建一个辅助栈stack2,用来存放当前的最小值。代码:class Solution{ public: stack&lt;int&gt; stack1,stack2; //stack2是一个辅助栈,用于存放当前最小值 void push(in...原创 2018-05-21 17:02:10 · 167 阅读 · 0 评论 -
KNN——机器学习实战_Python3
机器学习实战from numpy import *import operatordef createDatSet(): group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels=['A','A','B','B'] return group,labelsdef classfy0(inX...原创 2018-05-20 16:08:39 · 298 阅读 · 0 评论 -
剑指offer(28)—数组中出现次数超过一半的数字
原文地址:https://blog.csdn.net/CYF18120161685/article/details/77678411题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路 解法1:哈希表,保存每个数字的...转载 2018-05-25 21:30:09 · 163 阅读 · 0 评论 -
旋转数组的最小数字(牛客网C++代码)
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。//折半查找–每次折半,时间复杂度logn#include<iostream>#include&...原创 2018-05-15 17:32:41 · 603 阅读 · 0 评论 -
斐波那契数列(剑指offer)
原文链接: 斐波那契数列的递归算法与非递归算法以下皆为转载。一、斐波那契数列由于斐波纳挈数列是以兔子的繁殖引入的,因此也叫“兔子数列”。它指的是这样一个数列:0,1,1,2,3,5,8,13……从这组数可以很明显看出这样一个规律:从第三个数开始,后边一个数一定是在其之前两个数的和。在数学上,斐波纳挈数列可以以这样的公式表示: F(0) = 0 F(1) = 1, F(n)...转载 2018-05-15 17:54:39 · 363 阅读 · 0 评论 -
变态跳台阶
1、题目描述:2、解题思路3、代码1、题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。链接:https://www.nowcoder.com/questionTerminal/22243d016f6b47f2a6928b4313c85387 来源:牛客网2、解题思路关于本题,前提是n...转载 2018-05-15 18:35:32 · 111 阅读 · 0 评论 -
《剑指offer》面试题22——栈的压入、弹出序列(C++)
1。题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)链接:https://www.nowcoder.com/questionTerm...原创 2018-05-22 11:01:56 · 729 阅读 · 0 评论 -
数据结构——树
图片来源:https://www.cnblogs.com/willwu/p/6007555.html树其实就是不包含回路的连通无向图。树的特性: 1)一棵树中的任意两个结点有且仅有唯一的一条路径连通; 2)一棵树如果有nnn个结点,则它一定有n−1n−1n-1条边; 3)在一棵树中加一条边将会构成一个回路。树这种数据结构的用途: 例如:家族的族谱图、公司的组织结构图、书的目录等...原创 2018-05-22 11:49:36 · 7684 阅读 · 0 评论 -
LeetCode路径问题
##LeeCode 63 UniquePath2左上角到右下角路径个数转载:https://blog.csdn.net/feliciafay/article/details/20509067题目如下:Follow up for “Unique Paths”:Now consider if some obstacles are added to the grids. How many un...转载 2018-09-23 20:45:32 · 486 阅读 · 0 评论