自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 爬虫学习(一) :学习框架的搭建

快速构建爬虫领域的整体认知思维导图如下:1、爬虫的本质网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。2、爬虫的基本流程发起请求获取响应的内容解析内容保存数据3、关于数据的处理XpathBeautifulS...

2019-10-17 20:56:59 387

原创 坦克大战之碰撞检测

描述问题:图1图2当我们触发onkeydown事件时,长按箭头使得黑色色块(坦克)移动到距离蓝色色块(障碍物)很近的位置,再次触发onkeydown事件时,会出现图2穿墙的现象。图3黑色色块无法继续向前。分析问题、解决问题:问题一:坦克会穿墙的问题,解决一:我们获取到黑色色块按照当前方向下一步的位置数据来判断,若可能会穿墙,就不继续执行,增加了getBox方法;问题二:...

2019-03-10 14:34:51 2439

原创 坦克大战的性能优化

1、requestAnimationFramehttps://mp.csdn.net/mdeditor/84192545#2、rotate网上下载的图片资源(每张4KB,尺寸60*60): 用键盘上下左右控制坦克时,相对应的炮筒朝向也要发生改变;drawTank()的绘制过程是在raf中持续进行的,相当于每过17ms的时间就要加载一张图片,耗时严重。想到通过将初始图片旋转...

2018-12-08 16:03:41 433 1

原创 非递归二叉树的遍历打印

题目描述:请用非递归方式实现二叉树的先序、中序和后序的遍历打印。给定一个二叉树的根结点root,请依次返回二叉树的先序,中序和后续遍历(二维数组的形式)。先序先序遍历的规则:根 左 右先序遍历的结果:1 2 4 5 3 6 7举例说明:1、节点1入栈,弹出、打印;2、将弹出的节点1的右孩子3先入栈,左孩子2后入栈;3、2出栈,2的右、左孩子依次入栈4、重复上述步骤,保证:...

2018-12-08 14:38:08 335

原创 完全二叉树计数

题目描述:给定一棵完全二叉树的根节点root,返回这棵树的节点个数。如果完全二叉树的节点数为N,请实现时间复杂度低于O(N)的解法。给定树的根结点root,请返回树的大小。解题思路:充分考虑到完全二叉树的性质二分的思想:O(log n^2)如上图所示:当root右子树的高度和root左子树的高度一致,左部分可以直接用公式计算:2^n - 1;右部分使用递归遍历计算总结点数;如上图...

2018-12-04 09:35:02 273

原创 循环有序数组最小值练习题

题目描述:对于一个有序循环数组arr,返回arr中的最小值。有序循环数组是指,有序数组左边任意长度的部分放到右边去,右边的部分拿到左边来。比如数组[1,2,3,3,4],是有序循环数组,[4,1,2,3,3]也是。给定数组arr及它的大小n,请返回最小值。测试样例:[4,1,2,3,3],5返回:1解题思路:数组可能出现如下表示:(1)、[1,2,3,4,5] re...

2018-11-30 11:01:12 237

原创 栈的逆序

