随笔分类 -  剑指Offer

上一页 1 2 3 4 下一页
剑指Offer(Java版)第二十六题:输入两个整数序列,第一个序列表示栈的压入顺序, 请判断第二个序列是否为该栈的弹出顺序。 假设压入栈的所有数字均不相等。 例如序列1、2、3、4、5是某栈的压栈序列, 序列5、4、3、2、1是该压栈序列对应的一个弹出序列, 但4、3、5、1、2就不可能是该压栈序列的弹出序列。
摘要:/*输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列5、4、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。 */ import java. 阅读全文
posted @ 2020-03-16 22:45 桌子哥 阅读(246) 评论(0) 推荐(0)
剑指Offer(Java版)第二十五题:包含min函数的栈
摘要:/*包含min函数的栈 *///思路:设计一个辅助栈来放最小数import java.util.*; public class Class25 { Stack<Integer> data = new Stack<Integer>(); Stack<Integer> auxiliary = new S 阅读全文
posted @ 2020-03-16 22:17 桌子哥 阅读(101) 评论(0) 推荐(0)
剑指Offer(Java版)第二十四题:顺时针打印矩阵
摘要:/*顺时针打印矩阵 */public class Class24 { public void printMatrix(int[][] matrix){ if(matrix == null || matrix.length <= 0){ return; }else{ printMatrixCircle 阅读全文
posted @ 2020-03-16 21:53 桌子哥 阅读(128) 评论(0) 推荐(0)
剑指Offer(Java版)第二十三题:操作给定的二叉树,将其变换为源二叉树的镜像。
摘要:/* 操作给定的二叉树,将其变换为源二叉树的镜像。 *///思路:根据二叉树中序的特点,使用栈来实现或者使用递归来实现。将镜像反转的特点和二叉树中序遍历的程序结合起来就可以实现了。 import java.util.*; public class Class23 { static class Tre 阅读全文
posted @ 2020-03-11 21:43 桌子哥 阅读(201) 评论(0) 推荐(0)
剑指Offer(Java版)第二十二题:输入两棵二叉树A和B,判断B是不是A的子结构。
摘要:/*输入两棵二叉树A和B,判断B是不是A的子结构。*///解题思路://1)对A进行遍历,寻找B的根子节点//2)接着在A中寻找是否含有B的结构。public class Class22 { static class TreeNode{ double val; TreeNode left = nul 阅读全文
posted @ 2020-03-11 21:14 桌子哥 阅读(238) 评论(0) 推荐(0)
剑指Offer(Java版)第二十一题:链表中环的入口结点
摘要:/*链表中环的入口结点*///思路,使用两个指针,一个快,一个慢,如果快的指针与慢的指针同时直到同一个节点,那么存在环。public class Class21 { //复杂问题分解成为几个简单问题(本题分为三步:找出环中任一结点;得到环的个数;找到入口结点) static class ListNo 阅读全文
posted @ 2020-03-11 16:48 桌子哥 阅读(149) 评论(0) 推荐(0)
剑指Offer(Java版)第二十题:输入两个单调递增的链表,输出两个链表合成后的链表, 当然我们需要合成后的链表满足单调不减规则。
摘要:import Class19.ListNode; /*输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。*/public class Class20 { static class ListNode{ int val; ListNode next = null 阅读全文
posted @ 2020-03-11 16:09 桌子哥 阅读(217) 评论(0) 推荐(0)
剑指Offer(Java版)第十九题:输入一个链表,反转链表后,输出链表的所有元素。
摘要:/*输入一个链表,反转链表后,输出链表的所有元素。*/public class Class19 { static class ListNode{ int val; ListNode next = null; ListNode(int val){ this.val = val; } } //迭代法 p 阅读全文
posted @ 2020-03-11 15:42 桌子哥 阅读(266) 评论(0) 推荐(1)
剑指Offer(Java版)第十八题:输入一个链表,输出该链表中倒数第k个结点。 为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。 例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。 这个链表的倒数第3个结点是值为4的结点。
摘要:/* 输入一个链表,输出该链表中倒数第k个结点。 为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。 例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。 这个链表的倒数第3个结点是值为4的结点。 */public class Class18 { //利 阅读全文
posted @ 2020-03-09 22:05 桌子哥 阅读(362) 评论(0) 推荐(0)
剑指Offer(Java版)第十七题:输入一个整数数组,实现一个函数来调整该数组中数字的顺序, 使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分, 并保证奇数和奇数,偶数和偶数之间的相对位置不变。
摘要:/*输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变*/ import java.util.*; public class Class17 { public void shuzi 阅读全文
posted @ 2020-03-09 21:40 桌子哥 阅读(659) 评论(0) 推荐(0)
剑指Offer(Java版)第十六题:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。
摘要:/*给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 */public class Class16 { static class ListNode{ int val; ListNode next; public ListNode(int value, ListNode ne 阅读全文
posted @ 2020-03-09 20:09 桌子哥 阅读(340) 评论(0) 推荐(0)
剑指Offer(Java版)第十五题:打印1到最大的n位数
摘要:/* 打印1到最大的n位数 *///一开始想到的是直接构造出最大数,然后逆序输出,把‘0’排除在外即可。看了一些网上的博客,要注意大叔情况,因此使用以下方法。public class Class15 { public void printNumber(int n){ if(n <= 0){ retu 阅读全文
posted @ 2020-03-09 19:15 桌子哥 阅读(184) 评论(0) 推荐(0)
剑指Offer(Java版)第十四题:给定一个double类型的浮点数base和int类型的整数exponent。 求base的exponent次方。不得使用库函数,不需要考虑大数问题。
摘要:/*给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。不得使用库函数,不需要考虑大数问题。注意事项:不能用==比较两个浮点数是否相等,因为有误差。考虑输入值的多种情况。*/public class Class14 { public doub 阅读全文
posted @ 2020-03-09 15:58 桌子哥 阅读(338) 评论(0) 推荐(0)
剑指Offer(Java版)第十三题:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。
摘要:/*请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。 * 例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。 */public class Class13 { public int findNumOfOne(int a){ int count = 0; while 阅读全文
posted @ 2020-03-08 19:29 桌子哥 阅读(466) 评论(0) 推荐(0)
剑指Offer(Java版)第十一题
摘要:public class Class112 { public boolean findPath(char[] matrix, int rows, int cols, char[] str){ boolean anchor[] = new boolean[matrix.length]; for(int 阅读全文
posted @ 2020-03-08 18:52 桌子哥 阅读(204) 评论(0) 推荐(0)
剑指Offer(Java版)第十二题:地上有一个m行n列的方格。一个机器人从坐标(0, 0)的格子开始移动, 它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。 如,当k为18时,机器人能够进入方格(35, 37),因为3+5+3+7=18。但它不能进入方格(35, 38), 因为3+5+3+8=19。请问该机器人能够到达多少个格子?
摘要:/*地上有一个m行n列的方格。一个机器人从坐标(0, 0)的格子开始移动, 它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。 如,当k为18时,机器人能够进入方格(35, 37),因为3+5+3+7=18。但它不能进入方格(35, 38), 因为3+5+3+8= 阅读全文
posted @ 2020-03-08 18:24 桌子哥 阅读(636) 评论(0) 推荐(0)
剑指Offer(Java版)第十一题(解法一):请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。 路径可以从矩阵中任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。 如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。 例如在下面的3&#215;4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用下划线标出)。
摘要:/*请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。 路径可以从矩阵中任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。 如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。 例如在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用下划 阅读全文
posted @ 2020-03-08 15:34 桌子哥 阅读(355) 评论(0) 推荐(0)
剑指Offer(Java版)第十题:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。
摘要:/* 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。*/public class Class10 { //因为是一个 阅读全文
posted @ 2020-03-05 17:41 桌子哥 阅读(508) 评论(0) 推荐(0)
剑指Offer(Java版)第九题:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。
摘要:/*写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。*/ import java.util.*; public class Class9 { public int findFib(int a){ int sum = 1; if(a < 0){ throw new RuntimeEx 阅读全文
posted @ 2020-03-05 16:24 桌子哥 阅读(745) 评论(0) 推荐(0)
剑指offer(Java版)第七题:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead, 分别完成在队列尾部插入结点和在队列头部删除结点的功能。
摘要:/*用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。*/ import java.util.*; public class Class8 { static class stackToQueue{ 阅读全文
posted @ 2020-03-05 15:30 桌子哥 阅读(710) 评论(0) 推荐(1)

上一页 1 2 3 4 下一页