不止于代码
码龄7年
关注
提问 私信
  • 博客:66,085
    66,085
    总访问量
  • 87
    原创
  • 1,861,246
    排名
  • 14
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2017-11-24
博客简介:

weixin_41163113的博客

查看详细资料
个人成就
  • 获得39次点赞
  • 内容获得9次评论
  • 获得74次收藏
创作历程
  • 76篇
    2019年
  • 16篇
    2018年
成就勋章
TA的专栏
  • 剑指offer
    58篇
  • Java集合类
    8篇
  • Java基础
    5篇
  • 多线程
    11篇
  • Java 虚拟机
    8篇
  • 操作系统
    1篇
  • 网络
  • Spring
  • 数据库
  • 框架知识
  • 设计模式
  • 项目
  • Hive
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

356人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Java 创建线程的三种方式及其对比

Java中创建线程主要有三种方式:一、继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。package com.thread; public class ...
转载
发布博客 2019.03.31 ·
215 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题51:数组中的逆序对(Java 实现)

题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数例如在数组{7,5,6,4}中,一共存在5对逆序对,分别是{7,6},{7,5},{7,4},{6,4},{5,4}。测试用例:功能测试:输入未经排序的数组;递增排序的数组;递减排序的数组;输入的数组包含重复的数字。 边界测试:输入的数组只有两个数字;输入的数组只...
原创
发布博客 2019.03.10 ·
1044 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

剑指offer面试题50:第一个只出现一次的字符(Java 实现)

题目:在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置。如果字符串为空,返回-1测试用例:功能测试:数组中存在或者不存在只出现一次的字符。 特殊测试:数组中全部都是只出现一次的字符。 负面测试:输入是数组为空。方法一:暴力法,时间复杂度为 O(n²)。思路:一个循环遍历数组中每一个字符,另一个循环比较拿遍历到的...
原创
发布博客 2019.03.10 ·
252 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题49:丑数(Java 实现)

题目:我们把只包含因子2,3,5的数称为丑数(Ugly Number). 求按从小到大的顺序的第1500个丑数。 例如6,8都是丑数,但14不是,因为它含有因子7.习惯上我们把1当作第一个丑数方法一:逐个判断每个整数是不是丑数的解法,直观但不够高效(暴力法)思路:所谓一个数m是另一个数n的因子,是指n能被m整除,也就是说n%m==0.根据丑数的定义,丑数只能被2,3,5整除。也就是说...
原创
发布博客 2019.03.10 ·
240 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题46:把数字翻译成字符串(Java 实现)

题目:给定一个数字,按照如下规则翻译成字符串:0翻译成“a”,1翻译成“b”…25翻译成“z”。一个数字有多种翻译可能,例如12258一共有5种,分别是bccfi,bwfi,bczi,mcfi,mzi。实现一个函数,用来计算一个数字有多少种不同的翻译方法。测试用例:功能测试:输入的数字只有一位或者多位。 边界测试:输入包含25、26的数字。 负面测试:输入负数或者0。思路:利用递归的...
原创
发布博客 2019.03.10 ·
349 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题45:把数组排成最小的数(Java 实现)

题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。测试用例:功能测试:输入的数组只有一个数字或者有多个数字;输入的数组中数字有重复的位数。 负面测试:输入的数组为空。思路:首先要注意这是一个大数问题,两个 int 类型的数字拼接起来可能会溢出,需要把它...
原创
发布博客 2019.03.10 ·
327 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题44:数字序列中某一位的数字(Java 实现)

题目:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数求任意位对应的数字。测试用例:功能测试:输入10、190、1000 等数字。 边界测试:输入0、1 等。 负面测试:输入的是负数。思路:按位数查找,时间复杂度为O(logn)举例分析,比如找第1001位数字...
原创
发布博客 2019.03.10 ·
504 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

剑指offer面试题43:1-n整数中1出现的次数(Java 实现)

题目:输入一个整数n,求 1-n 这 n 个整数的十进制表示中 1 出现的次数。例如,输入12, 1-12 中这些整数中包含1的数字有1、10、11 和 12, 1 一共出现 5 次。方法一:暴力法,时间复杂度为 O(nlogn)直接循环遍历求出 n 个数中每一个数包含 1 的次数,然后累加起来。//方法一:暴力法 public int NumberOf1Between1An...
原创
发布博客 2019.03.10 ·
377 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题42:连续子数组的最大和(Java 实现)

题目:输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)例如输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},因此输出为该子数组的和18。方法一:通过枚举数组的所有子数组并求它们的和,一个长度为n的数组,子数组总共有 n(n-1)/2,计算所有子数组的和,时间复...
原创
发布博客 2019.03.10 ·
1689 阅读 ·
2 点赞 ·
0 评论 ·
6 收藏

剑指offer面试题41:数据流中的中位数(Java 实现)

