- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 剑指offer——数组中重复的数字
本博客为记录个人学习笔记,方便日后复习。 刷题平台:LeedCode题目描述 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。题目分析 我们可以注意到数组中的数字都是在0——n-1的范围,如果这个数组中没有重复的数字,那么当数组排序之后数字 iii 将出现在下标为 iii 的位置,由于数组中有重复的数字,有些位置可能存在多个数字,同时有些位置没有数字。
2020-07-14 21:34:38
197
原创 剑指Offer——顺序打印数组
本博客为刷题笔记,方便日后复习。 刷题平台:Leedcode题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制: 0 <= matrix.length &
2020-07-11 21:12:08
279
原创 剑指Offer——二叉树的镜像
本博客为刷题笔记,方便日后复习。 刷题平台:牛客网题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。输入描述 二叉树的镜像定义:源二叉树与镜像二叉树。 图1. 源二叉树与镜像二叉树题目分析 如图1所示,两个二叉树除了根节点没有发生变化,左右子树中的所有节点都交换了位置。既然是关于二叉树的问题,自然可以想到优先使用递归的方法,递归可以很好的解决树的相关问题。具体的操作方法如下: 图1. 源二叉树转化为镜像二叉树过程 我们首先将源二叉树的左右子树交换,如图2
2020-07-10 21:20:32
202
原创 《统计学习方法——感知机》学习笔记
去年的时候,选修过《机器学习》这门课程,学习过后,很多知识不理解。最近重新学习机器学习的知识,在实验室找到一本前辈们留下的机器学习理论数据《统计学习方法》,这次打算留下点学习痕迹,做个笔记,方便日后复习。1.感知机模型1.1预备知识 感知机是一个线性的二分类模型,该模型的目的是在输入空间中找到一个超平面S,将输入空间中的样本实例分成正、负两个类别。其中感知机的输入为特征向量,输出为实例的类别,即+1和-1两个值。1.2 感知机模型定义 我们首先来定义一下什么是感知机。输入空间是 X⊆RnX
2020-07-10 19:22:11
433
1
原创 剑指Offer——树的子结构
本博客为刷题笔记,方便日后复习。 刷题平台:牛客网题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)题目分析子树 B是A的子结构,则B 与A的子节点相同。...
2020-07-07 16:31:17
1094
原创 超平面公式推导及理解
最近在学习《统计学习方法》,在学习第一个机器学习算法 ——感知机时,提出了超平面的概念,以下为超平面公式的推导及空间中任意一点距离超平面距离的推导。方便日后复习。参考超平面 ...
2020-06-30 20:37:04
5184
原创 剑指Offer——合并两个排序的列表
本博客为刷题笔记,方便日后复习。 刷题平台:牛客网题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。题目分析 设两个链表为L1和L2。先判断两个链表是否为空链表,如果L1为空,则直接返回L2,若L2为空,则直接返回L1。如果L1和L2都为NULL,则返回NULL。 首先创建一个空链表,用来表示合并后的链表。两个链表都是递增排序的链表,我们可以对L1和L2进行遍历,判断两个链表中的值的大小,如果那个值小就赋给合并链表的指针。然后进行递
2020-06-27 21:17:01
193
原创 剑指Offer——反转链表
本博客为本文刷题笔记,方便日后复习。 刷题平台:牛客网题目描述 输入一个链表,反转链表后,输出新链表的表头。题目分析 本题目在考研时候,也是一道经常练习到的题目。要将链表翻转,需要定义三个指针。如下借用牛客网上的图解说明。图中有作者的具体ID。 其中使用 pre记录当前节点的前一个节点,初始为NULL。使用next记录当前节点的后一个节点,初始也为NULL。 当前节点不为NULL的时候,可以进行指针反转。具体反转过程如图所示。设当前节点用cur表示,则cur=pHaed;n
2020-06-26 23:44:14
235
原创 剑指offer——链表中倒数第k个结点
本博客为刷题笔记,方便日后复习。 刷题平台:牛客网题目描述输入一个链表,输出该链表中倒数第k个结点。题目分析方法一:假设链表不为空,并且K>0的情况下,求链表倒数第K个节点,则可以转化为求正向第(length-k)个节点。效果示意图,以链表总共5个结点,求倒数第2个结点为例:方法二:我们可以定义两个指针。第一个指针从链表的头指针开始遍历向前走k-1,第二个指针保持不动;从第k步开始,第二个指针也开始从链表的头指针开始遍历。由于两个指针的距离保持在k-1,当第一个(走在前面的)指
2020-06-10 13:56:28
177
原创 剑指offer——调整数组顺序使奇数位于偶数前面
本博客为刷题笔记,方便日后复习。 刷题平台:刷题平台题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。题目解析 如果对空间要求不高的话,可以开辟一个额外的数组,遇到奇数直接放入新数组中,再遍历一遍数组,遇到偶数继续放入新的开辟的数组中,然后在进行一次copy。 或者直接使用双向队列,奇数前插入,偶数后插入,然后进行一次copy。代码实现//遍历两边数组方
2020-06-09 23:09:41
176
原创 剑指Offer——数值的整数次方
本博客为刷题博客,方便日后复习 刷题平台:牛客网题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0题目解析 ...
2020-06-09 17:26:38
192
1
原创 剑指Offer——二进制中1的个数
本博客网为刷题笔记,方便日后复习。 刷题平台牛客网题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。题目解析 如果一个整数不为0,那么这个整数转化为二进制数后至少有一位是1(如十进制数1),如果我们将这个整数减1,则原来整数最右边的1就会变为0,原来1后面的所有0都会变为1(如果最右边的1后面还有0的话),1左边的所有位将不变化。 例如一个二进制数1100,从右边位数起第三位是处于最右边的第一个1,减去1后,第三位变为0,后两位由0变为了1,而前面的1保持不变
2020-06-07 23:11:07
216
原创 Pycharm配置远程服务器(远程Python环境和服务器代码管理)
本博客记录Pycharm配置远程服务器的操作和步骤。Pycharm和云服务器相关版本信息PyCharm Professional 2020.1阿里云服务器(2核,4G)云服务器系统:Ubuntu16.04云服务器python环境:Annconda3-5.3.0本地系统:win10本地python环境:Annconda3-5.2.0PyCharm配置远程服务器解释器和代码管理...
2020-05-03 12:11:19
1206
原创 剑指Offer——矩形覆盖
本博客为刷题笔记,方便日后复习。 刷题平台:牛客网题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法?比如n=3时,23的矩形块有3种覆盖方法: 题目解析 以2x8的矩形为例。示意图如下: 我们先把2x8的覆盖方法记为f(8)f(8)f(8)。用第一个1x2小矩阵覆盖大矩形的最左...
2020-04-26 12:04:56
195
原创 剑指Offer——变态跳台阶
剑指Offer刷题笔记,方便以后查看。 刷题平台:牛客网题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上 nnn 级。求该青蛙跳上一个 nnn 级的台阶总共有多少种跳法。题目分析 该题目可以使用数学归纳法去求解。 我们将 nnn 阶台阶的跳法看成 nnn 的函数,即 f(n)f(n)f(n)。n不同的跳法总共的跳法n=11...
2020-04-26 11:37:47
188
原创 剑指Offer——青蛙跳台阶
剑指Offer刷题笔记,方便以后查看。 刷题平台:牛客网题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。题目分析 该问题和斐波拉契数列数列问题比较相似。首先我们考虑最简单的情况。如果只有1级台阶,那显然只有一种跳法。如果有2级台阶,那就有2中跳法:一种是分两次条,每次条1级;另一种就是一次跳2级。...
2020-04-26 11:14:56
203
原创 剑指Offer——斐波拉契数列
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39题目解析 斐波拉契数列的定义如下: 方法一:递归 在开始学习C语言的时候,课本是就是用斐波拉契数列的例子讲解的递归,学习过编程语言的人应该都有印象,还有一道题使用递归的题就是汉诺塔问题,都是很经典的问题。我们都知道递归的优点是代码简洁,将大问题拆...
2020-04-24 16:14:34
215
原创 剑指Offer——旋转数组的最小数字
本系列博客为本人的刷题笔记,日后复习可以查看。题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 刷题平台:牛客网题目解析 剑指offer中的分析,...
2020-04-24 14:49:44
213
原创 剑指Offer——用两个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 刷题平台:牛客网题目解析 创建两个栈stack1和stack2,使用两个“先进后出”的栈实现一个“先进先出”的队列。 我们通过一个具体的例子分析往该队列插入和删除元素的过程。首先插入一个元素a,不妨先把它插入到stack1,此时stack1中的元素有{a},stack2为空。再压入两个...
2020-04-22 17:34:53
201
原创 剑指Offer——重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 刷题平台:牛客网解题思路二叉树的三种遍历方法1.前序遍历:先访问根结点,再访问左子结点,最后访问右子结点。2.中序遍历:先访问左子结点,...
2020-04-22 15:04:02
182
原创 剑指offer——从尾到头打印列表
题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 刷题地址:牛客网题目分析1.方法一: 看到这道题的时候,我的最初想法是链表翻转,在输出。在原书中作者认为这不是最好的解决办法,因为这样会改变链表的原来的结构,如果在面试中遇到类似的问题,应该主动询问面试官这样的方发是否可行。1.方法二: 链表的逆序打印,首先肯定要遍历链表,可是输出的顺序却是从尾到头。也...
2020-04-22 11:29:48
155
原创 剑指Offer——替换空格
剑指offer第二题。本博客为记录个人学习笔记,方便日后复习。题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。题目分析1.方法一 从字符数组的第一个元素开始查找空格,遇到空格就将空格后的元素向后移动两个字符,再找第二个空格,找到后将空格后的字符向后移动两个字符,...
2020-04-21 23:44:33
175
原创 剑指offer——二维数字查找
该博客是刷题笔记,用于以后复习查看。题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析 从二维数组的右上角元素开始查找,如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数组,剔除这个数字所在的列;如果该数字小于要查找的数字,剔除这个数字所在的...
2020-04-21 00:09:56
152
原创 centos7服务器端配置普通用户自己的aria2+webUI下载器
centos7服务器端配置普通用户自己的aria2+webuiAria2下载Aria2和webu并配置本人小硕一枚,最近因为研究需要,要下载数据集。但使用网站自己提供的下载工具后,还是不能很好的下载。因为下载源不稳定以及数据量确实太大,所以下载进程经常挂掉。苦于服务器没有权限,就自己尝试去搭建属于自己的下载器。基于centos7。Aria2Aria2 是一个多平台轻量级,支持 HTTP、FT...
2019-08-12 13:14:33
1275
2011年美国阿尔茨海默病最新诊断标准解读.pdf
2020-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人