剑指offer
芋艿ashes
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指offer(题六)
题意:给出二叉树前序和中序序列,要求重构该二叉树并输出根节点。 思路:就是由前序和中序确认该二叉树的形状。 代码:package MianShiTi_6;public class MianShiTi_6 { public static class BinaryTreeNode{ int value; BinaryTreeNode left;原创 2017-02-27 20:47:06 · 211 阅读 · 0 评论 -
剑指offer_23
题意:层序打印二叉树 思路:维护一个队列,存储二叉树从上至下、从左至右的打印顺序,先进先出。 代码:package MianShiTi_23;import java.util.LinkedList;import java.util.Queue;import javax.swing.text.AbstractDocument.LeafElement;public class MianShiTi_原创 2017-03-24 23:03:21 · 248 阅读 · 0 评论 -
剑指offer_22
题意:栈元素的压入、弹出 思路:给出了压入的顺序和弹出的次序,需要搞一个栈来存储压入的数组元素,然后进行比较。具体看代码。package MianShiTi_22;import java.util.Stack;public class MianShiTi_22 { //只有当要弹出的元素恰好是栈顶元素,那么直接弹出。 //若下一个弹出的元素不在栈栈顶,那么把压栈顺序中还没有压入的元素原创 2017-03-24 23:01:42 · 227 阅读 · 0 评论 -
剑指offer_21
题意:实现带有min函数的栈 思路:用两个栈,一个num栈,一个min栈,当压入一个数字时候,若是比min栈中最小值大,那么min栈依然压入min栈栈顶的数字,否则,压入当前待压入的值。 代码:package MianShiTi_21;import java.util.Stack;public class MianShiTi_21 { static Stack<Integer> num原创 2017-03-23 15:18:51 · 277 阅读 · 0 评论 -
jianzhioffer_20
题意:顺时针打印出矩阵的所有元素 思路:看代码。 代码:package MianShiTi_20;public class MianShiTi_20 { public static void printMatrixClockwisely(int[][] numbers) { int rows = numbers.length; int cols = numb原创 2017-03-22 22:45:19 · 287 阅读 · 0 评论 -
剑指offer_19
题意:二叉树镜像 思路:看代码,鲁棒性要处理好,对于空节点的处理。 代码:package MianShiTi_19;public class MianShiTi_19 { public static class BinaryNode{ int value; BinaryNode left; BinaryNode right; }原创 2017-03-21 20:17:15 · 297 阅读 · 0 评论 -
剑指offer_9
题意:在Excel表中,A表示第一列,B表示第二列……Z表示第26列,AA表示第27列,AB表示第28列….以此类推,输入用字母表示的列号编码,输出他是第几列。 思路:看成26进制来处理就可以。原创 2017-03-09 22:58:55 · 855 阅读 · 0 评论 -
剑指offer_8
题意:找出旋转数组的最小值。例如,3,4,5,1,2是1,2,3,4,5的一个旋转数组。 思路:采用二分查找的方式可以获得O(log(n))的时间复杂度,但是这里需要注意几地方,第一,循环的中止;第二,当begin、last和mid的值都相等的时候,怎么处理。 代码:package MianShiTi_8;public class MianShiTi_8 { public static原创 2017-03-08 22:29:42 · 248 阅读 · 0 评论 -
剑指offer_14(调整数组顺序使得奇数位于偶数前面)
题意:调整数组顺序使得奇数位于偶数前面 思路:搞两个指针一前一后 代码:package MianShiTi_14;public class MianShiTi_14 { //将奇数都移到前面,偶数都移到后面 public static void EvenExchangeOdd(int[] num) throws Exception { if(num == null原创 2017-03-17 20:06:41 · 231 阅读 · 0 评论 -
剑指offer_13(在O(1)的时间内删除链表中的某一个元素)
题意:在O(1)的时间内删除链表中的某一个元素 思路:若链表只有一个元素,那么就是删除这一唯一元素;若删除的是链表最后一个元素,那么只能从头遍历;若删除的是只是中间的一个元素,那么将待删除的元素的下一个元素的值赋给待删除元素,再将待删除元素的下一个元素给删除即可。 代码:package MianShiTi_13;import java.awt.List;public class MianShiT原创 2017-03-17 16:32:47 · 289 阅读 · 0 评论 -
剑指offer_12(打印出从1到最大n位数)
题意:给定一个整数n,打印出从1到最大n位数。 思路:一般解法很简单,但是基于效率考虑,选择位运算来解答。 代码:package MianShiTi_12;public class MianShiTi_12 { public static boolean isOverflow(int[] number) throws Exception { if(number.leng原创 2017-03-17 16:28:44 · 228 阅读 · 0 评论 -
剑指offer(题四)
题意:将一个字符串中所有的空格替换成指定的字符串。 思路:先遍历字符串,计算有多少空格,再计算将该字符串中空格替换了指定字符串后,替换后的长度是多大。初始化一个长度为替换后长度的数组,设定两个游标,index1指向替换后数组的末尾,index2指向替换前字符串的末尾,从后往前遍历,若index2指定的字符为空格,则在index1指定的位置加上待替换的字符串,否则则将字符复制至index1位置。原创 2017-02-24 21:53:37 · 235 阅读 · 0 评论 -
剑指offer(题三)
题意:给出一个二维矩阵,每行、每列都递增排序。查找这个矩阵中的某个数,看是否存在。 思路:每次看最右上角的数,若和待查找的数相等,则返回;若是大于目标数,则将矩阵中的该列删除;若是小于目标数,则将矩阵中的该行删除。同样,也可每次看最左下角的数字。 代码:package MianShiTi_3;public class MianShiTi_3 { //从最右上角开始查找 publi原创 2017-02-23 22:25:21 · 264 阅读 · 0 评论 -
怎么判断N!的阶乘末尾有几个零
题意:N!的阶乘末尾有几个零。 思路:能产生零的只有2*5=10,所但是2的个数是绝对比5多的,所以只需知道5的个数。 代码:package theEndOfN_阶乘;public class theEndOfN_阶乘 { public static int solve(int N) { int count = 0; for(int i = 1 ; i原创 2017-03-03 00:01:30 · 2671 阅读 · 0 评论 -
360笔试题(2016年)—找出第一个出现一次的字符
题意:给定字符数N,找出N个字符中第一次出现的字符。 思路:遍历字符串,记录每个字符出现的次数,存放在数组中,再遍历数组,找出第一个次数为1的字符。 代码:package FindFirstCharacter;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;imp原创 2017-03-02 00:48:18 · 286 阅读 · 0 评论 -
剑指offer_25
题意:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径(一直到叶节点)。 思路:分别用栈和ArrayList实现了。 代码:package MianShiTi_25;import java.awt.FontFormatException;import java.util.ArrayList;import java.util.Queue;import java.util原创 2017-03-26 16:30:18 · 304 阅读 · 1 评论
分享