自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

teaspring的技术专栏

思考,为了递归或者迭代

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

原创 [以太坊源代码分析] VI. 基于p2p的底层通信(上篇)

以太坊中客户端之间的底层通信天然适用p2p通信协议,本篇主要介绍了以太坊中有关p2p通信核心模块ProtocolManager的一些主要流程逻辑,以及p2p通信协议族的一些架构设计。

2017-11-06 10:20:24 12153 33

原创 [以太坊源代码分析] IV. 椭圆曲线密码学和以太坊中的椭圆曲线数字签名算法应用

本文从椭圆曲线加密学的基础-点倍积开始讲起,完整介绍了椭圆曲线数字签名算法的理论基础和实现算法,以及以太坊中是如何调用椭圆曲线数字签名算法进行数字签名操作的。

2017-09-04 10:39:24 13700 7

原创 [Bluetooth]: android 平台上BLE连接流程之优化方案

文章提供了一种设计良好的蓝牙连接(重连)的流程逻辑,可以极大的提高Android平台上蓝牙设备的连接成功率。

2017-08-16 00:08:52 6572 3

原创 一款轻量级的项目管理工具Redmine

介绍了在Ubuntu系统如何安装一款轻量级项目管理软件Redmine

2015-04-14 16:53:23 3579 2

原创 [oj.leetcode] 跟leecode的博客旧文说再见

在我目前的博客中,数量最多的就是leecode问题的解答。这些归在leetcode标签之下的文章,其中的绝大部分,基本就是简单一说思路,然后贴代码。比如这种它们的共同特征就是结构较简单,讲解也不多,贴的代码行数能占整个篇幅的七八成。这种文章写起来很快,leecode标签下最多时候有45篇。虽然这样以来,博客的文章数上升很快,但不客气地说,这有“注水”的嫌疑,已经背离了我建设这个

2015-04-12 21:48:34 1062

原创 用opencv创建一个图片搜索引擎的几点改进

在《用Python和OpenCV创建一个图片搜索引擎的完整指南》介绍的python代码实现基础上,本文针对C++的代码实现,提出了几点改进,以便提高搜索精度。

2015-04-08 14:54:59 1268

原创 [oj.leetcode] #174 - Dungeon Game 一次特别的DP之旅

原题篇幅挺长,关于一个2D关卡游戏,这里就不赘述了。这里以矩阵的方式陈述一下。在一个二维数组M*N中, 有一个王子需要从起点[0][0]出发,移动到终点[m-1][n-1],每次移动一格,方向只能向右或者向下。出发前,王子的(健康)值至少为1。矩阵中每一格有一整型值,可正可负可0,对于经过的王子,会把这值加到他身上。规则是王子在移动过程中(包括到达终点),无论何时他身上的值都不能小于1。问王子

2015-02-19 02:21:26 764 1

原创 [oj.leetcode] #179 - LargestNumber, 如何在7ms内跑完 221个测试用例

题目:已知一个整型数组,如何排列使得最后组成一个最大整数,输出这个整数的字符串,假设都是非负。比如[3, 30, 34, 5, 9], 结果应该是 9534330这里选用C++。第一感觉应该是跟排序相关,稳妥方案是快速排序quick sort. 每两个数之间比较时,应从最高位开始,一位一位进行比较,将某一位更大的数排在前面。当然需要考虑当一个数是另一个数前缀时的情况,之后再

2015-02-08 00:01:21 1000

原创 Python中yield的使用小述

Python中yield恐怕是最迷人的特性之一了,不过要想理解

2014-08-21 22:56:16 1287

原创 [Android] - 如何写Instrumentation UT Manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.settings.tests"> <activity android:name="BluetoothRequestPermissionTest"

2014-07-24 10:25:09 1762

原创 递归一题三解-将二分查找树(BST)转化成循环双链表(DLL)

题目来自leetcode: 已知一个BST(binary search tree), 将其原地转化成一个循环的排序过的双链表(circular sorted double linked list)。说明:BST的节点有两个指针left, right, 分别指向比它小,和比它大的节点。变成DLL之后,由于DLL节点原本有prev 和 next 指针分别和之前和之后的节点,这里假定原left指针指

2014-01-03 12:09:13 2227

原创 线性查找-股票最佳收益

best buy and sell stockproblem 1: permitted only once buy and sellproblem 2: no limit of counts of buy and sell

2014-01-02 10:57:48 1347

原创 线性查找-数组最大距离

int A[n], find maximum j-i subjected to constraint of A[i]

2014-01-02 10:11:24 1113

原创 复制数据结构 - 单链表及图