题目描述:实现一个栈的逆序,但是只能用递归函数和这个栈本身的pop操作来实现,而不能自己申请另外的数据结构。给定一个整数数组A即为给定的栈,同时给定它的大小n,请返回逆序后的栈。测试用例:输入:[4,3,2,1],4输出:[1,2,3,4]解题思路:1、移除栈底元素并返回;2、栈重元素逆序的主方法;图解:代码:class StackReverse {public...

2018-11-21 09:38:43 1115

原创 requestAnimationFrame

1、requestAnimationFrame 和 setInterval编写动画最关键的步骤是:确定时间间隔。间隔过短,无法保证浏览器的渲染能力;间隔过长,无法保证动画效果平滑流畅;setInterval()方法按照指定的时间间隔(30ms)执行函数;var timer = null; timer = setInterval(function () { autoplay()...

2018-11-17 20:43:22 4077

原创 JS键盘监听事件:onkeydown、onkeypress、onkeyup

1、都是监听键盘的行为,但是触发的时机不一样onkeydown: 按下任意按键的时候触发的,onkeydown 触发的时候输入流正要进入系统,也就是说onkeydown事件一完,输入流就进入了系统,无法改变。所以通过onkeydown事件可以改变用户是按了哪个键;onkeypress: 按下并放开任何字母数字键时触发的,onkeypress事件是在输入流进入系统后触发的,但输入流暂未被系统处...

2018-11-16 19:56:39 2620

原创 堆排序

题目描述:对于一个int数组,请编写一个堆排序算法,对数组元素排序。给定一个int数组A及数组的大小n,请返回排序后的数组。测试用例:[1,2,3,5,2,3],6[1,2,2,3,3,5]解题思路:手动过程:将序列按照BFS构造成完全二叉树将二叉树从下往上调整成最大堆将根元素和最后位置的节点交换位置,确定最大元素将少一个节点的二叉树从上往下调整成最大堆,反复步骤3,4;...

2018-11-13 09:54:38 131

原创 坦克大战走过的坑

1、setInterval ——> requestAnimationFrame2、键盘监控事件onkeydownonkeydown事件会在用户按下一个键盘按键时发生。window.onkeydown = function(e){ // 表示键盘监听所触发的事件,同时传入参数e var e = e || window.e; console.log(e.keycode); // 输...

2018-11-13 09:42:41 278

原创 归并排序

题目描述:对于一个int数组,请编写一个归并排序算法,对数组元素排序。给定一个int数组A及数组的大小n,请返回排序后的数组。测试用例:输入:[1,2,3,5,2,3],6输出:[1,2,2,3,3,5]解题思路:1、递归分解数组【1,2,3,5,2,3】【1,2,3】 【5,2,3】【1,2】【3】 【5,2】【3】【1】【2】【3】【5】【2】【3】...

2018-11-10 18:29:49 131

原创 二叉树打印

题目描述:有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。解题思路:1、层级遍历:BFSBFS代码熟悉,借助队列2、换行输出:二维数组每一行的数据存在一维数组里数组的长度:在上一层节点弹出,这一层节...

2018-11-08 09:37:33 798

原创 PAT 1018 锤子剪刀布(20分)

题目描述:大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:输入格式:输入第 1 行给出正整数 N,即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。输出格式:输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字...

2018-11-06 09:52:12 3943 1

原创 练习1

10-31的练习题目描述:在canvas画布中创建一个圆保证圆匀速运动运动时长为10s, 速度是50像素/s(可变)在圆中心显示秒数题目难点平滑移动的动画效果`代码展示:<!DOCTYPE html><html lang="en"><head> <!--

2018-11-01 15:39:18 198

原创 坦克大战计划书

游戏场景单人游戏游戏主界面的尺寸我方坦克、电脑坦克、普通砖块、高级砖块图片的初始位置、大小游戏对象我方坦克用户四个方向按键前进,每次移动多大像素用户持续按键,持续时间多长,才能使得坦克连续运动坦克四个方向的转换坦克转换方向后的对齐问题,当无法精确地卡到空白处,无法前进坦克遇到障碍物停止前进电脑坦克数量:3不同的坦克有不同的运动轨迹,初始位置也不同匀速一...

2018-10-29 20:06:15 619 1

原创 关于sublime text3——js智能提示插件

1、首先进入包管理器进入菜单栏sublime text-preferences-package control,输入install package ,即Package Contrl:Intall Package,回车,等待,进入包安装界面;2、安装sublime codeIntel包在选择框输入sublime codeIntel,回车,等待,安装成功3、修改default进入菜单栏sublime ...

2018-05-17 18:09:30 10401

原创 18-3-25前端学习小记

来自博主的一则消息:最近一直在学习Bootstrap框架,下面介绍下我今天的学习成果轮播图效果:1、指示器 即下方的小圆点(现成)2、左右的控制(现成)3、滑块(重点改造) (1)img和background的区别 img标签是写在html中的,background是写在css中的,虽然我们通常在head中引入css文件,但是css文件是在html加载完才执...

2018-03-25 20:28:06 260

空空如也

空空如也

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

TA关注的人

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