53、正则表达式匹配
摘要:问题: 题目:请实现一个函数用来匹配包含‘.’和‘*’的正则表达式。模式中的字符’.’表示任意一个字符,而‘*’表示它前面的字符可以出现任意次(含0次)。本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串“aaa”与模式“a.a”和“ab*ac*a”匹配,但与“aa.a”及“ab*a”均不匹
阅读全文
posted @
2017-07-19 23:04
Scarlett meng
阅读(153)
推荐(0)
52、构建乘积数组
摘要:题目:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 思路: //b[i] = c[i]* d[i] //c[i] = A[0]*A[1]*..
阅读全文
posted @
2017-07-18 22:55
Scarlett meng
阅读(212)
推荐(0)
51、数组中重复的数
摘要:题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 https://www.n
阅读全文
posted @
2017-07-18 22:26
Scarlett meng
阅读(177)
推荐(0)
50、树中两个节点的公共祖先
摘要:详细的询问: 1、该树是二叉查找树? 最近公共祖先 二叉查找树:(http://www.lintcode.com/problem/lowest-common-ancestor/) 思路:利用左子树特点:左子树 < 根 <= 右,输入节点跟根节点比较,都小于,在左子树,都大约右子树,递归的去遍历;找到
阅读全文
posted @
2017-07-03 22:27
Scarlett meng
阅读(448)
推荐(0)
49、把字符串转为整数
摘要:思路:合法字符的话,取得该位数字并不断*10相加 注意: 输入的是非法字符,null,,有非数字的字符 输入的有正负号 只输入+,- 有没有超出最大最小的整数 public class Solution { public int StrToInt(String str) { boolean lega
阅读全文
posted @
2017-07-03 22:15
Scarlett meng
阅读(204)
推荐(0)
47、不用加减乘除做加法
摘要:思路:不用加减乘除,考虑用二进制加法过程:1、各位相加不计进位2、记录进位3、两部结果相加。 异或^:相同的为0,不同的为1,可代替不计进位的加法 位与&再向左移动:只有1和1&为1,向左移动为进位,可用来记录进位。 public class Solution { public int Add(in
阅读全文
posted @
2017-07-02 22:50
Scarlett meng
阅读(170)
推荐(0)
46、求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
摘要:思路:循环或者递归都有个结束条件和执行条件。用&&短路与代替。 //短路与&&;就是只有前一个条件满足才可以去判断第二个条件。 //递归的出口就是n=0时,当n>0是每次都会执行&&之后的表达式sum += Sum_Solution(n-1); public class Solution { sta
阅读全文
posted @
2017-07-02 22:19
Scarlett meng
阅读(182)
推荐(0)
45、圆圈中最后剩下的数字
摘要:思路1:环形链表,每次只删除一个数,都从第0个开始。每次都从链表重复遍历,每删除一个,走m步,共n遍 时间O(nm),空间o(n) import java.util.*; public class Solution { public int LastRemaining_Solution(int n,
阅读全文
posted @
2017-07-01 16:19
Scarlett meng
阅读(207)
推荐(0)
44、扑克牌中的顺子
摘要:import java.util.Arrays; public class Solution { public boolean isContinuous(int [] numbers) { //数组不能为空,也不能长度小于5 if (numbers == null || numbers.length
阅读全文
posted @
2017-07-01 15:44
Scarlett meng
阅读(435)
推荐(0)
5、从尾部打印链表
摘要:思路1:用额外存储元素,然后遍历输出。如栈或arrayList,前插入,没错都插入到最前面的节点。 import java.util.ArrayList; public class Solution { public ArrayList<Integer> printListFromTailToHea
阅读全文
posted @
2017-07-01 13:36
Scarlett meng
阅读(266)
推荐(0)
4、替换空格。将空格换成其他字符。
摘要:思路:若在同一个字符串移动,先遍历出空格个数,开辟空间,再从后往前遍历和复制。若允许新的空间,可随意。 solution1: public class Solution { public String replaceSpace(StringBuffer str) { if(str == null |
阅读全文
posted @
2017-07-01 13:31
Scarlett meng
阅读(1187)
推荐(0)