剑指offer(Java)
悠风号
人的理想志向往往和他的能力成正比
展开
-
求连续子数组的最大和,Java 解法
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会...原创 2018-08-26 22:43:26 · 1800 阅读 · 0 评论 -
输入两个链表,找出它们的第一个公共结点(Java)算法总结
package Tree; import java.util.HashMap; import java.util.HashSet; import java.util.Stack; class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; ...原创 2018-08-29 22:19:49 · 1313 阅读 · 0 评论 -
翻转单词顺序(Java 剑指offer)
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? public class st...原创 2018-08-29 22:09:17 · 912 阅读 · 0 评论 -
求1+2+3+...+n (不能使用条件语句和乘除法)(Java 剑指offer)
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 public class number { //递归 //利用逻辑与的短路特性实现递归终止 //当n==0时,(n>0)&&((sum+=Sum_Solution(n-1))>0)只执行前面的判断,为false,然后...转载 2018-08-29 22:02:43 · 1879 阅读 · 0 评论 -
正则表达式的匹配 (Java / 剑指offer)
请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 当模式中的第二个字符不是“*”时: 1、如果字符串第一个字符和模式中的第一个字符相匹配,那么字符串...转载 2018-08-29 21:46:11 · 890 阅读 · 0 评论 -
把字符串转换成整数(java) 剑指offer
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0. package Tree; public class strToInt { //边界条件判断条件 //数据上下 溢出 空字符串 只有正负号,错误标志输出; p...原创 2018-08-29 11:48:21 · 2216 阅读 · 0 评论 -
不用加减乘除做加法(Java版), 剑指offer
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。(逻辑与,移位运算) 首先看十进制是如何做的: 5+7=12,三步走(解析部分摘自牛客网) 第一步:相加各位的值,不算进位,得到2。 第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。 第三步:重复上述两步,只是相加的值变成上述两步的得到的结果2和10,得到12。 同样我...转载 2018-08-29 09:09:41 · 813 阅读 · 0 评论 -
如何判断一个二叉树是否是平衡二叉树(Java)
假如有一个二叉树,需要确定它是否是平衡二叉树。最直接的做法,就是遍历每个结点,借助一个获取树深度的递归函数,根据该结点的左右子树高度差判断是否平衡,然后递归地对左右子树进行判断。 public boolean IsBalance_Solution(TreeNode root){ if(root==null) return true; int left = depth(roo...原创 2018-08-27 23:50:58 · 5649 阅读 · 2 评论 -
Java - 表达数值的字符串(剑指offer)
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。(剑指offer) public class charFlo原创 2018-08-30 16:17:25 · 1002 阅读 · 0 评论 -
判断一个二叉树是否是对称二叉树( Java)
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 思路:首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同,左子树的右子树和右子树的左子树相同即可,采用递归,另外非递归也可,采用栈或队列存取各级子树根节点。 方法一 package lastfifteen; public class treeSymmetrical {...原创 2018-08-30 11:36:33 · 4063 阅读 · 2 评论