这次依然是两道算法题,复制链表,以及复制图,最后会给出一些总结。题目一,复制一个单链表(SLL - single linked list), 其节点除了一个基本的后向指针(next), 还有一个指向链表中任意一个节点的随机指针(random)。struct ranSLLNode{ char* cValue; ranSLLNode* pNext; ranSLLNode

2013-12-23 15:07:55 1558

原创 判断回文整型数

题目来自leetcode, 要求判断一个整型数是否是回文,不使用任何额外空间。我承认,是“不使用额外空间”这句话让我想到了递归。一般判断回文字符串是一个一个字符单独比较,但是对于整型数,显然我们有更好的办法。将它从低位到高位颠倒顺序重新排列,如果跟原数一样,那就成了。bool ispalindrome(int n, int x, int m){ if(n) ret

2013-12-14 21:24:10 734

原创 网页前端持续集成(2) - qunit+JSCoverage+PhantomJS使用小记

今年早些时候为公司项目做过一些网页前端程序的持续集成(CI),在过去的几个月中不断地给不同的人讲解过之后,我决定开一篇介绍一下。公司项目是一个ASP.net的网站,其中核心是一些JavaScript 的框架库以及扩展函数。基本目标是在Jenkins上集成单元测试(Unit Test), 和代码覆盖率的统计。由于是前端程序,所以我们采用qunit来做单元测试,代码覆盖率使用JSCoverage(

2013-12-12 23:42:43 2213

原创 二分查找-两已排序数组中找中位数二题

第一题来自于《算法导论》第九章习题 9.3-8. 已知两个已排序数组X[n], Y[n](假设升序),问在时间O(lgn)内找到全部2n个数中的中位数。给了提示时间O(lgn),那么必定使用二分查找。这道题的“梗”在于如何处理两个已排序数组。我们有总共2n个数,偶数,那么全局的中位数来自于两个数a,b,在排好序的2n个数中,它们以上(比它们大)和以下(比它们小)应该各有n-1个数。令a > b

2013-12-11 14:39:12 1386

原创 动态规划-有向无回路图中两点间最远距离

题目来源于《算法导论》第15章动态规划的习题 15-1。说实话它困扰了我很久,直到最近才想明白其中道理。以前对最小距离作的比较多,比如对非负权值图中有Dijkstra算法,对负权值图中有Ford算法。  最远距离???假设从A到F的最远距离为A->C->D->E->F, 为什么D->E->F一定会是从D到F的最远距离?当重新审视有向(directed) 无回路(acyclic)这两个词时,

2013-12-10 17:34:32 3615

原创 动态规划-字符串处理二题

题目来自微信帐号“待字闺中”,10月15。给一个字母组成的字符串,问最少插入多少字符,变成回文串。这题估计着可以用动态规划解,不过乍看上去,不知如何下手。第一个“梗”在于如何处理“最少插入字符”,根据最少即最多的思路,如果已知给定字符串中存在的离散回文字符串长度,剩下长度就是最少插入字符。OK,有思路了,动态规划找到回文字符串,需要一个最优子结构转化式。用dp[i][i+j-1] 表示

2013-12-10 14:21:27 706

原创 两有序数组两两之和的最小k个值, 最小堆解法之完整版

原题: 给定两有序数组,长度都是n,在总共n^2个两两之和中,找到最小的k个值。题目不新鲜,出现了也有很多年了,不过在目前的面试中还有使用。较好的方法显然是用最小堆,时间复杂度降到 O(klgk)不过网上大略搜了一下,没有找到完整实现,甚至连关键点都没提到,我就这里算是个补充吧。用最小堆,元素是 A[i] + B[j]. 每次弹出堆顶,然后插入新元素,维护最小堆。这里的关键在于每次插入哪些

2013-11-26 23:43:42 1587 1

原创 Fibonacci数列变例之一

题目来自昨天看到的一篇博客,在一个变形的Fibonacci数列中,求第N个数。变形之处是,当前两个数之和大于10时,将和拆成两个一位数。比如:0 2 2 4 6 1 0 1 1 2 3 5 8 1 33 4 7 1 1 2 3 5 8 1 3 4 7 1 1算法很简单,基本逻辑是根据前两个数是否大于10决定之后一个数或两个数,一种例外情况是头两个数都是0。int GetSumNum

2013-01-30 20:59:48 394

原创 C++Primer中 智能指针一例分析

近期复习《C++Primer》,用的第四版。在13章复制控制中,书上给出了一个自定义智能指针的例子。代码见下,纯抄书。关于这个例子,自己之前有个疑问,一直没能解答,就是为什么我们已经用了U_Ptr class 封装了实际使用的 int*, 在U_Ptr里面维护了一个int* 的引用计数,为啥还要再用HasPtr class 再封装一次U_Ptr? 显然这里暴露给外部使用的是HasPtr, 它才

2013-01-26 00:46:20 530

原创 网页前端持续集成(1) - JSCoverage的使用简介

公司项目组使用jscoverage对被测试过的js文件作代码覆盖率检测。上一个tag的代码,jscoverage运行的好好的。到了新的tag,由于工程文件作了调整,js源代码文件所在路径改动较大,导致jscoverage页面上始终无法显示各个js文件的覆盖率。前两天我依照jscoverage文档的介绍,自己实现了一个小的demo,通过这个过程,搞清楚了jscoverage使用中的各文件之间相互关系

2013-01-11 16:26:27 3304 1

原创 pass all options of <select> from View to controller

前几天做了点简单的.net MVC相关的东西。有个需求是是把页面上一个列表的所有选项都传回给controller. 多选框的内容,在页面可以删除和添加。初始代码如下:Index.cshtml: multiple="multiple" style="width:200px"> @foreach (string c

2011-11-24 16:04:44 809

空空如也

空空如也

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

TA关注的人

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