![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
ccstargazing
这个作者很懒,什么都没留下…
展开
-
剑指offer15,链表中倒数第K个节点(Java实现)
如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我,谢谢支持。 import linkList.Node;/** * 题目:链表中倒数第K个节点 * 描述:输入一个链表,输出链表中倒数第K个结点。 * 解题:定义两个指针p1,p2。p1从头开始向前走k-1步,第二个指针保持不动; * 从第k步开始,两个指针开始遍历,当p1走到最后...原创 2018-07-23 10:25:28 · 144 阅读 · 0 评论 -
剑指offer08,旋转数组的最小数字(Java实现)
如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我。/** * 题目:旋转数组的最小数字 * 描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转 * 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。举个栗子{3,4,5,1,2} * 注意:不能遍历数组找到最小元素,这样复杂度为O(n),而且没有用上递增的特性...原创 2018-07-21 09:36:53 · 102 阅读 · 0 评论 -
剑指offer09,斐波那契数列(Java实现)
根据剑指offer的要求,我对题目的难度进行了增加。描述:一只青蛙上楼梯,一次可以上1层,一次可以上2层,一次可以上3层,上N层有多少种跳法。思路:上一层有1种跳法,上两层有2种跳法,上三层有4种跳法{1,1,1}{1,2}{2,1}{3},接下来就是递归如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我,谢谢支持。public cla...原创 2018-07-21 10:14:15 · 113 阅读 · 0 评论 -
剑指offer10,二进制中1的个数(Java实现)
如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我,谢谢支持。/** * 题目:二进制中1的个数 * 描述:请实现一个函数,输入一个整数,输出概述二进制中1的个数。 * 思路:把一个整数减去1,再和原整数做与运算,会把最右边的一个1变成0. * 那么一个整数的二进制中有多少个1,就进行多少次这样的操作 * 举个栗子:1100 &...原创 2018-07-21 10:36:05 · 169 阅读 · 0 评论 -
剑指offer11,数值的整数次方(Java实现)
如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我,谢谢支持。 /** * 题目:数值的整数次方 * 描述:不得使用函数库中的函数 * 解题:此题要是利用时间复杂O(n)的解法,那一定很简单,要实现时间复杂度O(logn)是最好的 * 实现方法:采用递归的方法。比如2的32次方,我们可以用2的16次方相乘;2的33次方,可以是2的1...原创 2018-07-22 09:30:49 · 176 阅读 · 0 评论 -
剑指offer12,打印1到最大的n位数(Java实现)
如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我,谢谢支持。/** * 题目:打印1到最大的n位数 * 描述:输入数字n按顺序打印出1的最大的n位十进制数。 * 此题肯定不能用传统的方法,因为当n很大的时候,long long 都会溢出 * 所以我们采用字符串,递归递归递归 * @author lenovo047 * */pub...原创 2018-07-22 09:51:33 · 226 阅读 · 0 评论 -
剑指offer13,在O(1)时间删除链表结点(Java实现)
如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我,谢谢支持。package swordOffer;/** * 题目:在O(1)时间内删除链表结点 * 在O(1)时间内删除链表结点,肯定不是遍历链表,那怎么做呢? * 将下一个节点的值复制到该结点,删除下一个节点就行了! * 大致思路就是这样,这只是正常情况下!特殊情况我们直接看代码中...原创 2018-07-23 09:23:17 · 184 阅读 · 0 评论 -
剑指offer14,调整数组顺序使奇数位于偶数前面(Java实现)
如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我,谢谢支持。剑指offer只是要求,奇数在前半部分,偶数在后半部分,我写完去牛客调试的时候发现,要求保证奇数和奇数,偶数和偶数之间的相对位置不变。所以我又加了一段代码。 import java.util.Arrays;/** * 题目:调整数组顺序使奇数位于偶数前面 * 描述:输...原创 2018-07-23 10:00:05 · 974 阅读 · 0 评论 -
剑指offer07,用两个栈实现队列(Java实现)
如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我。import java.util.Stack;/** * 题目:用两个栈实现队列 * 描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead, * 分别完成在队尾部插入结点和在队列头删除结点的功能。 * 解答:栈的特点是先进后出,队列...原创 2018-07-20 16:05:40 · 308 阅读 · 0 评论 -
剑指offer06,重建二叉树(Java实现)
题目要求是根据前序遍历和中序遍历打印二叉树,在这里我也写了中序和后序建树 ,前序和后序建树,如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我,我建议大家画好树再看代码,比较直观。 /* * 前序和中序建立二叉树 */ public TreeNode preInToTree(int[] pre, int[] in)...原创 2018-07-20 11:45:59 · 134 阅读 · 0 评论 -
剑指offer05,从尾到头打印链表(Java实现)
题目要求:输入一个链表的头结点,从尾到头反过来打印每个结点的值。此题可以有两种解法一、不改变链表的结构,从链表的头结点开始,逐个放入栈中(利用栈后进先出的特性),再逐个弹出即可private static void printListReverse1(Node head) { if(head == null){ return; }...原创 2018-07-20 09:28:15 · 126 阅读 · 0 评论 -
剑指offer16,反转链表(Java实现)
如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我,谢谢支持。/** * 题目:反转单向链表 * 描述:定义一个函数,输入一个链表的头结点,反转该链表并输出 反转后的头结点 具体思路看注释!!! * @author lenovo047 * */public class test16 { public static L...原创 2018-07-23 10:38:19 · 185 阅读 · 0 评论 -
剑指offer17,合并两个排序的链表(Java实现)
如果有不对的地方请发邮件到995232184@qq.com。若是不太明白思路或者过程也可发邮件给我,谢谢支持!此题给出两种方法,可以自行比较一下,看不懂的时候可以画图帮助理解。/** * 题目:合并两个排序的链表 * @author lenovo047 * */public class test17 { public static void main(String...原创 2018-07-23 11:21:34 · 490 阅读 · 0 评论 -
剑指offer18,树的子结构(Java实现)
package swordOffer;/** * 树的子结构 * 描述:输入两科二叉树A和B,判断B是不是A的子结构 * @author lenovo047 * */public class test18 { public boolean HasSubtree(TreeNode root1,TreeNode root2) { boolean fla...原创 2018-07-24 10:31:55 · 300 阅读 · 0 评论 -
剑指offer19,二叉树的镜像(Java实现)
package swordOffer;public class test19 { public void Mirror(TreeNode root) { //root为空 或者 左右结点同时为空,结束 if(root == null || (root.left == null && root.right == null...原创 2018-07-24 10:33:16 · 418 阅读 · 0 评论 -
剑指offer20,顺时针打印矩阵(Java实现)
import java.util.ArrayList;/** * 顺时针打印矩阵 * 描述:输入一个矩阵,按照从外向里顺指针的顺序打印数字 * @author lenovo047 * */public class test20 { public static void main(String[] args) { int[][] a = { ...原创 2018-07-24 10:40:39 · 112 阅读 · 0 评论 -
剑指offer04,替换空格(Java实现)
题目:实现一个函数,把字符串中的每个空格替换成“%20”思路:先初始化一个新的可变字符串,将老字符串逐个字符判断,若是空格,则转换成%20,加到新字符串,若不是空格,直接加到新的字符串。 private static StringBuffer replaceBlank(String str) { StringBuffer sb = new StringBuffer();...原创 2018-07-19 17:35:45 · 111 阅读 · 0 评论 -
剑指offer21,包含min函数的栈(Java实现)
import java.util.Stack;/** * 具有getmin功能的栈 * @author lenovo047 * */public class test21 { private static Stack<Integer> stackData = new Stack<>(); private static Stack<Inte...原创 2018-07-25 11:43:59 · 224 阅读 · 0 评论 -
剑指offer22,栈的压入、弹出序列(Java实现)
import java.util.Stack;/** * 栈的压入、弹出序列 * 描述:输入两个序列,表示输入和弹出顺序,判断第二个是否是该栈第一个的弹出顺序 方法:需要一个辅助栈 * @author lenovo047 * */public class test22 { public boolean IsPopOrder(int [] pushA...原创 2018-07-25 11:46:03 · 123 阅读 · 0 评论 -
剑指offer23,从上往下打印二叉树(Java实现)
import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/** * 从上到下打印二叉树 * 描述:从上往下打印二叉树的每个结点,从一层的结点按照从左到右的顺序打印。 * 方法:采用队列的方法(队列先进先出的性质)。首相将root放入队列,弹出一个时,同时将其左右孩子放入队列末端(...原创 2018-07-25 11:51:33 · 143 阅读 · 0 评论