-
牛客网 剑指offer 含有min函数的栈
时间限制:1秒空间限制:32768K热度指数:10493本题知识点:栈**算法知识视频讲解题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。利用vector,min函数即为求最小值,遍历一遍vector即可,其余操作与stack无太大区别,因为vector一般也是尾部进行插入删除,最大值只需输出最后一个数即可代码如下:class Solution {public: void push(int value) { v.push_back(valu...…
-
牛客网 剑指offer 合并两个排序的链表
时间限制:1秒空间限制:32768K热度指数:13590本题知识点:链表**算法知识视频讲解题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。首先看A,B是否有空,若一个为空则直接返回另一个,若均不为空,则选择较小的为头,然后依次比较,直到一方为空,然后将剩下的接在result链表中代码如下:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val...…
-
牛客网 剑指offer 反转单链表
时间限制:1秒空间限制:32768K热度指数:15393本题知识点:链表**算法知识视频讲解题目描述输入一个链表,反转链表后,输出链表的所有元素。题解:定义一个节点,遍历所给节点,每次将节点放入定义节点的头部即可代码如下:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* R...…
-
牛客网 剑指offer 二进制中1的个数
时间限制:1秒空间限制:32768K热度指数:17492题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示利用逻辑与运算求1个数从最右边的1开始消去,每一次与运算消去一个1代码如下: int NumberOf1(int n) { int cnt=0; while(n!=0){ ++cnt; n=n&(n-1); //cout<<n<<endl; } return cnt; }…
-
牛客网 剑指offer 二叉树深度
时间限制:1秒空间限制:32768K热度指数:8903**算法知识视频讲解题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。我觉得给的函数一点都不好。。。咳咳。。。囧。。代码如下:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), ri...…
-
牛客网 剑指offer 不用加减乘除做加法
时间限制:1秒空间限制:32768K热度指数:6266**算法知识视频讲解题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。可以用++,–自增自减符号代码如下:class Solution {public: int Add(int num1, int num2) { if(num1<0){ num1=0-num1; for(int i=1;i<=num1;++i){ ...…
-
牛客网 剑指offer 重建二叉树
时间限制:1秒空间限制:32768K热度指数:15259题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。代码如下:/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * ...…
-
牛客网 剑指offer 双栈实现队列
时间限制:1秒空间限制:32768K热度指数:18329本题知识点:队列栈**算法知识视频讲解题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。注意点:当push时压入栈1,当pop,判断栈2是否为空,若为空将栈1的元素压入栈2,然后pop出栈顶元素,若不为空直接pop出来即可代码如下:class Solution{public: void push(int node) { this->stack1.push(node); +...…
-
牛客网 腾讯在线编程题 3
题目小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢?注意点:先从小到大进行排序,遍历一遍看有多少相同的数,若有相同数则min+=(n)*(n-1)/2,如果无相同数,则从小到大再次遍历即可获得最大的数为最小的数的个数*最大的数的个数(他们不相同),若相同则n*(n-1)/2代码如下:#include<iostream>#include<vector>#include<algorithm>#include<m...…
-
牛客网 腾讯在线编程题 2
题目小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗?我只想说有毒不是一个文件一个测试用例而是连续输入唯一的一点就是这特坑,浪费大量时间注意点:从后往前遍历,当前字符为大写时调到最后(利用cnt判断已经有多少个大写字母在后面),依次调整即可代码如下:#include<iostream>#include<string>using namespace std; int main(){ s...…
-
牛客网 腾讯在线编程题 1
题目给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。我只想说有毒不是一个文件一个测试用例而是连续输入唯一的一点就是这特坑动态规划最长公共子序列代码如下:#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;int LongestStrHui...…
-
牛客网 剑指offer 求1的个数
时间限制:1秒空间限制:32768K热度指数:6940**算法知识视频讲解题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。代码如下:class Solution {public: int NumberOf1Between1AndN_Solutio...…
-
牛客网 剑指offer 变态跳台阶
时间限制:1秒空间限制:32768K热度指数:18367**算法知识视频讲解题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。f(n)=f(1)+f(2)+f(3)+…+f(n-2)+f(n-1);f(n-1)=f(1)+f(2)+f(3)+…+f(n-2);f(n)=2*f(n-1)代码如下:class Solution {public: int jumpFloorII(int number) { i...…
-
牛客网 剑指offer 跳台阶
时间限制:1秒空间限制:32768K热度指数:22143**算法知识视频讲解题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。代码如下:class Solution {public: int jumpFloor(int number) { if(number==1)return 1; if(number==2)return 2; int cnt=jumpFloor(number-1); ...…
-
牛客网 剑指offer 6
时间限制:3秒空间限制:32768K热度指数:16390本题知识点:查找题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。代码如下:class Solution {public: int minNumberInRotateArray(vector...…
-
HEXO进阶
HEXO接近是最近有一些朋友提出的问题,然后我做了总结,如果你也在使用HEXO,不妨看看,应该会有些帮助。 1、博客部署样式出问题了怎么办? 2、电脑重装或者误删了本地博客怎么办? 3、想使用两台电脑写博客怎么办? 4、为何使用百度搜不到我的博客?使用Jekyll解决前三个问题。不得不说 Jekyll 确实可以解决我上面三个问题, 因为 Jekyll 是直接把Markdown格式的文章直接放在github仓库里的, 相当于直接用git来管理博客了, Github 官方也很推荐 Je...…
-
HEXO搭建个人博客
经过各种找资料,踩过各种坑,终于使用 hexo 搭建个人博客初步完成了,域名目前用得时 github 的,我的 hexo 是 3.1.1 版本,hexo 不同的版本,很多配置都不一样。好吧,废话不多说了,开始吧。 正文: 这边教程是针对与Mac的,参考链接,由于原文讲到的hexo是以前的老版本,所以现在的版本配置的时候会有些改动。 之前是想着写博客,一方面是给自己做笔记,可以提升自己的写作、总结能力,一个技术点我们会使用,并不难,但是要做到让让别人也能听懂我们讲得,还是需要一定的技巧和...…
-
Welcome to liangfh's Blog!
欢迎来到我的个人博客这是我在github上的第一篇博客,这一篇博客我将讲述我怎么想来到github上写自己的博客的和如何在github上搭建个人博客的过程 首先我之前写博客是在CSDN上写,在途中感觉CSDN支持的Markdown简直是太low了,他的中英文切换时竟然自动直接切到了最下面一行,这是最不能忍受的,当我打着字切换了一下中英文输入法,变到了最下面一行,试问一个想成为一个好的程序员的我怎么能继续这样呢。。。不过也有可能是我没发现他的解决方法,不喜勿喷 其二在...…