`
Cwind
  • 浏览: 262826 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
793bb7df-a2a9-312d-8cb8-b66c3af482d1
LeetCode题解
浏览量:52431
社区版块
存档分类
最新评论
文章列表
原题链接:#21 Merge Two Sorted Lists   要求: 合并两个已排序的单向链表,将合并后的结果作为一个链表返回。 ListNode定义: public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }   难度:简单   分析: 由于两个链表均已排好序,令两个指针指向两个链表的头节点,每次取出两个指针中值较小的一个节点,然后将指针后移。当一个链表遍历完以后,将另一个链表的剩余部分拼接到结果链表的尾部即可。   解决方案: ...
原题链接:#10 Regular Expression Matching   要求: 实现正则表达式匹配,支持'.'和'*'。   '.'匹配任意单字符。 '*'匹配任何0个或多个之前元素。   匹配应当覆盖整个输入字符串,而不仅仅是子串。   函数原型: boolean isMatch( ...
原题链接:#7 Climbing Stairs   问题: 你正在攀爬一把一共有n个台阶的梯子,每次可以爬一或二阶,爬到顶共有多少种不同的方式?   难度:简单   分析: 当梯子阶数为0时,有0种攀爬方式;当阶数为1时,则有一种攀爬方式。当阶数为2时,由于每次可以爬一阶或两阶,即从0阶处爬两阶到达顶部或由1阶处爬1阶到达顶处,共2种方式。n=3时同样,可以由1阶处爬两阶或由2阶处爬1阶到达。设对于i阶阶梯不同的攀爬方式为S(i),可得递推公式为 S(i) = S(i-1) + S(i-2) (2≤i≤n) (看起来很眼熟 ;-))   解决方案: Java - 244m ...
原题链接:#7 Reverse Integer   要求: 按位反转输入的数字 例1: 输入 x = 123, 返回 321 例2: 输入 x = -123, 返回 -321   难度:简单   分析: 对于一般情况,首先保存输入数字的符号,然后每次取输入的末位(x%10)作为输出的高位(result = result*10 + x%10)即可。但须考虑边界情况,即输入大于Integer.MAX_VALUE或小于Integer.MIN_VALUE的情况。根据用例的结果,这时应输出0。我们用x<0&&-x<0来判断输入是否属于这种情况。   解 ...
原题链接:#66 Plus One   要求: 给定一个用数字数组表示的非负整数,如num1 = {1, 2, 3, 9}, num2 = {9, 9}等,给这个数加上1。 注意: 1. 数字的较高位存在数组的头上,即num1表示数字1239 2. 每一位(数组中的每个元素)的取值范围为0~9   难度:简单   分析: 题目比较简单,只须从数组尾部开始,若当前位是9则向前一位进位,小于9则直接将当前位加一返回即可。 另外需要注意的是全为9的情况,在这种情况下结果数组的位数比输入数组多一位。即输入{9, 9}输出{1, 0, 0}。   解决方案: Java - ...
原题链接:#137 Single Number II  要求: 给定一个整型数组,其中除了一个元素之外,每个元素都出现三次。找出这个元素 注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间   难度:中等   分析: 与#136类似, ...
最近正在试用Netty,关于Netty是什么以及它能够做什么,在其官网的“Netty口号”中说得很清楚:   Netty is an asynchronous event-driven network application framework  for rapid development of maintainable high performance protocol servers & clients.   这句话很多人已经翻译过了,Netty是一个异步的、事件驱动的网络应用框架,用于快速开发可维护的、高性能的服务器和客户端。补充一句,Netty封装了传输层协 ...
Nodejs简介 Node.js 基于 Chrome JavaScript 运行环境,用于便捷地搭建快速、可扩展的网络应用。 它使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效, 非常适合于运行在分布式设备的数据密集型实时应用。 当前版本:v0.12.4   安装配置Node.js 在官网下载页根据自己的平台选择安装程序。对于Windows有msi与exe两种选择。msi会自动装好node与npm,同时设置一些环境变量。为了学习和配置上的灵活性,这里选择下载64位的exe文件。   建立目录(如d:\nodejs),把下载下来的node.exe拷贝进去。并将此目录 ...
本文译自StackOverflow上对此问题的讨论。 原问题链接   在阅读Joshua Bloch的《Effective Java(第二版)》第8条“覆盖equals时请遵守通用约定”时对如下论述有疑问: “不要将equals声明中的Object对象替换为其他的类型。程序员编写出下面这样的equals方法并不鲜见,这会使程序员花上数个小时都搞不清它为什么不能正常工作:” public boolean equals(MyClass o) { //... }  “问题在于,这个方法并没有覆盖(override)Object.equals,因为它的参数应当是Object类型 ...
一个简单的js小轮子。先说应用场景: 以json字符串的形式拿到map,如'{"key1":"value1","key2":"value2","key3":"value3"}' 需要遍历该map的键,并利用键的集合生成下拉框的option 选择该下拉框中的某一项时,需要得到该键对应的值   首先将利用JSON.parse()方法解析传入的jsonStr,得到对应的Object。 var jsonStr = '{"key1":" ...
原题链接:#9 Palindrome Number   要求: 判断一个整数是否是回文数,不要使用额外的存储空间   难度:简单   分析: 题目限制不允许使用额外的存储空间应指不允许使用O(n)的内存空间,O(1)的内存用于存储中间结果是可以接受的。于是考虑将该整型数反转,然后与原数字进行比较。 注:没有看到有关负数是否可以是回文数的明确结论,例如-1,-121等。根据LeetCode Judging结果暂认为所有负数都不是回文数     解决方案:   Java - 388ms   public boolean isPalindrome(int x ...
原题链接:#136 Single Number 要求: 给定一个整型数组,其中除了一个元素之外,每个元素都出现两次。找出这个元素 注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间 难度:中等 分析: 题目限定了线性的时间复杂度,同时不使用额外的空间,即要求只遍历数组一遍得出结果。由于异或运算 n XOR n = 0, n XOR 0 = n,故将数组中的每个元素进行异或运算即可得到结果 解决方案: Java - 245ms public int singleNumber(int[] A) { if(A.length==0) { ...
原题链接:#191 Number of 1 Bits 要求: 写一个函数,以一个无符号整数为参数,返回其汉明权重。例如,‘11’的二进制表示为'00000000000000000000000000001011', 故函数应当返回3。 汉明权重:指一个字符串中非零字符的个数;对于二进制串,即其中‘1’的个数。 难度:简单 分析: 将十进制参数转换为二进制,然后计算其中1的个数即可。 “除二取余”是常见的计算方式,由于Java中没有无符号整型,故采用无符号移位代替数学运算。这也避免了传入参数为Integer.MAX_VALUE + 1,即2147483648 (1000000000 ...
前些日子把JXL替换为ApachePOI,原因很简单,JXL在2009年10月已经停止更新,并且不支持Excel 2007 OOXML (.xlsx)格式的文件。事实上把JXL与POI进行比较并不公平,因为JXL只能够操作OLE2格式的Excel(即.xls),而POI则是能够读写xls(x)、doc(x)、ppt(x)的一整套解决方案。   不同版本Excel的行列数限制:  +-----------------+-----------+--------------+---------------------+ | | Max. Rows | Max ...
对文件及文件夹进行修改变更监测有很广泛的应用,例如: 通知配置文件的改变 跟踪某些关键的系统文件的变化 监控某个分区磁盘的整体使用情况 系统崩溃时进行自动清理 自动触发备份进程 向服务器上传文件结束时发出通知 下面给出Java的两种实现,源码可以在GitHub上找到 FileMonitor JDK1.6及之前版本: 基于Timer实现 两个关键类: java.util.Timer java.util.TimerTask Timertask是由Timer执行的实际任务,实现了Rannable接口。通过重写run()方法来指定具体任务细 ...
Global site tag (gtag.js) - Google Analytics