自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 青蛙跳台阶,变态版

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。知道规律就好解决class Solution {public: int jumpFloorII(int number) { int i = 1; while(--number) { i *= 2; ...

2019-12-31 22:57:05 102

原创 L7ZZ压缩算法

LZ77压缩算法LZ77是一种基于字典的算法,它将长字符串(也称为短语)编码成短小的标记,用小标记代替字典中的短语,从而达到压缩的目的。 LZ77使用的是一个前向缓冲区和一个滑动窗口来维护字典。它首先将一部分数据载入前向缓冲区,一旦数据中的短语通过前向缓冲区,那么它将移动到滑动窗口中,并变成字典的一部分,随着滑动窗口移动,字典中的内容也在不断的更新,也就是说它是变更新字典,边进行压缩。...

2019-12-31 10:52:16 624

原创 C++小工修炼手册XXVII (二叉搜索树的简单实现以及原理解释)

二叉搜索树的介绍:二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树二叉搜索树操作1.二叉搜索树的查找: 若根结点不为空: 如果根节点的val == 查找的val直接返回true 如果根节点的val &g...

2019-12-28 13:50:13 107

原创 跟左神一起练算法

第一种解法就是将数组中的每一个字符串按照ASCII进行排序,变形词之间的排序结果肯定是一致的,假如出现了新的排序,那就新建一个链表,每次新出现一个没有的排序,那么就新建一个链表来存放,把ASCII排序相等的单词放到一个链表中,最后再将每个链表连接起来返回,就可以了。...

2019-12-23 02:46:42 109

原创 跟左神一起练算法

这道题算是感觉非常难的一道题先跳过,后面有时间了再讨论

2019-12-21 01:43:15 57

原创 和左神一起练算法

判断一个字符串是不是回文的字符串这个问题的话,对于C++来说就是直接使用两个指针前后同时遍历,向中间缩进就可以了,这个是针对字符串而言的,假如是针对一个数字来说呢?让你判断这个数字是不是回文的数字第一个会想到的就是先把数字转换成字符串,但是要是遇到卡时间复杂度的系数的,这个就有点不行了考虑下里面一种写法不得不说这段代码考虑的很全面,每一个细节扣的都很严格,也就是基础很扎实bool fun...

2019-12-20 20:03:47 66

原创 跟左神一起练算法

一组数字,让你返回和为某一数字的两个元素的下标,存在一个问题,假如数组是无序的话那么就要,用一个数组记录住没排序之前的下标,自己写一个排序的方法,交换数组元素的同时也要交换,下标的值,所以要自己写排序哈希表存在的问题就是常数项操作比较大,这是由哈希表自己本身的设计引起的可以认为哈希表的增加,删除,查询时间复杂度都是o(1)这个题还有第三种要求,就是假如数组中的元素有重复的,现在假定已经是...

2019-12-17 16:58:26 118

原创 判断一个数是不是丑数

#include<iostream>using namespace std;bool func(int num){ int flag = 0; for (int i = 2; i <= sqrt(num); ++i) { if (num% i == 0) { flag = 1; break; } } if (flag == 1) re...

2019-12-15 21:09:57 232

原创 sort+ 仿函数

class Solution { public: static bool cmp(int a,int b){ string A=""; string B=""; A+=to_string(a); A+=to_string(b); B+=to_string(b); B+=to_s...

2019-12-13 20:13:01 955 1

原创 是否存在子树,判断二叉树是否对称,将二叉树按镜象反转,最大子序列和,1 - n 之间1出现的次数

/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: bool func(TreeNode* pRoot1...

2019-12-13 19:26:22 122

原创 简单题,字符串全排列(带重复字符)

层序遍历/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: vector<int> Pri...

2019-12-12 22:17:25 131

原创 简单题

class Solution {public: void reOrderArray(vector<int> &array) { vector<int> vec1; vector<int> vec2; int size = array.size(); for(int i = 0;...

2019-12-11 22:25:16 62

原创 简单题

class Solution {public: double Power(double base, int exponent) { if(base == 0) { return 0; } if(exponent == 0) return 1; double c...

2019-12-10 20:27:21 74

原创 扑克牌顺子,孤儿院孩子做游戏,中位数,连续正数和

int LastRemaining_Solution(int n, int m){ if (n < 1) return -1; vector<int> vec; vec.resize(n); int count = n; for (int i = 0, j = 0;; ++j) { if (vec[j] != 1) { if (i == m ...

2019-12-09 21:57:23 101

原创 跟左神一起练算法(图,拓扑排序,最小生成树算法)

图?无向图,有向图怎么描述一个图?邻接表法,邻接矩阵法有向图,和无向图可以统一为有向图无论是有向图还是无向图都可以按照有向图 进行表达邻接表法:邻接表法,和邻接矩阵法是最经典的两种表示方法,实际上还有很多的表示方法拓扑排序给你一张图举个例子,我们的编译器在编一个个文件的时候就是按照拓扑排序来进行的假如说编译B文件要先编译E,D文件,编译C文件需要编译D文件编译A文件...

2019-12-07 19:42:25 222

原创 跟左神一起练算法(前缀树)

何为前缀树,怎样生成前缀树?这样的话在一个超长字符串数组中查找一个字符串出现的次数的时候就会非常的快。切字符串end代表的就是这个字符串在数组中出现的次数将一个元素插入前缀树的过程:假如要存入的不是英文字符的话,而是汉字,那就不需要指针数组了,可以搞一个map来进行存储在一个前缀树中查找:大致代码是这个样子:class TrieNode{public: TrieNode(...

2019-12-06 20:12:53 181

原创 跟左神一起练算法(认识并查集)

介绍并查集比较清楚的文章https://blog.csdn.net/zjy_code/article/details/80634149

2019-12-06 15:28:02 210

原创 跟左神一起练算法(非递归实现二叉树的遍历)

前序遍历:void xianxubianli(TreeNode*& tree){ if (tree == nullptr) return; stack<TreeNode*> sta; sta.push(tree); while (!sta.empty()) { tree = sta.top(); sta.pop(); cout << ...

2019-12-05 10:54:44 122

原创 跟左神一起练算法

关于上提的思路:

2019-12-04 20:40:24 99

原创 C++小工进阶之路XXV(智能指针下)

继承的总结和反思 1. 很多人说C++语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱形继承就有 菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,一定不要设计出菱形继承。否则在 复杂度及性能上都有问题。 2. 多继承可以认为是C++的缺陷之一,很多后来的OO语言都没有多继承,如Java。 3. 继承和组合public继承是一种is-a的关系。也就是说每个...

2019-12-04 13:05:26 165

原创 跟左神一起练算法(布隆过滤器和一致性哈希)

认识布隆过滤器//布隆过滤器和一致性哈希//布隆过滤器就是爬虫项目,和黑名单项目的常见结构//查询某一个结构是否存在于某一个集合之中落地结构:大数组结构,每一个位置是一个比特位bite布隆过滤器产生失误的原因:假如现在有100亿个URL现在你只给了10个位,4个哈希函数,每次涂黑四个位,那么这10个位注定被越图越黑,等到查找的时候,你就会发现,查啥都是错的。要是有10个URL...

2019-12-03 19:30:49 434 1

原创 C++小工修炼手册XXIV(多态下)

虚函数的调用:

2019-12-01 18:04:05 93

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除