本文主要介绍了一个解决”无重复字符的最长子串”问题的滑动窗口解决方案,这个算法时间复杂度为 O(n),空间复杂度为 O(1),很是简洁优雅![……]
leetcode挑战: “无重复字符的最长子串”之易水解决方案
本文列出了易水对leetcode的longest substring without repeating characters问题的C++实现代码。[……]
leetcode挑战: 两数相加
本文列出了易水对leetcode.com的add two number问题的C++及Python实现代码。[……]
易水leetcode.com(力扣)解题系列: 目录
前几天刚刚知道leetcode.com这个网站,在上面试着做了几道题,觉得很有意思,于是产生了个想法,想把在leetcode上做过的题以及踩过的坑记录下来,当做是总结吧。本文是本系列文章的目录。[……]
Practical Vim中文版 -《Vim实用技巧》已出版
升级及迁移svn本地版本库
Subversion有一点很麻烦,每次版本升级时格式都会变,导致本地版本库不能用。本文介绍了一种简单方式,解决svn版本升级及服务器地址变化带来的麻烦。[……]
使用Scala + sbt + sbt-android-plugin开发Android应用程序
开发Android程序通常所使用的语言是Java,但Scala做为一种有希望替代Java的语言,也逐渐被越来越多的Android者所熟悉。本文简要的介绍如何使用Scala的sbt工具(Simple Build Tool)及sbt-android-plugin创建,编译,安装运行一个简单的Android程序。 [……]
在Linux上使用adb访问魅族M9手机
在windows上通过adb访问M9很简单,WinXP用户到魅族 M9 产品支持 下载USB驱动,安装后就可以通过adb访问M9了。似乎Win 7能直接识别M9,不需要手动安装驱动。
要在Linux上访问魅族M9手机,并不需要安装驱动,不过需要设置一下udev。以root身份增加一个文件/etc/udev/rules.d/51-android.rules,内容如下:[……]
在Ubuntu上编译Android Gingerbread 2.3.1
前几天下载了Android 2.3.1的源代码并在Ubuntu 10.04(32位)上编译通过。这篇文章简要记录了下载、编译的过程。
关于搭建Android开发环境的文章已经有很多,本文只简要介绍一下,做为备忘。
[ 编译前的准备 ]
这一步安装获取源代码以及编译所需要的软件,使用如下命令:
$ sudo aptitude install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
另外,参考别人编译Android 2.3的经验,安装了下列软件包:
$ sudo apt-get install lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6
虽然Android官方网站上讲不支持Java 6,不过我使用Java 6也可以编译通过,所以在这里Easwy安装的是Java 6…[……]
在scala中判断一个对象是否是元组(Tuple)
在scala user邮件列表中看到一个函数,判断一个对象是否是元组。从这个函数中,Easwy才了解到原来模式匹配(Pattern Match)也可以应用于正则表达式,这使得在scala中使用正则表达式(regex)更加容易了。另外,这个函数还展现了scala的另外两个特点:
1. 尽量使用递归解决方案,而不是使用循环。这样做的优点之一是避免使用变量,优点之二是代码简洁。是否有其它优点,Easwy仍在总结。但Easwy始终有个担心,递归会不会导致效率降低?会不会有堆栈溢出风险?
2. 使用Option类型做为函数返回值。使用Option类型的好处很明显,这样你的函数既可以返回执行失败的情况(None),也可以在执行成功时给出有用的返回值。这比使用tru/false作为返回值方便很多。
函数主体如下,为了方便讲解,在前面加了行号: [……]