自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

VitaLemon__的专栏

代码即文字

  • 博客(24)
  • 收藏
  • 关注

原创 (pat-a)1020. Tree Traversals (25)

题目:题目链接,给出二叉树的后序、中序,求层序。首先这里有个知识点,就是二叉树的搜索(遍历)分为几种:前序,pre order中序,in order后序,post order层次遍历,level order 其实前三种都属于二叉树的深搜(DFS),层次遍历就是广搜(BFS)。在这里要注意的是,如果想要唯一确定一棵二叉树,至少要给出“中序”;如果只知道前序、后序,是不能唯一确定一棵树的。解

2017-03-09 17:38:41 471

原创 c++:(各种)构造函数的调用方式

c++的类中有5种值得注意的基本的函数:无参构造函数有参构造函数拷贝构造函数赋值函数析构函数关于析构函数,需要注意的点在上一篇博客里面 c++: 是否会自动delete? 也提到过了,在这里暂时不多说。这篇博客主要记录这3个构造函数、1个赋值函数的调用方式,希望大家学习之后,不但知道如何调用,还可以根据一句话来判断到底调用了几次构造函数。可以通过一个例子来说明,假如我现在有一个Anima

2017-03-08 13:07:09 23459 3

原创 c++: 是否会自动delete?

一直以来对于C++内存管理部分存在一些小疑问,尤其是涉及到内存泄漏的知识,我觉得还是有必要提出来,以加深印象。问题1:new了一块内存,一定要手动delete吗?什么时候系统会自动帮助我们delete?回答:首先C++内存区域分为5个:栈堆 全局区(静态区)常量区 程序代码区 不过我们使用的,一般都是栈、堆。比如以下这段代码:#include <iostream>#include

2017-03-01 16:57:49 4977

原创 css:position属性

在CSS中,left、right、top、bottom表示距离左右上下的值,它们其实是有一个“参照物”的。要想让这4个属性发挥作用,必须给position属性设置(非static的)值。position属性,有以下取值:static:默认值,表示没有定位(没有参照物。所以left等值设置了也没用)inherit:继承父元素的值relative:相对定位,表示相对于“本来所在的位置”absol

2017-01-07 00:03:22 1117

原创 html引入外部文件的路径问题

html引入外部文件的路径问题假如有项目结构如下: 有两种路径: 绝对路径:“绝对”意味着相对于Web服务器根目录。形式上,以 / 开头,比如<img src="/web/images/example.jpg" />相对路径:“相对”指相对于本文件,或人为指定的某个目录。不能以 / 开头,如<!--相对于本文件--><img src="../images/example.jpg"

2017-01-05 23:52:28 4311

原创 js变量作用域的一些例子

