摘要: 简单题。唯一的小技巧是使用了指向指针的指针。 class Solution { public: ListNode *removeNthFromEnd(ListNode *head, int n) { // Start typing your C/C++ solution below // DO NO 阅读全文
posted @ 2013-07-29 21:48 阿牧遥 阅读(149) 评论(0) 推荐(0) 编辑
摘要: DFS,用C会更合适一些,用Java就要传很多的引用。在我看来,这个DFS就是递归。import java.util.ArrayList;import java.util.HashMap;public class Solution { public ArrayList letterCombin... 阅读全文
posted @ 2013-07-29 17:26 阿牧遥 阅读(554) 评论(0) 推荐(0) 编辑
摘要: 此题是Two Sum的变种,Two Sum能从O(n^2)优化到O(n)。那么此题能从O(n^3)优化到O(n^2)。就是少了那一维n。此处要注意:1.当有重复的数字时,要跳过;2.找好一个数字去寻找另外两个数字时,只需从右边部分寻找就行,否则会重复。import java.util.ArrayLi... 阅读全文
posted @ 2013-07-29 16:36 阿牧遥 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 水题。一个一个字符串比较就是了。public class Solution { public String longestCommonPrefix(String[] strs) { // Start typing your Java solution below // DO NOT write main() function if (strs == null || strs.length == 0) return ""; String s = strs[0]; for (int i = 1; i < strs.length; i+... 阅读全文
posted @ 2013-07-29 15:34 阿牧遥 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 此题一开始看错了,后来才发现由小的一根(短板)决定高度。中间看过网上的解答,思路是O(n)的,略巧妙。其实就是基于这样一个直觉,先把L1设为最左,R1设为最右,这样宽度最大,然后缩小宽度,那么高度就要比原来高。缩小宽度的逻辑是,如果L1比R1小,那么L1往右移,否则反之。可以做简单证明。 如图,L1 阅读全文
posted @ 2013-07-27 14:38 阿牧遥 阅读(1676) 评论(0) 推荐(0) 编辑
摘要: 此题有难度。一开始是用循环往前p和s贪心来做,代码已经很复杂,但处理依然有(大)错。如aaab配a*ab 和babc配.*c的情况无法处理。看了网上的资料后才认定这种情况必须要全面回溯匹配,这种情况下最适合的就是递归了。默默的写程序,中间有漏过*s!=0的判断,但几次修改后居然通过了,小激动。参考:... 阅读全文
posted @ 2013-07-27 12:09 阿牧遥 阅读(821) 评论(0) 推荐(0) 编辑
摘要: 普通题。需要注意的是反转时的溢出。还有正负符号。(居然我没有特别加正负的判断也过了... 想了一下才发现根据我的代码负数的时候都会抛Exception,歪打正着。)public class Solution { public boolean isPalindrome(int x) { // Start typing your Java solution below // DO NOT write main() function try { int r = reverse(x); if (r == x) { ... 阅读全文
posted @ 2013-07-26 13:48 阿牧遥 阅读(274) 评论(1) 推荐(0) 编辑
摘要: 水题。需要注意的是特殊情况考虑。一是前面的空格,二是最后的非数字字符,三是正负符号(我考虑了负号,忘记了正号),四是溢出,而且溢出还分两种,一是2147483649这样的溢出,二是10000000000这样的溢出,多一位(我只考虑了一种)。五是空字符串。最终代码pass,但其实还忘了处理null。代码如下:public class Solution { public int atoi(String str) { // Start typing your Java solution below // DO NOT write main() function ... 阅读全文
posted @ 2013-07-26 05:52 阿牧遥 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 水题。但题下的注释还是有点启发的,一个是比如120反转,一个是反转后有可能int溢出。前者不需要特殊处理,后者需要clarify,如果发生是否以另一个参数传出或抛出异常。public class Solution { public int reverse(int x) { // Start typing your Java solution below // DO NOT write main() function int result = 0; boolean neg = false; if (x < 0) { ... 阅读全文
posted @ 2013-07-18 16:36 阿牧遥 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 水题。主要就是画画图,找找规律。稍微要注意的是:1. nRow为1的情况;2. 采用变量index方便边界判断public class Solution { public String convert(String s, int nRows) { StringBuilder sb... 阅读全文
posted @ 2013-07-17 23:27 阿牧遥 阅读(220) 评论(0) 推荐(0) 编辑