自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Do Better

while(1){I love coding!}

  • 博客(10)
  • 资源 (8)
  • 收藏
  • 关注

原创 【剑指Offer——待进一步理解】 44. 数字序列中某一位的数字

代码class Solution {public: int findNthDigit(int n) { int digit = 1; long start = 1; long count = 9; while (n > count) { n -= count; digit += 1; start *= 10; count = digit * start * 9; } long num = start + (n - 1) / digit; ret

2020-07-19 17:35:16 117

原创 【剑指offer】46. 把数字翻译成字符串

解题思路第一步:定义数组元素的含义题目要求的是一个数字有多少种不同的翻译方法,因此设dp[i]代表第i个结尾的数字的翻译方案数量第二步:找出关系数组元素间的关系式若xix_{i}xi​和xi−1x_{i-1}xi−1​组成的数字可以被翻译,则dp[i]=dp[i-1]+dp[i-2],xi−1xiϵ[10,25]x_{i-1}x_{i}\epsilon [10,25]xi−1​xi​ϵ[10,25];否则dp[i]=dp[i-1],xi−1xiϵ[1,10)∪(25,99]x_{i-1}x_{i

2020-07-19 16:47:56 151

原创 【剑指offer】45. 把数组排成最小的数

解题思路通过题意可知,不管这些数字如何排列,形成的数字位数时不变的。所以如果高位的数字越小,则最终的结果也就越小。下面的n为数字的个数对于n=2的情况如[26,38],根据高位越小越好,可知,我们应该排列成2638对于n>2的情况如[26,29,1],根据我们定义的规则,一定是将第一位小的数字放在最高位,因此先选出1,对于剩下两个数字,由于第1位数字相同,我们会比较第2位,因此我们最终会排列成12629从上面我们可以发现的排序规则就是,如果第1位小,就将其排到最前面,如果第1位相等,则比

2020-07-19 15:18:36 189

原创 【LeetCode】215. 数组中的第K个最大元素

解题思路方法一使用快速排序中的Partition函数,获得第j位上的元素,如果第j位和k-1相同,则直接返回即可时间复杂度O(N)代码#include<vector>class Solution {public: int findKthLargest(std::vector<int>& nums, int k) { int start = 0; int end = nums.size() - 1; int

2020-07-15 15:50:28 175

原创 【剑指offer】36. 二叉搜索树与双向链表

思路算法流程:Node* treeToDoublyList(Node* root)1.特例处理:若结点root为空,直接返回2.转化为排序双向链表:调用inorder(Node* root)3.构建循环链表:head和pre双向结点引用4.返回头结点void inorder(Node* root)中序遍历的改写,在访问根节点时,同时更新pre,head的值,使其能够双向连接代码class Solution {public: Node* pre=nullptr, *head;//

2020-07-10 11:45:31 167

原创 【剑指offer】35. 复杂链表的复制

解题思路算法流程:建立映射对新链表结点和原链表结点建立hashmap的映射关系,原链表结点为key,新链表结点为value赋值通过hashmap将原链表的next,random所指结点赋给新链表,注意赋值时,要判断该两值是否不为空,因为建立hashmap时,没有建立null,null的映射返回新链表头结点hashmap[head]代码class Solution {public: Node* copyRandomList(Node* head) {

2020-07-10 10:44:38 139

原创 【剑指offer】33. 二叉搜索树的后序遍历序列

思路1.确定根节点2.遍历序列(除去root结点),找到第一个大于root的位置,则该位置左边为左子树,右边为右子树3.遍历右子树,若发现有小于root的值,则直接返回false;4.分别判断左子树和右子树是否仍是二叉搜索树(即递归步骤1、2、3)代码class Solution {public: bool verifyPostorder(vector<int>& postorder) { if (postorder.empty()) return

2020-07-09 19:39:31 265

原创 【数据结构与算法】二叉树的遍历方法总结

先序遍历递归版非递归版中序遍历递归版非递归版后序遍历递归版非递归版层序遍历#include<iostream>#include<queue>#include<vector>using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NU

2020-07-09 15:44:58 191

原创 【剑指offer】31. 栈的压入、弹出序列

解题思路算法流程:初始化,辅助栈tempS和弹出序列的索引i遍历压入序列pushed压入pushed的元素e判断tempS是否为空且栈顶元素和popped[i]相等tempS出栈i++3.返回tempS.empty(),如果其为空,说明合法,反之不合法代码class Solution {public: bool validateStackSequences(vector<int>& pushed, vector<int>&

2020-07-09 15:14:52 132

原创 【剑指offer】21. 调整数组顺序使奇数位于偶数前面

解题思路双指针,p1指向头,p2指向尾,p1在遇到偶数时停下,p2在遇到奇数时停下,如果此时p1<p2,则进行交换代码class Solution {public: vector<int> exchange(vector<int>& nums) { int p1 = 0, p2 = nums.size() - 1; while (p1<p2) { while (p1 <

2020-07-07 10:55:43 121

【OpenGL】三维场景漫游.zip

1、构建一个三维场景 可利用glut提供的各种简单形体来搭建,或者读入别的模型,并加入光照效果 2、用键盘操作一个物体(如一艘飞船,或一个机器人),在三维场景中漫游 视点可以放在物体上,或跟随物体,利用gluLookAt()函数来实现对视点的控制

2020-05-12

【OpenGL】机器人手臂的实现.zip

实现了机器人的一只手臂,由上臂、下臂、五根手指共同组成,通过A、S、D、F、G键向上旋转,通过a、s、d、f、g键向下旋转,通过方向键left和right转向,通过up和down实现放缩。 效果图可先见本人博客

2020-05-12

【OpenGL】光照太阳系.zip

在太阳系程序的基础上添加光照效果 - 宇宙中加一盏泛光 - 太阳自发光 - 太阳系中加一艘飞碟,飞碟沿着椭圆轨道绕地球或太阳运行,其上有一个spot light始终照耀着地球 程序为博主个人独自编写,切勿用于商用

2020-05-12

OpenGL+C++太阳系实现.zip

采用全局变换的思路实现的太阳系模型,功能有:三个球体、一个表示太阳、一个表示地球、一个表示月亮;地球不停地绕太阳旋转,月亮绕地球旋转,期间它们三者都发生自转。之后扩展功能如下:地球有两个月亮,画上轨道线,使轨道倾斜,放缩效果

2020-03-22

MessageQueue.zip

基于自编写的类Fourinone,实现了消息队列(MQ)的发送/接收、主题订阅两种经典消息服务模式,之后讨论了消息队列在解耦、冗余、扩展性、灵活性、可恢复性、顺序保证、缓冲、异步通信方面的优势,最后总结了消息队列的应用场景。

2019-11-06

BoW(Bag of Words)词袋模型.zip

本demo实现的是基于bow原理对图片进行分类,并实现对选取得测试集进行查找 BoW(Bag of Words)词袋模型最初被用在文本分类中,将文档表示成特征矢量。它的基本思想是假定对于一个文本,忽略其词序和语法、句法,仅仅将其看做是一些词汇的集合,而文本中的每个词汇都是独立的。简单说就是讲每篇文档都看成一个袋子(因为里面装的都是词汇,所以称为词袋,Bag of words即因此而来),然后看这个袋子里装的都是些什么词汇,将其分类。如果文档中猪、马、牛、羊、山谷、土地、拖拉机这样的词汇多些,而银行、大厦、汽车、公园这样的词汇少些,我们就倾向于判断它是一篇描绘乡村的文档,而不是描述城镇的。 serachFeatures.py中,前面主要是一些通过parse使得可以在敲命令行的时候可以向里面传递参数,后面就是提取SIFT特征,然后聚类,计算TF和IDF,得到单词直方图后再做一下L2归一化。一般在一幅图像中提取的到SIFT特征点是非常多的,而如果图像库很大的话,SIFT特征点会非常非常的多,直接聚类是非常困难的(内存不够,计算速度非常慢),所以,为了解决这个问题,可以以牺牲检索精度为代价,在聚类的时候先对SIFT做降采样处理。最后对一些在在线查询时会用到的变量保存下来。对于某个图像库,我们可以在命令行里通过下面命令生成BoF。 query.py只能每次查找一张图片,并返回与之匹配度(递减)最接近的6张图片

2019-11-05

alibaba_java_开发手册.pdf

《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体经验总结,经历了多次大规模一线实战的检验及不断的完善,反馈给广大开发者。现代软件行业的高速 发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结构和索引设计缺陷可能带来软 件上的架构缺陷或性能风险;工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。所以本手册以 Java 开发者为中心视角,划分为编程规约、异常日志、MySQL 数据库、工程结构、安全规约五大块,再根据内容特征,细分成若干二级子目录。根据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。对于规约条目的延伸信息中,“说明”对内容做了引申和解释;“正例”ᨀ倡什么样的编码和实现方式;“反例”说明需要ᨀ防的雷区,以及真实的错误案例

2019-09-24

区块链:技术驱动金融 - [美] 阿尔文德·纳拉亚南 & 约什·贝努等

该书籍为区块链领域的经典书籍,对于读者前期知识储备要求较小,属于科普性读物,对于入门刚接触区块链的同学,它是一本不错的读物

2019-03-11

空空如也

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

TA关注的人

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