自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 《剑指offer》练习-面试题30-包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。package offer;import java.util.Stack;public class Solution30 { Stack<Integer> dataStack = new Stack<>(); Stack<Integer&g...

2018-08-19 10:28:37 158

原创 《剑指offer》练习-面试题31-栈的压入、弹出序列

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)package offer;import java.util.Stack;...

2018-08-19 10:28:30 174

原创 《剑指offer》练习-面试题19-正则表达式的匹配

题目:请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配链接:https://www.nowcoder.com/practice/45327ae2...

2018-08-16 22:36:46 161

原创 《剑指offer》练习-面试题2-实现Singleleton模式

单例模式:每个类只需要一个实例。作用:保证整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(也可以不存在)。package offer;public class Solution2 { private Solution2() { }// 私有的构造函数 private static Solution2 uniqueInstance = new Solution2...

2018-08-10 18:54:27 294

原创 《剑指offer》练习-面试题62-孩子们的游戏(眼圈重最后剩下的数字)

题目:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去.......

2018-08-06 17:18:14 113

原创 《剑指offer》练习-面试题65-不用加减乘除做加法

题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。package offer;public class Solution65 { public int Add(int num1, int num2) { int sum, carry; do { sum = num1 ^ num2; carry = (num1 & nu...

2018-08-06 11:26:45 105

原创 《剑指offer》练习-面试题66-构建乘积数组

题目:给定一个数组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]。不能使用除法。链接:https://www.nowcoder.com/questionTerminal/94a4d381a68b47b7a8bed86f2975db46package offe...

2018-08-06 11:02:40 160

原创 《剑指offer》练习-面试题61-扑克牌顺子

题目:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为1...

2018-08-05 20:07:38 177

原创 《剑指offer》练习-面试题59-滑动窗口的最大值

题目:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,...

2018-08-05 17:45:24 216

原创 《剑指offer》练习-面试题58-左旋转字符串

题目:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!链接:https://www.nowcoder.com/questionTerminal/12d...

2018-08-04 23:40:42 134

原创 《剑指offer》练习-面试题56-数组中只出现一次的数字

题目:一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。链接:https://www.nowcoder.com/questionTerminal/e02fdb54d7524710a7d664d082bb7811思路:若数组中只有一个只出现了一次的数,那么对这个数组的所有数依次异或,最后得到的结果是这个落单的数。若数组中有两个只出现了一次的数...

2018-08-04 21:51:58 130

原创 《剑指offer》练习-面试题57-和为s的连续正序列

题目:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序列。序列...

2018-08-02 22:01:01 162

原创 《剑指offer》练习-面试题57-和为s的数字

题目:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。思路:夹逼package offer;import java.util.ArrayList;public class Solution57 { public ArrayList<Integer> FindNumbersWithSu...

2018-08-02 20:15:55 103

原创 《剑指offer》练习-面试题?-数字在排序数组中出现的次数

题目:统计一个数字在排序数组中出现的次数。思路一:简单暴力的解法一。。。package offer;public class Solution999 { public int GetNumberOfK(int[] array, int k) { int count = 0; for (int i = 0; i < array.length; i++) { i...

2018-07-31 22:00:10 92

原创 《剑指offer》练习-面试题36-二叉搜索树与双向链表

题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。链接:https://www.nowcoder.com/questionTerminal/947f6eb80d944a84850b0538bf0ec3a5package offer;public class Solution36 { TreeNode head...

2018-07-30 20:59:43 187 1

原创 《剑指offer》练习-面试题34-二叉树中和为某一值的路径

题目:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)链接:https://www.nowcoder.com/questionTerminal/b736e784e3e34731af99065031301bcapackage offe...

2018-07-30 19:19:42 226

原创 《剑指offer》练习-面试题33-二叉搜索树的后序遍历序列

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。package offer;public class Solution33 { public boolean VerifySquenceOfBST(int[] sequence) { if(sequence==null||sequenc...

2018-07-27 22:47:25 144

原创 《剑指offer》练习-面试题32-从上到下打印二叉树

题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。package offer;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;public class Solution32 { public ArrayList<Integer> PrintFro...

2018-07-26 22:49:20 123

原创 《剑指offer》练习-面试题28-对称的二叉树

题目:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。package offer;public class Solution28 { boolean isSymmetrical(TreeNode pRoot) { if (pRoot == null) return true; return f(pRoot...

2018-07-26 22:06:35 95

原创 《剑指offer》练习-面试题27-二叉树的镜像

题目:操作给定的二叉树,将其变换为源二叉树的镜像。package offer;public class Solution27 { public void Mirror(TreeNode root) { if (root == null) return; if (root.left == null && root.right == null) ...

2018-07-25 22:20:48 119

原创 《剑指offer》练习-面试题26-树的子结构

题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)链接:https://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88来源:牛客网package offer;public class Solution26 { public boolean Has...

2018-07-25 22:02:10 69

原创 《剑指offer》练习-面试题52-两个链表的第一个公共节点

题目:输入两个链表,找出它们的第一个公共节点。链接:https://www.nowcoder.com/questionTerminal/6ab1d9a29e88450685099d45c9e31e46来源:牛客网思路一:栈(后进先出)。分别把两个链表的节点放入两个栈里,这样两个链表的尾节点就位于两个栈的栈顶,接下来比较两个栈顶的节点是否相同。如果相同,则把栈顶弹出接着比较下一个栈顶,...

2018-07-22 21:05:53 319

原创 《剑指offer》练习-面试题35-复杂链表的复制

题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)链接:https://www.nowcoder.com/questionTerminal/f836b2c43afc4b35ad6adc41ec941dba来源:牛客网...

2018-07-21 22:06:41 110

原创 《剑指offer》练习-面试题25-合并两个排序的链表

题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。例如:链表1为1-->3-->5-->7,链表2为2-->4-->6-->8,合并的链表3为1-->2-->3-->4-->5-->6-->7-->8.链接:https://www.nowcoder.com/ques...

2018-07-21 18:25:55 69

原创 《剑指offer》练习-面试题24-反转链表

题目:输入一个链表,反转链表后,输出新链表的表头。链接:https://www.nowcoder.com/questionTerminal/75e878df47f24fdc9dc3e400ec6058ca来源:牛客网package offer;public class Solution24 { public ListNode ReverseList(ListNode head...

2018-07-21 16:51:12 84

原创 《剑指offer》练习-面试题23-链表中环的入口节点

题目:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。链接:https://www.nowcoder.com/questionTerminal/253d2c59ec3e4bc68da16833f79a38e4来源:牛客网思路:第一步,找环中的相汇点。分别用fast,slow指向链表头部,fast每次走2步,slow每次走1步,知道fast==slow找到在环中的...

2018-07-20 22:26:23 172

原创 《剑指offer》练习-面试题22-链表中倒数第k个节点

题目:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。思路:《剑指offer》P135package offer;public class Solution22 { public ListNod...

2018-07-20 21:14:42 87

原创 《剑指offer》练习-面试题18-删除链表的节点

题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5链接:https://www.nowcoder.com/questionTerminal/fc533c45b73a41b0b44ccba763f866ef来源:牛客...

2018-07-20 12:02:40 92

原创 *《剑指offer》练习-面试题51-数组中的逆序对

题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的综述。例如,在数组{7,5,6,4}中,一共存在5个逆序对,分别是(7,6)、(7,5)、(7,4)、(6,4)、(5,4)。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007package o...

2018-07-16 22:50:45 123

原创 《剑指offer》练习-面试题50-第一个只出现一次的字符

题目:字符串中第一个只出现一次的字符。在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'。package offer;import java.util.HashMap;import java.util.Scanner;public class Solution50 { public int FirstNotRepeatingChar(String str)...

2018-07-16 00:42:17 118

原创 《剑指offer》练习-面试题49-丑数

题目:我们把只包含因子2、3、5的数称作丑数(Ugly Number)。求从小到大的顺序的第1500个丑数。例如,6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。package offer;import java.util.ArrayList;import java.util.Scanner;public class Solution49 { /* *...

2018-07-13 22:40:21 123

原创 《剑指offer》练习-面试题45-把数组排成最小的数

题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接处的所有数字中的最小的一个。例如,输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323。package offer;import java.util.Scanner;public class Solution45 { public String PrintMinNumber(int[] num...

2018-07-12 22:49:32 144

原创 《剑指offer》练习-面试题43-1~n整数中1出现的次数

题目:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。链接:https://www.nowcoder.com/questionTerminal/bd7f978302044eee894445e244c7eee6来源:牛客网首先可以先分类: 我们知道在个位数上,1会每隔10出现一次,例如1、11、21等等,我们发现以10为一个阶梯的话,每一个完整的阶梯里面都有一个1,例如数字...

2018-07-11 22:44:47 394

原创 《剑指offer》练习-面试题42-连续子数组的最大和

题目:输入一个整型数组,数组里有整数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。思路:对于一个数A,若是A的左边累计数非负,那么加上A能使得值不小于A,认为累计值对于整体和是有贡献的。如果前几项累计值为负数,则认为有害于总和。用total来记录当前累计值,maxSum记录最大和。package offer;import java.ut...

2018-07-11 22:06:17 86

原创 《剑指offer》练习-面试题40-最小的k个数

题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。思路:构造一个容量为k的容器,接下来每次从输入的n个整数中读入一个数。如果容器中已有的数字少于k个,则直接把这次读入的整数放入容器中;若容器已满(已有k个数字了),则找出这已有的k个数中的最大值,然后拿这次待插入的整数与其比较。如果待插入的值比当前已有的最大值小,则...

2018-07-09 21:27:38 87

原创 《剑指offer》练习-面试题39-数组中出现次数超过一半的数字

题目:数组中有一个数字出现的额次数超过数组长度的一半,请找出这个数字。思路:(剑指offer解法二,时间复杂度O(n))在遍历数组是保存两个值:一个是数组中的一个数字;另一个是次数。当遍历到下一个数字的时候,如果下一个数组和之前保存的数字相同,则次数+1,;如果不同,则次数-1。如果次数为0,那么保存下一个数字,并把次数设为1。https://www.nowcoder.com/ques...

2018-07-04 20:52:49 147

原创 《剑指offer》练习-面试题38-字符串的排列

题目:输入一个字符串,打印出该字符串中字符的所有排列。解法一(剑指offer):package offer;import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.Scanner;import java.util.Set;pu...

2018-07-03 22:34:12 182

原创 《剑指offer》练习-面试题29-顺时针打印矩阵

题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。首先:把矩阵看成若干个圈,用循环来打印出这些圈,循环的终止条件是columns>start*2 && rows>start*2然后:For each circle:可以分为四步打印。第一步:从左到右打印一行;第二部:从上到下打印一列(条件:终止行大于起始行);第三步:从右到左打印一行(条件:...

2018-07-02 22:05:59 101

原创 《剑指offer》练习-面试题21-调整数组顺序使奇数位于偶数前面

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。思路1:从头扫描这个数组,每碰到一个偶数,拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在数组的末尾有一个空位,这时把该偶数放入这个空位。时间复杂度是O(n2)。思路2:扫描这个数组,如果发现有偶数出现在奇数前面,则交换它们的顺序。两个指示牌i=...

2018-06-30 22:43:58 77

原创 《剑指offer》练习-面试题20-表示数值的字符串

题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。思路1(枚举法):表示数值的字符串遵循模式A[.[

2018-06-29 22:14:21 185

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除