Courage-Hu的专栏

GitHub: https://github.com/HelloQi
私信 关注
Courage-Hu
码龄7年

邮箱-couragehu@163.com

  • 52,800
    被访问量
  • 122
    原创文章
  • 57,931
    作者排名
  • 38
    粉丝数量
  • 于 2013-09-15 加入CSDN
获得成就
  • 获得118次点赞
  • 内容获得92次评论
  • 获得108次收藏
荣誉勋章
兴趣领域
  • #后端
    #分布式#MySQL#Redis#Linux#Go/GoLang#架构#C/C++#c#/.net/asp#Python
TA的专栏
  • Java
  • MySql
  • 服务器配置
    4篇
  • 区块链
    1篇
  • 经验感悟
    1篇
  • C++
    1篇
  • LeetCode之算法(c++)
    52篇
  • 剑指offer(C++)
    54篇
  • 大型网站技术架构
    9篇
  • 分布式数据库
    1篇
  • 大数据云平台
    3篇
  • 百度地图
  • Spring.Net
    3篇
  • TCP/IP
    1篇
  • Linux
    3篇
  • 数据结构与算法
    4篇
  • 计算机组成原理
  • 计算机理论基础
    1篇
  • 操作系统
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

数据可视化驾驶舱.rar

大数据可视化前端模板 大屏模板 数据可视化
rar
发布资源于 1 年前

12大数据可视化前端模板 大屏模板 数据可视化 .zip

大数据可视化前端模板 大屏模板 数据可视化
zip
发布资源于 1 年前

10大数据可视化前端模板 大屏模板 数据可视化 .zip

大数据可视化前端模板 大屏模板 数据可视化
zip
发布资源于 1 年前

09大数据可视化前端模板 大屏模板 数据可视化 .zip

大数据可视化前端模板 大屏模板 数据可视化
zip
发布资源于 1 年前

08大数据可视化前端模板 大屏模板 数据可视化 .zip

大数据可视化前端模板 大屏模板 数据可视化
zip
发布资源于 1 年前

07大数据可视化前端模板 大屏模板 数据可视化 .zip

大数据可视化前端模板 大屏模板 数据可视化
zip
发布资源于 1 年前

06大数据可视化前端模板 大屏模板 数据可视化 .zip

大数据可视化前端模板 大屏模板 数据可视化
zip
发布资源于 1 年前

05大数据可视化前端模板 大屏模板 数据可视化 .zip

大数据可视化前端模板 大屏模板 数据可视化
zip
发布资源于 1 年前

04大数据可视化前端模板 大屏模板 数据可视化 .zip

大数据可视化前端模板 大屏模板 数据可视化
zip
发布资源于 1 年前

03大数据可视化前端模板.zip

大数据可视化前端模板 大屏模板 数据可视化
zip
发布资源于 1 年前

02大数据可视化前端模板.zip

大数据可视化前端模板 数据方舱 html页面 echart 大屏界面 下载即用
zip
发布资源于 1 年前

01大数据可视化前端界面大屏.zip

大数据可视化前端模板 数据方舱 html页面 echart 大屏界面 下载即用
zip
发布资源于 1 年前

barrage-master.rar

动态云词库模板 3d旋转 模板 html代码 下载即可使用 弹幕词库
rar
发布资源于 1 年前

数组按数字出现频次排序

题目同时也是百度2018秋招的笔试题,LeetCode 451–根据字符出现频率排序的变形题意为从一个乱序数组中,将其中的整数按照出现的频次多少来排列,比如输入为[1,2,1,2,3,3,1,6,4,4,4,4],那么输出就应该为[4,4,4,4,1,1,1,2,2,3,3,6],其中,如果某两个数字的出现频次相同,那么就按照输入用例中的原顺序排列#include <iostre...
原创
1155阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--459 重复的子字符串

题目给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "a...
原创
86阅读
0评论
0点赞
发布博客于 2 年前

LeetCode--5 最长回文子串

