自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LeoByte的编程驿站

分享后端开发技术,记录职业生涯发展。

  • 博客(154)
  • 资源 (1)
  • 收藏
  • 关注

原创 Go实现Mysql+DM8多数据源平滑适配

最近在做一项比较恶心的事情就是达梦数据库的国产化适配,不过还好的一点就是达梦是基于Mysql实现的,在数据迁移、SQL语法、接口使用还算是大同小异。现在的需求目标是从Mysql切换到DM8数据库,实现业务数据逐步迁移,最终实现完全替换。**优点:**DM数据库工具全面都是可视化操作使用难度较低,最舒服的是很方便的支持多种数据库数据的迁移、定时调度任务、性能分析…**缺点:**收费、社区不活跃很久的帖子没有一个正确的回复…因达梦底层和mysql类似故基于项目所用gd框架databases包下mysqldb开

2022-06-19 14:11:32 6018 1

原创 Github+Typora+PicGo+Jsdelivr 实现白P图床

最近准备完善一下自己的GitHub给自己的主页增加一个Profile。(🚩:我要开源!我要贡献!我要变强!)发现图片没有找到一个靠谱的图床存储,虽然自己有阿里云OSS,但是觉得数据还是要能持久的由自己掌控更加安全,避免因为忘记续费或者不想续费去迁移导致大量的工作量。预览地址:Alex4ever’ GitHubPicGo 是一款开源跨平台的免费上传工具以及图床管理工具,支持微博、又拍云、阿里云 OSS、腾讯云 OSS、七牛云、Github、sm.sm 等常见的图床网站或云存储服务,并自动复制图片的链接到剪贴.

2022-06-16 21:07:23 523 1

原创 2022 一个新起点