本来想要在“作用域”这个专题上自己总结出一些东西的,结果想了好久都没有形成一个固定的思路,也不想贸然拷贝网上的说法。所以,还是先记录几个容易犯错的小例子,以后再来形成总结吧。1、“变量声明提升”var x = 'global';function f1() { console.log(x);}function f2() { console.log(x); /*

2016-09-05 10:38:10 1536

原创 AngularJS自定义指令directive:scope属性

一、介绍:在AngularJS中,除了内置指令如ng-click等,我们还可以自定义指令。自定义指令,是为了扩展DOM元素的功能。代码中,通过指定directive中的restrict属性,来决定这个指令是作为标签(E)、属性(A)、属性值(C)、还是注释(M)。指令的定义过程就不详述了,可以参考:https://docs.angularjs.org/guide/directive。 在这篇博客中

2016-08-15 17:29:08 21683 7

原创 Promise对象探究

一、简介 Promises对象是CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口。以上定义引自阮一峰《Javascript异步编程的4种方法》。我的简单理解是,Promise是JavaScript异步回调的解决方案之一,最大的优点是以链式调用的方式来消除Callback Hell的问题。二、用法1、运用一个Promise对象可以总结成两个步骤:异步。决定回调的时机(when

2016-08-15 12:22:42 668

原创 AngularJS常用服务($http、$location、$sce等)

这篇博客,只是简单地说下AngularJS中的常用的系统(自带)服务。如果逻辑不清晰,就当作是一个参考手册吧,来查查用法什么的。 另外,附上一些参考网站: AngularJS手册:http://man.hubwiz.com/manual/AngularJS(汇智网) AngularJS常用服务:https://docs.angularjs.org/api/ng/service(AngularJ

2016-08-09 17:29:25 6680

原创 AngularJS中的$http、$q服务和promise对象的联系

一、介绍:$http服务是AngularJS系统自带的,可以用来进行网络通信、获取远程服务器的数据。要记住的是,$http是对浏览器XMLHttpRequest的封装,也就是说,它其实是Ajax。首先为了用$http发起请求,我们得先找到一个可以测试的API,这里我用:https://randomuser.me/api/来测试:用get请求,它能够返回json格式的一个随机用户的资料。具体的介绍就不

2016-08-09 15:41:25 12743 1

原创 Ionic路由小结

一、路由:AngularJS和Ionic的异同  路由的作用,简单的概括就是基于View和Url的对应关系,处理跳转页面。   在AngularJS中,我们使用的路由功能是由模块ng-route提供的,ngRoute的思路就是最简单的路由思想,我们只需要指定每一个url对应的视图就可以了。因为ng-route现在成为一个独立的模块了,所以我们想要使用它的时候,还得去自己安装,并且在代码中显式地依赖

2016-08-05 17:21:55 6752

原创 Callable接口的使用

Callable是一个接口,用于创建有返回值的线程。相对地,一般我们会实现Runnable接口去构造一个Thread,但是Runnable是没有返回值的。在此记录一下Callable的用法。比如,我想要在线程执行任务完毕之后,返回一个Integer,那么可以有以下几种方式:1.如果你用的是new Thread()的方式创建线程,那么可以用FutureTask:public cl

2016-05-29 10:58:13 675

原创 hdoj1242 Rescue

题意:  这道题是常规的BFS,加上了一个”打怪”的设置,而”打怪”实质上就是步数加1的操作罢了.如果用的是queue而不是priority_queue,(我觉得用queue就可以了),得维持”访问的节点的步数递增”这样一个原则,也就是:   如果当前位置是”x”即guard的时候,要打到guard,具体代码中的操作是:   (1)新增加一个该位置的节点push进queue,其中该节点的步数要增

2016-04-11 17:46:27 472

原创 hdoj1241 Oil Deposits

题意:  一个位置上有油会扩散到别的位置(上下左右,还有对角线上的4个相邻位置,一共8个位置,也就是以某个位置为中心的切比雪夫距离为1的8个点),计算”油堆”的数目.   每一次遇到一个没有标记的有油的位置,就以它为起点进行BFS,把这一次BFS可以到达的地方标记(即漏油).然后,数油堆的方法:可以从(0,0)位置开始遍历到(n,n),遇到有油的地方,如果标记了就跳过,没有标记的就进行BFS,并且

2016-04-11 17:32:00 439

原创 hdoj1240 Asteroids!

题意:  BFS的小小变形,场景由二维迷宫变成三维空间的迷宫,基本框架是不变的.   这个题目就是考耐心嘛,毕竟就像一篇阅读理解,只需要看懂那个slice就是指z轴上不同点的平面就可以了.另外,需要注意题目中给出的起点的顺序是:start_y(列), start_x(行), start_z,这个需要跟自己的数组中的每一维的意义对应起来,否则结果就会不对.然后还要注意,每走到一个点,都会有6个方向的

2016-04-11 16:43:07 438

原创 hdoj1175 连连看

题意:  连连看的玩法:给定一个棋盘,上面有各种数字,大于0的数字表示图案,0表示该位置没有图案。问当给定两个图案的坐标时,能不能按照连连看的规则把这两个图案消去。注意,这里所谓连连看的规则,是找出一条路径让这两个图案连接起来、并且该路径的“拐弯”的次数最多为2。   思路其实已经很清晰了,在起点和终点间找出一条路径并且“拐弯数”(direction change)尽可能少,很容易想到BFS。但是

2016-04-10 13:49:47 798

原创 hdoj1180 诡异的楼梯

题意  走迷宫,求最少步数,很容易就想到BFS,而这是一道加了点难度的BFS,但是框架是不变的。唯一的难点就是“梯子”。题意中有两个地方需要理清:   1.梯子可以有很多个   2.人物可以在某个时候选择停止,不走  另外,梯子的方向,是随着时间(或者说走的步数)的增加而进行,因此这里存在一个类似于“奇偶性”的问题。即:   (1)如果梯子开始的时候是“|”,那么走了奇数步之后就会变成“-”,

2016-04-07 23:07:41 445

原创 hdoj4540 威威猫系列故事——打地鼠

题意:  给出每一个时刻地鼠出现的所有位置,问如果威威猫每一个时刻都可以打到一个地鼠的话(位置的变化会产生cost,在这道题中就是位置之间的相对距离),这样打下来最终的最小cost是多少。也可以转化成数塔问题,不过数塔问题这道题是求途径的cost最小值。   状态转移方程:// dp[i][j]表示走到第i层(在题目中对应第i个时刻)、第j个位置所得到的最小cost// 下面式子的前提是has[

2016-03-23 16:51:14 688

原创 hdoj1159 Common Subsequence

题意:找两个字符串的最长公共子序列(Loggest Common Subsequence, LCS)。用“表格法”(姑且这么叫吧)就可以很快地做出来,至于表格法的原理,以后有时间再整理吧,一时半会也整理不出来。 比如给出的第一组输入: 具体的转移方程是:// dp[i][j]表示在到了字符串sa的i位置和字符串sb的j位置时,可以达到的最大值,因为这里做了一个第一行列为0的初始化,所以对应到字符

2016-03-23 11:39:51 437

原创 hdoj1087 Super Jumping! Jumping! Jumping!(DP)

题意:  并不是从start一步一步地走、一直走到end然后取最大值这么简单,而是在某一点上可以一次性走N步到达另一个店,比如这里“1”可以直接走到“2”(不过一定是从左到右,不能回头),不过这样的结果只是3了,不是最大值。所以,这是一个DP问题。状态转移方程先写出来,等下再分析:// origin[]为原数组,dp[]是在origin[]上进行动态规划的数组// dp[i]表示“走到下标为i的这

2016-03-23 10:03:59 715

原创 hdoj1176 免费馅饼(DP)

题解:  动态规划,这一题实质上跟2084(数塔)那题是一样的,因为这一题可以转化成数塔问题,“馅饼掉下来的时刻”就是“塔的深度”,也就是dp数组的第1维;而第2维是一样的,都是表示位置。考虑题意给出的输入:   Sample Input   6   5 1   4 1   6 1   7 2   7 2   8 3   0   那么我们可以构造出一个数塔:   第0层:     0

2016-03-23 01:41:56 506

原创 hdoj2084 数塔

题解:DP的经典题目之一,从塔的最底层一直往上走,到达顶部后途中累加的和最大的就是所要求的值。在这里,可以设置二维数组dp[i][j],表示“走到第i层、第j个元素时可以获得的最大值”。这里有两个关键的地方:考虑的对象是“走到了某个位置”,而不是“从某个位置开始走”。这也是DP比如背包问题里面的一个重要思想。这样的话,状态转移方程就是:dp[i][j] += max(dp[i+1][j], dp

2016-03-23 01:17:00 385

原创 hdoj1014 Uniform Generator

题意:给出公式next = (next + step) % mod中的step和mod,问能不能在恰好mod步之内生成0~mod-1中所有的数字。另外,有人说可以不用模拟,直接判断step和mod这两个数是否互质就可以了(即最大公约数是否等于1),是则Good Choice,反之就是Bad Choice,暂时没有了解它的原理,也许是自己的数论基础不够好吧。代码如下(15MS,1896K):#incl

2016-03-22 19:43:11 566 1

原创 hdoj1013

题意:……代码如下:#include #include #include #include using namespace std;string int_2_string(int a) { stringstream ss; string ret(""); ss << a; ss >> ret; return ret;}string bit_sum(string

2016-03-22 17:15:41 441

空空如也

空空如也

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

TA关注的人

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