07 2017 档案
53、正则表达式匹配
摘要:问题: 题目:请实现一个函数用来匹配包含‘.’和‘*’的正则表达式。模式中的字符’.’表示任意一个字符,而‘*’表示它前面的字符可以出现任意次(含0次)。本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串“aaa”与模式“a.a”和“ab*ac*a”匹配,但与“aa.a”及“ab*a”均不匹 阅读全文
posted @ 2017-07-19 23:04 Scarlett meng 阅读(153) 评论(0) 推荐(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) 推荐(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) 推荐(0)
50、树中两个节点的公共祖先
摘要:详细的询问: 1、该树是二叉查找树? 最近公共祖先 二叉查找树:(http://www.lintcode.com/problem/lowest-common-ancestor/) 思路:利用左子树特点:左子树 < 根 <= 右,输入节点跟根节点比较,都小于,在左子树,都大约右子树,递归的去遍历;找到 阅读全文
posted @ 2017-07-03 22:27 Scarlett meng 阅读(448) 评论(0) 推荐(0)
49、把字符串转为整数
摘要:思路:合法字符的话,取得该位数字并不断*10相加 注意: 输入的是非法字符,null,,有非数字的字符 输入的有正负号 只输入+,- 有没有超出最大最小的整数 public class Solution { public int StrToInt(String str) { boolean lega 阅读全文
posted @ 2017-07-03 22:15 Scarlett meng 阅读(204) 评论(0) 推荐(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) 推荐(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) 推荐(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) 推荐(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) 推荐(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) 推荐(0)
4、替换空格。将空格换成其他字符。
摘要:思路:若在同一个字符串移动,先遍历出空格个数,开辟空间,再从后往前遍历和复制。若允许新的空间,可随意。 solution1: public class Solution { public String replaceSpace(StringBuffer str) { if(str == null | 阅读全文
posted @ 2017-07-01 13:31 Scarlett meng 阅读(1187) 评论(0) 推荐(0)