2022 新起点个人博客:Alex’s Blog 欢迎来访🌹一、消失好像从这篇2019我干了什么!2020我该干些什么?个人年终总结过后就没有再有新的总结了。博客的更新也止步于深入解析 ZooKeeper 分布式锁原理。嗯…怎么说呢?自己的确是经历了一些比较坎坷的心路历程。2020年4月选择来到现在这家公司。选择这个公司主要是因为公司发展比较稳定,研发人员流动性不大,薪资水平在当地还算不错,此外也因为我女朋友他们家对于互联网或者程序员的了解不多,自己在选择公司的时候更偏向于稳。(老丈人:程序员怕

2022-03-30 23:04:30 541 1

原创 深入解析 ZooKeeper 分布式锁原理

深入解析 ZooKeeper 分布式锁原理接着上文,我们继续说一下Zookeeper的分布式锁原理,最后简单再说一下脑裂的概念及Zookeeper是如何处理的。分布式锁为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。一、实现原理在Zookeeper中实现分布式锁有两种方案,一是使用临时节点,二是使用临时有序节点。这两种方式有什么区别?我们又该用哪种呢?临时节点临时节点方案的原理如下:让多个进程(

2020-10-25 18:23:54 1193

原创 死磕Zookeeper之Leader选举源码分析

先赞后看,养成习惯 ????欢迎微信关注:Java编程之道每天进步一点点,沉淀技术分享知识。Zookeeper的Leader选举前面我们聊了一下ZAB协议以及Zookeeper的基础概念,心想着都到这个份上了,那还是把剩下的“Leader选举”、“分布式锁”、“惊群和脑裂”都跟大家简单聊聊,这些知识应该足够准备校招的你造火箭了。今天首先说一下Zookeeper的Leader选举流程以及其中涉及的FastLeaderElection选举算法。说在前面ZAB协议是保证Zookeeper集群数据一

2020-10-14 22:35:01 750

原创 闲谈Zookeeper一致性协议--ZAB

ZAB协议国庆八天乐就这样结束了!2020年没有假期了!同学你难受吗?今天先简单聊聊ZAB协议,个人认为搞懂ZAB协议和Leader选举算法的关系和流程对于深入认识Zookeeper是一个比不可少的环节。请允许我盼过年Zookeeper百度百科:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等

2020-10-11 16:30:20 709

原创 Docker实现ElasticSearch集群搭建

先赞后看,养成习惯 ????欢迎微信关注:Java编程之道每天进步一点点,沉淀技术分享知识。Docker搭建ElasticSearch集群鉴于网上很多ES集群搭建方式十分繁琐且ES版本较低,所以梳理出一套基于Docker的测试环境下的ES集群搭建流程,也不一定说Docker搭建一定就是最好的方法,但是Docker搭建集群一定是最快的方法。来吧,自己动手试一试。世间方式千万种,今天给大家介绍一种一键启动的ES集群的搭建方式–使用docker-compose(负责实现对Docker容器集群的快速

2020-09-13 13:31:26 866

原创 巧用Docker搭建ES+Head+Kibana

先赞后看,养成习惯 ????欢迎微信关注:Java编程之道每天进步一点点,沉淀技术分享知识。Docker 搭建ES+Head+Kibana纯手搭建,绝不留坑,一键启动,屡试不爽!????后面自己在学习ELK、EFK的知识,所以搭建一套稳定的测试环境是必不可少的环节。考虑到市面上很多ES环境搭建都是针对tar包等,搭建过程繁琐并且因为版本还会出现很多兼容性问题以及大家没有那么多cpu资源的窘境,所以为大家整理一份自己的搭建笔记,助你走上ES学习快车道。特此说明:仅限于测试环境,生产环境慎用!前

2020-09-01 21:22:54 1247

原创 ElasticSearch7.x系列--IK分词器介绍

先赞后看,养成习惯 ????欢迎微信关注:Java编程之道每天进步一点点,沉淀技术分享知识。IK分词器的使用ES相关的文章,不打算给大家分享restful api等操作,百度上已经有很多,如有不懂自行百度,毕竟只是一个熟能生巧的过程。但是对于IK分词器这一块我觉得还是可以简单说一下,但也不做过多深究,对于ES来说只是一个插件工具,会用就行。因为我最近在做ES容器日志收集平台开发所以会大量学习和ES相关知识,陆续会记录下来,知识落地心里才踏实…在我们安装了Kibana后,我们使用Kibana

2020-08-29 15:39:18 1756 1

原创 60s 用Docker搭建一套博客系统

微信公众号:Java编程之道关注可解锁更多Java开发知识。问题或建议,欢迎公众号留言 ????如果你觉得本文对你有帮助,欢迎赞赏60秒 搭建博客系统哈,出差回来后调整了一段时间,突然不知道为大家分享些什么了,因为这些事情前期定下的一些计划也不能正常推进(康同学最近也很忙)。但是,文章还得接着写,学习可不能断。由于工作的原因,个人可能不能持续为大家输出基于Java的技术,因为近期都在做Golang开发,个人精力有限没法做到声东击西????。铁子,别走!我又没说不写文章了。????因为我们这个

2020-08-15 20:55:09 1022

转载 IntelliJ IDEA 2020.2 稳定版发布

先赞后看,养成习惯 ????欢迎微信关注 Java编程之道每天进步一点点,沉淀技术分享知识。各位小伙伴们,我最近因为项目紧急忙着去上海出差了,所以这一段时间的文章都是靠我们的康同学顶着,辛苦了康同学,久等了各位!本人预计下周开始正常推文,今天看到IDEA 2020.2发布了,吃肉尝鲜的事情必须得带着大家。尝鲜有风险,升级易收费 – (支持正版) 下滑文末看福利????????????部分内容转载至:https://www.oschina.net/news/117535/intellij-id

2020-07-29 15:35:30 3155 1

原创 面试官再问你线程池,把这篇文章他。

记一次真实蚂蚁金服面试经历,这是鄙人在暑期找实习阶段遇到的社会主义爆锤!!!那年我还只是个懵懂的少年…今天分享给需要秋(春)招面试的你们,看你们能抗住几个问题。你要都抗住了…万字长文!!!一定要耐住看!看完血赚!线程池十二鞭面试官:你了解多线程吗?线程池呢?答:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。同时也可以快速响应前端,将耗...

2020-07-14 23:26:29 2279

原创 三道被问烂了的多线程面试题,你知道多少?

先赞后看,养成习惯 ???? 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。三道被问烂了的多线程面试题面试题一:利用多线程技术实现生产者-消费者模型什么是生产者-消费者模型通俗的讲,就是生产者在不断的生产,消费者也在不断的消费。生产者生成了东西通知消费者进行消费,没有东西了消费者则等到生产者生成。从而通过一个中间容器或通信手段来解决生产者和消费者的强耦合问题。这也就引出一种简单的生产者-消费者实现方式使用阻塞队列生产者/** * @Auther: 爱唠嗑的阿磊

2020-07-11 17:42:05 2955 5

原创 SpringBoot如何使用@Async实现异步调用

先赞后看,养成习惯 ???? 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。预祝各位正在高考的小学弟学妹们考上理想的大学,高考加油!学长忠告:报志愿千万别选计算机啊~????今天我们聊一下SpringBoot中的异步技术中的异步线程池,这一块的内容深入的聊内容还是很多的,所以暂时分为三个部分使用@Async实现异步调用以及自定义线程池的实现。SpringBoot中异步调用线程池内部实现原理。我是如何通过线程池技术将10s的任务降低到ms级别。话不多说跟紧我,老司机

2020-07-07 22:01:14 2938 1

原创 优雅的处理 SpringBoot 全局异常

先赞后看,养成习惯 ???? 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。Spring Boot中Web应用的统一异常处理大家在日常开发中常常遇到系统爆出各种不友好的异常,导致整个系统交互体验极差甚至是系统崩溃,今天我们就聊一下SpringBoot中如果开发一个统一的异常处理中心。这部分内容比较基础,只是很多同学很少去设计或者参与到需要全局异常处理的开发中来…以下介绍几种常用的处理方式。友好的异常处理方式SpringBoot默认的已经提供了一套处理异常的机制。一旦程

2020-07-05 16:57:55 2193

原创 别找了Docker常用命令都在这

先赞后看,养成习惯 ???? 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。*Docker常用命令集合给大家介绍一些常用的Docker命令,对你有帮助的同学建议收藏作为一个查询手册哦。Docker容器的一些命令按功能分类大致如下:Docker环境信息 info、version容器生命周期管理 create、exec、kill、pause、restart、rm、run、start、stop、unpause镜像仓库命令 login、logout、pull、

2020-07-04 21:36:14 6682 1

原创 ES在Linux下安装的那些破事

先赞后看,养成习惯 ???? 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。最近公司需要一个Es环境,于是借此机会对Es和可视化的安装流程进行了一次梳理。现在ES已经到7.7了跟我以前接触的版本还是存在一些不同,在Linux环境下安装也存在不少坑。不过还好的是这些坑都还不够深。以下就Linux环境的ES安装来一个从0开始的搭建流程。前话—安装JDK由于从ES6.5开始就支持了Java11,所以我从这开始就直接装Java11的环境,避免一些环境问题。[外链图片转存失败,源

2020-07-04 21:34:46 5016 1

原创 面试季「 Spring Boot」自动装配

先赞后看,养成习惯 ???? 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。面试季「 Spring Boot」自动装配SpringBoot 目前已经成为了Java程序员必备的技能项了,不论你是应届毕业生还是跳槽程序员,熟练掌握SpringBoot是必不可或缺的技能。最近自己打算利用SpringBoot的自动配置原理自己来实现一个类库,借此机会也为大家分享一下我用到了一些技术。临近秋招季,希望本文能秋招的同学带来一些帮助。来吧!灵魂三问:什么是自动装配?自动装配为我们装配了

2020-07-04 21:32:52 2596

原创 面试官:同学来帮我实现一个集成c3p0的Starter

实现一个自己的Starter前文讲到了SpringBoot如何实现自动配置,SpringBoot的自动配置极大的提升了框架的使用效率。今天我们就来说一说面试必问之如何手写starter。本文以C3P0连接池为基础,实现一个C3P0-Starter。前言首先给大家介绍一些SpringBoot默认支持的部分连接池,看看它的内部是怎么实现的,咱们依葫芦画瓢,干他一个Starter。spring-boot-autoconfigure :SpringBot的自动配置依赖,这一票能不能干成全看这个东西。

2020-07-04 20:07:49 2100

原创 每日手撕--LRU算法

LRU算法介绍LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。简单描述一下在《操作系统》这本书里面对于LRU算法的解说。假定系统为某进程分配了3个物理块,进程运行时的页面走向为 7 0 1 2 0 3 0 4,开始时3个物理块均为空,那么LRU 算法是如下工作的:这就是最基本的LRU的磁盘调度逻辑,该算法运用领域比较广泛比如Redis的内存淘汰策略等等,

2020-07-04 20:06:48 2371

原创 HashMap中对象作Key为什么要重写equals和hashcode

蜜汁 equals & hashcode哈哈!我摊牌了!阿里和美团的面试官都问过我同样的问题,你确定不了解一下?今天咱们唠点简单的,这是在初级开发及校招面试中经常问的一个问题。HashMap的key为一个对象的时候要注意什么 ?为什么要同时重写equals和hashcode方法 ?给你十秒钟想想你该怎么答… ⌚想不出来没关系,看了这篇文章后面试遇到同样的问题就是送分题。????什么是equals和hashcode方法我们知道Java中所有的类都继承于Object类

2020-07-04 20:05:02 5627 2

原创 Thread ThreadLocal ThreadLocalMap?蒙圈

先赞后看,养成习惯 ???? 欢迎微信关注[Java编程之道],每天进步一点点,沉淀技术分享知识。闲谈ThreadLocal前面在我的GitHub仓库 V-LoggingTool 中有简单的使用过ThreadLocal,主要用在了切面类中,功能上需要取到前置增强拦截到的用户信息暂存,执行到后置增强时从该ThreadLocal中取出用户信息并使用。今天咱们就唠唠ThreadLocal的相关知识,了解一下他的数据结构、用法、原理等。咱们层层深入…看了网上不少关于ThreadLocal的讲解,源码

2020-07-04 20:01:09 2230 2

原创 2019我干了什么!2020我该干些什么?

首先提前祝大家新年快乐!    对于2019年,我的遗憾迷茫大于我的收获和成就。这这状态也使得我销声匿迹了很久,但是看到我的Android大佬宇哥的2019年个人年度总结后,感觉到自己应该在初入工作的第一年总结一下存在的问题,毕竟问题只是暂时的方向对了努努力也能磨过去,同时也为2020年做一个计划不再像刚入职场的这半年像个无头苍蝇一样乱碰,毕竟丢了目标的感觉很难受,不知道此刻的你是否感同身受。...

2020-01-01 23:43:13 3140

原创 面试必备--八大排序算法

文章目录冒泡排序(BubbleSort)算法思路算法图解冒泡代码:直接插入排序(InsertSort)算法思路算法图解直插代码:归并排序(MergeSort)算法思路算法图解归并代码:快速排序(QuickSort)算法思路算法图解快排代码:希尔排序(ShellSort)算法思路算法图解希尔代码:堆排序(HeapSort)算法思路算法图解堆代码:基数排序(RadixSort)算法思路算法图解基数代码......

2019-05-30 19:58:22 2393

原创 [剑指Offer]-最长不含重复字符的子字符串

题目描述请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。假设字符串中只包含从’a’到’z’的字符。例如,在字符串中”arabcacfr”,最长非重复子字符串为”acfr”,长度为4。解题思路老老实实O(n^2)实现,细节你懂的,书上那种高效率的我没太看懂。要啥自行车…算法图解比较简单不做图了!就是拿出每一位组成串,判断新入字符的是否存在,如果存在一切归零...

2019-05-26 20:26:20 2464

原创 [剑指Offer]-礼物的最大值

题目描述在一个 m*n 的棋盘中的每一个格都放一个礼物,每个礼物都有一定的价值(价值大于0).你可以从棋盘的左上角开始拿各种里的礼物,并每次向左或者向下移动一格,直到到达棋盘的右下角。给定一个棋盘及上面个的礼物,请计算你最多能拿走多少价值的礼物?在这个棋盘中,按照(1,12,5,7,7,16,5)的顺序可以拿到总价值最大的礼物。解题思路一个很直观的想法是,我们将每一步求解出的结果都保...

2019-05-26 20:22:55 2022

原创 [剑指Offer]-把数字翻译成字符串

题目描述给定一个数字,按照如下规则翻译成字符串:0翻译成“a”,1翻译成“b”…25翻译成“z”。一个数字有多种翻译可能,例如12258一共有5种,分别是bccfi,bwfi,bczi,mcfi,mzi。实现一个函数,用来计算一个数字有多少种不同的翻译方法。解题思路若ab > ba 则 a > b若ab < ba 则 a < b若ab = ba 则 a = b...

2019-05-26 20:18:30 2049

原创 [剑指Offer]-把数组排成最小的数字

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如,输入数组{3, 32,321},则打印出这3个数字能排成的最小数字321323。核心在于自定义一个排序规则解题思路若ab > ba 则 a > b若ab < ba 则 a < b若ab = ba 则 a = b解释说明:a = 21b = 2...

2019-05-26 20:16:45 2111

原创 [剑指Offer]- 数字序列中某一位的数字

题目描述数字以01234567891011121314…的格式排列。在这个序列中,第5位(从0开始计)是5,第13位是1,第19位是4。求任意第n为对应的数字。这是个数学规律题解题思路每次枚举一个数字的时候,求出数字是几位数,并把该数字的位数和前面所有的数字的位数累加-当和大于该数,则第n位数一定在这里面算法图解参考代码:package offer;/** * 数字...

2019-05-26 20:13:35 2199

原创 [剑指Offer]- 剪绳子

题目描述给定一根长度为n的绳子,请把绳子剪成m段,每段绳子记为k[0],k[1]……k[m]。请问k[0]*k[1]……*k[m]可能的最大乘积是多少?例如:当绳子长度为8时,我们把它剪成长度分别为2,3,3段,此时最大乘积为18.解题思路先用常规的需要O(n^2)时间和O(n)空间的动态规划的思路,接着用只需要O(1)时间和空间的贪婪算法来分析解决这个问题。动态规划首先定义函数...

2019-05-25 16:05:53 1956

原创 [剑指Offer]- 机器人的运动范围

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?解题思路本题使用的方法同样还是回溯法,另...

2019-05-24 20:28:21 1883

原创 [剑指Offer]- 数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。由于数据是从一个数据流中读出来,因而数据的数目随着时间的增加而增加,如果用一个数据容器来保存从流中读出来的数据,则当新的数据从流中读出来的时候,这些数据就插入数据容器。解题思路比较Low的写法...

2019-05-24 18:41:13 1973

原创 [剑指Offer]-字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。解题思路把字符串分成两部分,一部分是第一个字符,另一个部分是后面其余的字符串拿第一个字符和后面的字符串依次交换,这是一个递归的过程注意:在递归里第一次交换是自身和自身的交换,保证不缺...

2019-05-24 18:36:01 1895

原创 [剑指Offer]-序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树解题思路序列化是指通过前序遍历把二叉树变成数组反序列化是指重建二叉树算法图解参考代码:package offer;/** * 请实现两个函数,分别用来序列化和反序列化二叉树 */import javax.swing.tree.TreeNode;public class Offer37 { String ...

2019-05-24 18:34:09 1950

原创 [剑指Offer]-二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。比如输入下图中左边的二叉搜索树,则输出转换之后的排序双向链表。解题思路中序遍历树中的每一个结点,这是因为中序遍历算法的特点是按照从小到大的顺序遍历二叉树的每一个结点。按照中序遍历的顺序,当我们遍历转换到根结点(值为10的结点)时,它的左子树已经转换成一个排序的链表了...

2019-05-24 18:30:59 1911

原创 [剑指Offer]-数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数:如数组{7,5,6,4},逆序对总共有5对,{7,5},{7,6},{7,4},{5,4},{6,4};解题思路暴力解法,顺序扫描整个数组,每扫描到一个数字的时候,逐个比较该数字和它后面的数字的大小。如果后面的数字比它小,则这两个数字就组成一个逆序对。假...

2019-05-22 19:38:05 1984 1

原创 [剑指Offer]-第一个只出现一次的字符

题目描述在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出’b’。解题思路为了解决这个问题,我们可以定义一个哈希表(外部空间),其键值(Key)是字符,而值(Value)是该字符出现的次数。同时我们还需要从头开始扫描字符串两次:(1)第一次扫描字符串时,每扫描到一个字符就在哈希表的对应项中把次数加1。(时间效率O(n))(2)第二次扫描时,每扫描到一个字符...

2019-05-22 19:36:09 1923

原创 [剑指Offer]-丑数

题目描述我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做第一个丑数。解题思路.如果一个数能够被2整除,那么让他继续除以2;如果一个数能够被3整除,那么让他继续除以3;如果一个数能够被5整除,那么让他继续除以5;如果最后这个数变为1,那么这个数就是丑数,否则不是。...

2019-05-22 19:33:59 1978

原创 [剑指Offer]- 1-n整数中1出现的次数

题目描述给定一个整数n,求1~n这n个整数中十进制表示中1出现的次数。解题思路最直观的是,对于1~n中的每个整数,分别判断n中的1的个数。这种方法的时间复杂度为O(N*logN)算法图解参考代码:package offer;/** * 1-n整数中1出现的次数 * 最直观的是,对于1~n中的每个整数,分别判断n中的1的个数,具体见《剑指offer》。这种方法的时间复杂度为...

2019-05-22 19:32:09 2245

原创 [剑指Offer]-数组中出现次数超过一半的数字

题目描述数组中一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为 9 的数组{1,2,3,2,2,2,5,4,2}。由于数字 2 在数组中出现了 5 次,超过数组长度的一半,因此输出 2.解题思路当我们遍历到下一个数字的时候,如果下一个数字和当前我们保存的数字相同,则次数加 1;如果和当前我们保存的数字不同,则次数减 1;当次数减到 0 的时候,我们将保存的数字...

2019-05-22 19:27:31 1968

一线大厂金三银四面试资料.zip

一线大厂金三银四面试资料.zip

2020-07-04

空空如也

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

TA关注的人

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