题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。测试用例:功能测试:从数据流中读取偶数或者奇数个数。 边界测试:从数据流中读取 0、1、2 个数。思路:使用最大堆和最小堆两个容器,最大堆用来存放依次传入的数组成的数组中较小的数,最小堆用来存放较...
原创
发布博客 2019.03.10 ·
364 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题40:最小的k个数(Java 实现)

题目:输入n个整数,找出其中最小的k个数。例如输入4、 5、 1、 6、 2、 7、 3、 8这8个数字,则最小的4个数字是1、 2、 3、 4。测试用例:功能测试:输入的数组中有或者没有相同的数字。 边界测试:输入的 k 等于 1 或者等于数组的长度。 负面测试:k 小于1;k 大于数组的长度;输入的数组为空。方法一:时间复杂度为 O(nlogn)思路:直接对数组进行排序。...
原创
发布博客 2019.03.10 ·
220 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题39:数组中出现次数超过一半的数字(Java 实现)

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。测试用例:功能测试:数组中存在或者不存在一个出现次数超过数组长度一半的数字。 特殊测试:输入的数组为空;输入的数组只有一个数字。方法一:时间复杂度为O(nlogn)思路...
原创
发布博客 2019.03.09 ·
255 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题38:字符串的排列(Java 实现)

题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。思路:第一步求所有可能出现在第一个位置的字符,固定第一个字符,然后遍历后面的所有字符和它交换;第二步求所有可能出现在第二个位置的字符,固定第二个字符,然后遍历后面所有字符与它交换;第三步。。。同样...
原创
发布博客 2019.03.09 ·
397 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题37:序列化二叉树(Java 实现)

题目:请实现两个函数,分别用来序列化和反序列化二叉树。思路:序列化:用前序遍历的方法递归遍历二叉树,将遍历到的元素添加到数组字符串中,如果遇到空格就往字符串中添加字符 “$”,每一个字符用逗号隔开; 反序列化:先利用正则表达式把字符串中的逗号去掉,然后遍历字符串,如果遍历到的不是字符 “$”,就用它来构造二叉树的根节点,然后用递归的方式同样构造二叉树的左子树和右子树。测试用例:功能...
原创
发布博客 2019.03.09 ·
208 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题36:二叉树与双向链表(Java 实现)

题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路:利用中序遍历的方法递归遍历二叉树,把二叉树拆分为左子树、根节点、右子树三部分,再连接起来。第一步先遍历左子树转化为链表,然后把根节点连在左子树的最后节点,然后再递归遍历右子树。测试用例:1. 功能测试:完全二叉树;所有节点只有左子树的二叉树;所有节点只有右子树的...
原创
发布博客 2019.03.09 ·
773 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题35:复杂链表的复制(Java 实现)

题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。思路:根据原链表中每个节点N创建对应的新节点N’。并把N’链接到N的后面。 设置复制出来的节点的random节点。假设N的random指向节点S,因为N’是N的下一个节点,所以S’也应该为S的下一个节点。 把链表拆分。奇数位置的节点链接起来...
原创
发布博客 2019.03.09 ·
184 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题34:二叉树中和为某一值的路径(Java 实现)

题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路:利用二叉树的前序遍历,把每一个遍历到是根节点保存在一个 list 中。然后判断当前节点是不是叶节点,若不是叶节点,则用递归的方式接着遍历它的左节点和右节点;若是叶节点则判断从根节点到这个叶节点的路径和等不等于 target,如果相等就把这条...
原创
发布博客 2019.03.09 ·
445 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

剑指offer面试题33:二叉搜索树的后序遍历序列(Java 实现)

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出True,否则输出False。假设输入的数组的任意两个数字都互不相同。思路:已知条件:后序序列最后一个值为root;二叉搜索树左子树值都比root小,右子树值都比root大。确定root; 遍历序列(除去root结点),找到第一个大于root的位置,则该位置左边为左子树,右边为右子树; 遍历右子树,若...
原创
发布博客 2019.03.09 ·
310 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题32:从上到下打印二叉树(Java 实现)

题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:此题实际考察树的按层遍历的算法,利用一个队列来实现。首先打印树的根节点,然后判断这个节点是否有子节点,若有子节点就把它们放入队列中。接下来每次从队列中取出并打印一个节点,同时判断它有没有子节点,若有子节点同样地放入队列中,最后当队列空了,树的节点也就打印完了。测试用例:功能测试:完全二叉树;所有节点只有左子树的二叉树...
原创
发布博客 2019.03.09 ·
311 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指offer面试题31:栈的压入、弹出序列(Java 实现)

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、 2、 3、 4、 5是某栈的压栈序列,序列4、 5、 3、 2 、1是该压栈序列对应的一个弹出序列,但4、 3 、5 、1 、2就不可能是该压栈序列的弹出序列。思路:利用一个辅助栈来模拟出栈入栈的过程,首先按入栈序列把元素一个个压入栈中,每压入一个元素后判断栈顶...
原创
发布博客 2019.03.09 ·
316 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多