题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"class Solution { int expendaroundcenter(string s,int left,int righ...
原创
70阅读
0评论
0点赞
发布博客于 2 年前

常见排序算法总结

一、什么是排序 二、排序算法分类 三、排序算法分析 四、排序时间和空间复杂度总结一、什么是排序参考博客:https://blog.csdn.net/xiazdong/article/details/7304239 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。 1.可以分为 稳定/不稳定。   稳定:如果a=b,排序前,a就在b前面,...
转载
67阅读
0评论
1点赞
发布博客于 2 年前

LeetCode 892--三维形体的表面积

题目在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。请你返回最终形体的表面积。示例示例 1:输入:[[2]]输出:10示例 2:输入:[[1,2],[3,4]]输出:34示例 3:输入:[[1,0],[0,2]]输出:16示例 4:输入:[...
原创
156阅读
0评论
0点赞
发布博客于 2 年前

LeetCode 451--根据字符出现频率排序

题目给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次。因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。示例 2:输入:"cccaaa"输出:"cccaaa"解释:'c'和'a'都出现三次。此外,"aaaccc"也是有效的答案...
原创
200阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--对称的二叉树

题目请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。非递归/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left...
原创
99阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--二叉树的下一个结点

题目给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。结合图,我们可发现分成两大类:1、有右子树的,那么下个结点就是右子树最左边的点;(eg:D,B,E,A,C,G) 2、没有右子树的,也可以分成两类,a)是父节点左孩子(eg:N,I,L) ,那么父节点就是下一个节点 ; b)是父节点的右孩子(eg:H,...
原创
73阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--删除链表中重复的结点

题目在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5class Solution {public: ListNode* deleteDuplication(ListNode* pHead) { ...
原创
180阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--链表中环的入口结点

题目给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNo...
原创
90阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--表示数值的字符串

题目请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。class Solution {public: bool isNumeric(char* str) { ...
原创
69阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--正则表达式匹配

题目请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配首先,考虑特殊情况: 1>两个字符串都为空,返回true 2&...
原创
142阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--构建乘积数组

题目给定一个数组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]。不能使用除法。class Solution {public: vector<int> multiply(const vector<int>& A) { ...
原创
60阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--数组中重复的数字

题目在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。class Solution {public: bool duplicate(int numbers[], ...
原创
59阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--把字符串转换成整数

题目将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0class Solution {public: i...
原创
614阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--不用加减乘除做加法

题目写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。/*首先看十进制是如何做的: 5+7=12,三步走第一步:相加各位的值,不算进位,得到2。第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。第三步:重复上述两步,只是相加的值变成上述两步的得到的结果2和10,得到12。同样我们可以用三步走的方式计算二进制值相加: ...
原创
111阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--求1+2+3+...+n

题目求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。class Solution {public: int Sum_Solution(int n) { int res = n; res&&(res+=Sum_Solution(n-1));...
原创
172阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--孩子们的游戏(圆圈中最后剩下的数)

题目每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....
原创
318阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--扑克牌顺子

题目LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12...
原创
101阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--翻转单词顺序列

题目牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?class Sol...
原创
192阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--左旋转字符串

题目汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!class Solution {public: string LeftRotateS...
原创
188阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--和为S的两个数字

题目输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。class Solution {public: vector<int> FindNumbersWithSum(vector<int> array,int sum) { vector<int> re...
原创
143阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--和为S的连续正数序列

题目小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序列...
原创
186阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--数组中只出现一次的数字

题目一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。class Solution {public: void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) { int len = data.size(); if(len<2...
原创
84阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--平衡二叉树

题目输入一棵二叉树,判断该二叉树是否是平衡二叉树。class Solution {public: bool IsBalanced_Solution(TreeNode* pRoot) { if(pRoot==NULL) return true; int left_depth = getdepth(pRoot->left);...
原创
94阅读
0评论
1点赞
发布博客于 2 年前

剑指offer(C++)--二叉树的深度

题目输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。class Solution {public: int TreeDepth(TreeNode* pRoot) { int height = 0; if (pRoot != nullptr) { height++; i...
原创
836阅读
0评论
1点赞
发布博客于 2 年前

剑指offer(C++)--两个链表的第一个公共结点

题目输入两个链表,找出它们的第一个公共结点。解法一两个链表一定有交点的话,方法是指向短链表指针先走完,然后指向长链表,指向长链表指针后走完,指向短链表。所以,第二次走过,一定会在交点相遇。class Solution {public: ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2) { ...
原创
211阅读
2评论
0点赞
发布博客于 2 年前

剑指offer(C++)--第一个只出现一次的字符

题目在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).class Solution {public: int FirstNotRepeatingChar(string str) { map<char, int> mp; f...
原创
34阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--丑数

题目把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。通俗易懂的解释:首先从丑数的定义我们知道,一个丑数的因子只有2,3,5,那么丑数p = 2 ^ x * 3 ^ y * 5 ^ z,换句话说一个丑数一定由另一个丑数乘以2或者乘以3或者乘以5得到,那么我们...
原创
776阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--把数组排成最小的数

题目输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。class Solution {public: string PrintMinNumber(vector<int> numbers) { string res=""; ...
原创
238阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--整数中1出现的次数(从1到n整数中1出现的次数)

题目求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。class Solution {public: int Nu...
原创
444阅读
0评论
2点赞
发布博客于 2 年前

剑指offer(C++)--连续子数组的最大和

题目HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序...
原创
459阅读
0评论
1点赞
发布博客于 2 年前

剑指offer(C++)--最小的K个数

题目输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。解法一(平均时间复杂度为O(n)): 它会修改输入的数组思想:基于partion函数来解决这个问题。如果基于数组的第k个数字来调整,使得比第k个数字小的所有数字都位于数组的左边,比第k个数字大的所有数字都位于数组的右边。这样调整之后,位于数组中左边的k个数字就是最...
原创
400阅读
0评论
3点赞
发布博客于 2 年前

剑指offer(C++)--数组中出现次数超过一半的数字

题目数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { ...
原创
56阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--字符串的排列

题目输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。class Solution {public: vector<string> result; void permutation1(string str,int begin){ ...
原创
109阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--二叉搜索树与双向链表

二叉搜索树与双向链表输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(N...
原创
192阅读
0评论
1点赞
发布博客于 2 年前

剑指offer(C++)--复杂链表的复制

题目输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)/*struct RandomListNode { int label; struct RandomListNode *next, *random; ...
原创
261阅读
0评论
1点赞
发布博客于 2 年前

剑指offer(C++)--二叉树中和为某一值的路径

题目输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(in...
原创
49阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--二叉搜索树的后序遍历序列

题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.empty()) ...
原创
150阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--从上往下打印二叉树

题目从上往下打印出二叉树的每个节点,同层节点从左至右打印。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public:...
原创
71阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--栈的压入、弹出序列

题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)class Solution {public: bool IsPopOr...
原创
35阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--包含min函数的栈

题目定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。class Solution { private: stack<int> stack1; stack<int> stackmin;public: void push(int value) { stack1.pus...
原创
82阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--顺时针打印矩阵

题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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.class Solution {public: vector<int> printMatrix...
原创
37阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--二叉树的镜像

题目操作给定的二叉树,将其变换为源二叉树的镜像。示例二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5/*stru...
原创
82阅读
0评论
0点赞
发布博客于 2 年前

教你如何迅速秒杀掉:99%的海量数据处理面试题

转载自:https://blog.csdn.net/v_JULY_v/article/details/7382693 ...
转载
78阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--树的子结构

题目输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class ...
原创
172阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--合并两个排序的链表

题目输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Mer...
原创
59阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--反转链表

题目输入一个链表,反转链表后,输出新链表的表头。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead)...
原创
56阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--链表中倒数第k个结点

题目输入一个链表,输出该链表中倒数第k个结点。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(ListNode* pList...
原创
87阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--调整数组顺序使奇数位于偶数前面

题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。class Solution {public: void reOrderArray(vector<int> &array) { vector<int> result_...
原创
133阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--数值的整数次方

题目给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。class Solution {public: double Power(double base, int exponent) { if(0 == exponent) return 1; if(1 == exponent) return base; ...
原创
37阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--二进制中1的个数

题目输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。class Solution {public: int NumberOf1(int n) { int result = 0; unsigned int flag = 1; while(flag) { if(n&am...
原创
73阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--矩形覆盖

题目我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?class Solution {public: int rectCover(int number) { vector<int> r(number + 1, 0); r[1] = 1; r[2] = 2;...
原创
115阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--变态跳台阶

题目一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution {public:/*每个台阶可以看作一块木板,让青蛙跳上去,n个台阶就有n块木板,最后一块木板是青蛙到达的位子, 必须存在,其他 (n-1) 块木板可以任意选择是否存在,则每个木板有存在和不存在两种选择,(n-1) 块木板 就有 [2^...
原创
425阅读
1评论
2点赞
发布博客于 2 年前

剑指offer(C++)--跳台阶

题目一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。class Solution {public: int jumpFloor(int number) { vector<int> r(number + 1, 0); r[1] = 1; r[2] = 2; ...
原创
74阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--斐波那契数列

题目题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39class Solution {public: int Fibonacci(int n) { int result[2] = {0,1}; if(n < 2) return result...
原创
65阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--旋转数组的最小数字

题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。class Solution {public: int minNumberInRotateArray...
原创
57阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--用两个栈来实现队列

题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { int head; if(stack2.empty()) ...
原创
53阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--重建二叉树

题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * struct TreeNode { * int val; * ...
原创
71阅读
0评论
1点赞
发布博客于 2 年前

剑指offer(C++)--从尾到头打印链表

题目输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/class...
原创
91阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--替换空格

题目请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public: void replaceSpace(char *str,int length) { /*length 为字符数组str的总容量,大于或等于字符串str的实际长度*...
原创
33阅读
0评论
0点赞
发布博客于 2 年前

剑指offer(C++)--二维数组中的查找

题目在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution {public: bool Find(int target, vector<vector<int> > array) { ...
原创
44阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--476 数组的补数

题目给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。你可以假定二进制数不包含前导零位。示例示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0...
原创
33阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--461 汉明距离

题目两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。示例注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。class Sol...
原创
30阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--387 字符串中的第一个唯一字符

题目给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.class Solution {public: int firstUniqChar(string s) { if(s.empty()) return -1; ...
原创
23阅读
0评论
0点赞
发布博客于 2 年前

LeetCode--384 打乱数组(洗牌算法)

题目打乱一个没有重复元素的数组。示例// 以数字集合 1, 2 和 3 初始化数组。int[] nums = {1,2,3};Solution solution = new Solution(nums);// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。solution.shuffle();// 重设数组到它的初始状态[1,2,3]。s...
原创
125阅读
0评论
0点赞
发布博客于 2 年前

操作系统 -- 哲学家就餐问题

有五个哲学家,他们的生活方式是交替地进行思考和进餐。他们共用一张圆桌,分别坐在五张椅子上。在圆桌上有五个碗和五支筷子,平时一个哲学家进行思考,饥饿时便试图取用其左、右最靠近他的筷子,只有在他拿到两支筷子时才能进餐。进餐完毕,放下筷子又继续思考。哲学家进餐问题可看作是并发进程并发执行时处理共享资源的一个有代表性的问题。此算法可以保证不会有相邻的两位哲学家同时进餐。若五位哲学家同时饥饿而各...
转载
239阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--349 两个数组的交集

题目给定两个数组,编写一个函数来计算它们的交集。示例示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]class Solution {public: vector<int> intersection...
原创
52阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--344 反转字符串

题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 ...
原创
39阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--342 4的幂

题目给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。示例示例 1:输入: 16输出: true示例 2:输入: 5输出: falseclass Solution {public: bool isPowerOfFour(int num) { if (num <= 0) return false; if (...
原创
33阅读
0评论
0点赞
发布博客于 2 年前

LeetCode--338 比特位计数

题目给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]// 时间复杂度为O(n * sizeof(integer)) int count=0; vector<int> ...
原创
39阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--326 3的幂

题目给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: falsebool method1(int n) { if (n <= 1) { return n >= 1; } whi...
原创
127阅读
0评论
0点赞
发布博客于 2 年前

LeetCode--283 移动零

题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。class Solution {public: void moveZeroes(vector<int>& nu...
原创
20阅读
0评论
0点赞
发布博客于 2 年前

LeetCode--278 第一个错误的版本

题目你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错...
原创
37阅读
0评论
0点赞
发布博客于 2 年前

LeetCode--242 有效的字母异位词

题目给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false/*排序后相等,o(nlogn)*/ bool method_1(string s, string t) { so...
原创
53阅读
0评论
2点赞
发布博客于 2 年前

LeetCode--237 删除链表中的节点

题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例...
原创
31阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--231 2的幂

题目给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: falseclass Solution {public: bool isPowerOfTwo(int n) { if (n &...
原创
35阅读
0评论
0点赞
发布博客于 2 年前

LeetCode--234 回文链表

题目请判断一个链表是否为回文链表。示例示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ...
原创
49阅读
0评论
1点赞
发布博客于 2 年前

浮点数在计算机中存储方式

转载自http://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.htmlC语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数...
转载
162阅读
0评论
0点赞
发布博客于 2 年前

LeetCode--226 翻转二叉树

题目翻转一棵二叉树。示例输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1/** * Definition for a binary tree node. * struct TreeNode { * int va...
原创
44阅读
0评论
0点赞
发布博客于 2 年前

Epoll模型

相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __FD_SETSIZE 1024表示select最多同时监听1024个fd,当然,可以通过修改头文件再重编译内核来扩大这个数目,但这...
原创
53阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--220 存在重复元素 III

题目给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。示例示例 1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例 2:输入: nums = [1,0,1,1], k = 1, t = 2输出: true示例...
原创
66阅读
0评论
0点赞
发布博客于 2 年前

滑动窗口算法

算法目的该算法展示了如何将嵌套for循环在少数问题中转换为单个for循环,从而减少了时间的复杂性。一个经典的问题给一组大小为n的整数数组,计算长度为k的子数组的最大值我们希望的结果如下Input : arr[] = {100, 200, 300, 400} k = 2Output : 700Input : arr[] = {1, 4, 2, 10, 23, 3...
转载
1586阅读
0评论
0点赞
发布博客于 2 年前

LeetCode--217 存在重复元素

题目给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: trueclass Solution {...
原创
64阅读
0评论
0点赞
发布博客于 2 年前

LeetCode--214 最短回文串

题目给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。示例示例 1:输入: "aacecaaa"输出: "aaacecaaa"示例 2:输入: "abcd"输出: "dcbabcd"思路:我们需要添加多少个字符与给定字符串的前缀子串回文的长度有关.也就是说去掉其前缀的回文子串,我们只需要补充剩下的子串的逆序...
原创
361阅读
0评论
2点赞
发布博客于 2 年前

KMP算法详解

原文地址:http://www.cnblogs.com/SYCstudio/p/7194315.html KMP算法(研究总结,字符串) KMP算法(研究总结,字符串)前段时间学习KMP算法,感觉有些复杂,不过好歹是弄懂啦,简单地记录一下,方便以...
转载
99阅读
0评论
1点赞
发布博客于 2 年前

LeetCode--206 反转链表

题目反转一个单链表。示例示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLclass Solution {public: ListNode* reverseList(ListNode* head) { if (head == nullptr || ...
原创
61阅读
0评论
0点赞
发布博客于 2 年前