2 沉晓Jeffery

尚未进行身份认证

垂下的头颅只是为了让思想扬起,你若有一个不屈的灵魂,脚下就会有一片坚实的土地。

等级
TA的排名 2k+

剑指Offer对答如流系列 - 在O(1)时间删除链表结点

文章目录面试题17:在O(1)时间删除链表结点一、问题描述二、问题分析三、问题解答面试题17:在O(1)时间删除链表结点一、问题描述给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。链表结构 public class Node{ int val; Node next; public Node(int value,N...

2020-01-19 15:13:15

剑指Offer对答如流系列 - 打印1到最大的n位数

文章目录面试题16:打印1到最大的n位数一、问题描述二、问题分析三、问题解答面试题16:打印1到最大的n位数一、问题描述输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。二、问题分析这种问题一看就很简单嘛,很多人不经过细致分析,上来一写,就错了。要是在面试中,犯了这种错误,会留下态度不严谨的印象。n位数并未指明多少位,说明可能会有...

2020-01-19 14:43:42

剑指Offer对答如流系列 - 数值的整数次方

文章目录面试题15:数值的整数次方一、题目描述二、问题分析三、问题解答面试题15:数值的整数次方一、题目描述实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。二、问题分析三思而后行,这道题如果没事实现考虑好,非常容易出错。首先分析列举出所有的场景。base的值 可能为正数...

2020-01-19 14:18:31

盘点那些能绿天绿地绿巨人的位运算操作

文章目录假装体现主题的标题一、盘点位运算的骚操作二、位运算高阶操作(一)加法(二)减法(三)乘法(四)除法假装体现主题的标题这篇文章的内容是我从 剑指Offer对答如流系列 - 二进制中 1 的个数 中抽出来的,唉。写个位运算的解析,写入迷了,对位运算的讨论有点多了,干脆拿出来单独成一片文章算了。一、盘点位运算的骚操作位运算 效率高,速度快,是开车老司机出行游玩,登山必备。前三条的运用参...

2020-01-18 20:14:15

剑指Offer对答如流系列 - 二进制中 1 的个数

文章目录面试题14:二进制中 1 的个数一、题目描述二、问题分析(1)思路一(2)思路二三、问题解决面试题14:二进制中 1 的个数一、题目描述请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。二、问题分析这道面试题归属于 《剑指Offer》位运算章节。说到位运算,那骚操作实在太多了,留个悬念,待会再和你...

2020-01-18 20:04:10

剑指Offer对答如流系列 - 剪绳子

面试题13:剪绳子一、题目描述给你一根长度为n绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]*k[1]*…*k[m]可能的最大乘积是多少?例如当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到最大的乘积18。

2020-01-18 14:41:00

剑指Offer对答如流系列 - 机器人的运动范围

文章目录面试题12:机器人的运动范围一、题目描述面试题12:机器人的运动范围一、题目描述地上有一个m行n列的方格。一个机器人从坐标(0, 0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格(35, 37),因为3+5+3+7=18。但它不能进入方格(35, 38),因为3+5+3+8=19。请问该机...

2020-01-18 09:59:42

剑指Offer对答如流系列 - 矩阵中的路径

文章目录面试题11:旋转数组的最小数字一、题目描述二、问题分析三、实现四、探讨 解空间(1)子集树(2)排列树面试题11:旋转数组的最小数字一、题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。 路径可以从矩阵中任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如在下面的3×4的矩阵中...

2020-01-17 19:59:05

剑指Offer对答如流系列 -旋转数组的最小数字

面试题10:旋转数组的最小数字一、题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1。时间复杂度要求小于O(n)二、问题分析可以了解到,数组即使在转换之后在一定形式上也是递增的。在动手之前,先考虑一下可能...

2020-01-16 19:53:59

剑指Offer对答如流系列 - 斐波那契数列

面试题9:求斐波那契数列第n项一、题目描述写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:二、解法讨论直接写递归的话,是绝对OK的,但是你要明白一个道理,凡是递归能够完成的,递推也能够,而且性能还要优于递归,但是递推写起来总要难于递归。对于斐波那契数列类型的习题,如果你要直接写递归函数(通常的那种递归,后面会有优化),会出现比较多的重复计算,加...

2020-01-15 20:12:04

剑指Offer对答如流系列 - 用两个栈实现队列

面试题8:用两个栈实现队列一、题目描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。二、思路这道题非常简单,我给你说,你就把栈当成一个存放乒乓球(元素)的细瓶子,如果你有两个细瓶子,你就可以倒来倒去操纵乒乓球了题中说用两个栈,换种角度,我们是拥有了两个存放乒乓球的细瓶子。在队列...

2020-01-15 19:31:23

剑指Offer对答如流系列 - 二叉树的下一个节点

面试题7:二叉树的下一个节点一、题目描述:给定一棵二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别别指向左右子节点的指针,还有一个指向父节点的指针例如:这棵树的中序遍历是:D,B,H,E,I,A,F,C,G二、解题思路:这套题相比于上一道面试题剑指Offer对答如流系列 - 重建二叉树而言,换汤不换药,还是考察你对二叉树结构的理解。以这棵树为例:...

2020-01-15 19:11:37

剑指Offer对答如流系列 - 重建二叉树

面试题6:重建二叉树题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出图2.6所示的二叉树并输出它的头结点。二叉树结点的定义如下:class TreeNode{ int val; TreeNode l...

2020-01-14 19:41:54

剑指Offer对答如流系列 - 从尾到头打印链表

面试题5:从尾到头打印链表题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。链表结点定义如下:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }...

2020-01-12 09:34:03

剑指Offer对答如流系列 - 替换空格

面试题4:替换空格题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。在网络编程中,如果URL参数中含有特殊字符,如空格、’#‘等,可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在’%‘后面跟上ASCII码的两位十六进制的表示。比如空格的...

2020-01-04 09:11:38

剑指Offer对答如流系列 - 二维数组中的查找

文章目录面试题3:二维数组中的查找一、暴力二、找规律规律一规律二面试题3:二维数组中的查找题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则返回...

2020-01-03 13:58:33

剑指Offer对答如流系列 - 实现Singleton模式

文章目录面试题2:实现Singleton模式一、懒汉式写法二、饿汉式写法三、枚举面试题2:实现Singleton模式题目:设计一个类,我们只能生成该类的一个实例。由于设计模式在面向对象程序设计中起着举足轻重的作用,在面试过程中很多公司都喜欢问一些与设计模式相关的问题。在常用的模式中,Singleton是唯一一个能够用短短几十行代码完整实现的模式。因此,写一个Singleton的类型是一个很常...

2020-01-03 08:42:10

【MySQL】一文搞定MySQL中的锁

文章目录搞定Mysql中的锁从锁的种类角度一、共享锁(Shared lock)二、更新锁三、排他锁(独占锁,Exclusive Locks)四、意向锁(Intent Locks)五、计划锁(Schema Locks)六、行级锁 表级锁 页级锁七、悲观锁与乐观锁事务角度一、Read Uncommit (未提交读。允许脏读)二、Read committed(读提交)三、Repeatable read(...

2019-12-02 20:10:57

【Java设计模式】总结

文章目录UML部分七个软件设计原则二十三种设计模式设计模式-创建型模式设计模式-结构型模式设计模式-行为型模式UML部分【Java设计模式】UML 2.2UML基础UML类图UML类关系UML时序图七个软件设计原则【Java设计模式】软件设计七大原则开闭原则迪米特原则依赖倒置原则里氏替换原则单一职责原则合成复用原则接口隔离原则二十三种设计模式设计模式-创建型模式...

2019-07-12 16:56:26

【Java设计模式】模板方法模式

文章目录概述适用场景优点缺点模板方法-扩展模板方法-相关设计模式演示概述◆ 定义:定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现◆ 模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤◆ 类型:行为型适用场景◆ 一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现◆ 各子类中公共的行为被提取出来并集中到一个公共父类中,从而避免代码重复优点◆ 提高...

2019-07-11 15:15:25

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获取
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    博客专家完成年度认证,即可获得
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 精彩红人
    精彩红人
    发布高质量Blink获得高赞和评论,进入精彩栏目即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周上午根据用户上周周三的博文发布情况由系统自动颁发。
  • 原力计划专属勋章
    原力计划专属勋章
    参与原力计划活动,成功进入英雄榜即可获得