文章目录一、原地哈希二、快速幂2.1指数无负数2.2指数有负数一、原地哈希直接看例题:题目链接题目描述:给你一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。示例1:输入:nums=[1,2,0]输出:3示例2:输入:
文章目录前言一、ScheduledThreadPoolExecutor1、快速入门-常用方法使用案例二、源码类图分析2.1、ScheduledThreadPoolExecutor-构造方法2.2、DelayedWorkQueue-延迟阻塞队列2.3、ScheduledFutureTask-具有返回结
文章目录第十三届蓝桥杯大赛软件赛省赛试题A:星期计算【填空题】试题B:山【填空题】试题C:字符统计【编程题】试题D:最少刷题数【编程题】试题E:求阶乘【编程题】试题F:最大子矩阵【编程题】试题G:数组切分【编程题】试题H:回忆迷宫【编程题】试题I:红绿灯【编程题】试题J:拉箱子【编程题】第十三届蓝桥
A:卡片题目描述小蓝有很多数字卡片,每张卡片上都是数字0到9。小蓝准备用这些卡片来拼一些数,他想从1开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。小蓝想知道自己能从1拼到多少。例如,当小蓝有30张卡片,其中0到9各3张,则小蓝可以拼出1到10,但是拼11时卡片1已经只有一张了,不够
问题:求a的b次方对c取余的值。其中a,b,c都是整数,且0<a,c<10的九次方,0<b<10的18次方。首先,我们最朴素的算法是用循环直接计算a的b次方的值,最后将其对c取模。代码如下:longlongintsum,a,b,i,c;//其中a是底数,b是指数for(i=1
本文转载自微信公众号「Android开发编程」,作者Android开发编程。转载本文请联系Android开发编程公众号。前言Android平台提供两种信号,一种是硬件信号,另一种是软件信号,由SurfaceFlinger进程的一个线程定时发出,硬件信号由硬件发出;App进程若要通过gpu实现图像绘制
本文转载自微信公众号「Android开发编程」,作者Android开发编程。转载本文请联系Android开发编程公众号。前言关于倒计时,有很多种写法,今天我们介绍一种Android自带的倒计时控件CountDownTimer一、CountDownTimer详解CountDownTimer:定时执行在
背景介绍在业务开发过程中,存在这样的场景:程序接收到数据后,调用其他接口再将数据转发出去;如果接收一条转发一条,效率是比较低的,所以一个思路是先将数据缓存起来,缓存到一定数量后一次性转发出去。有优点就有缺点,需要根据业务场景进行考量:在QPS较小的情况下,达到阈值的等待时间较长,造成数据延迟较大在应
Java中有哪些队列ArrayBlockingQueue 使用ReentrantLockLinkedBlockingQueue 使用ReentrantLockConcurrentLinkedQueue 使用CAS等等我们清楚使用锁的性能比较低,尽量使用无锁设计。接下来就
1.概览在分布式场景中,Retry和Fallback是最常见的容灾方案。Retry就是在调用远程接口失败时,Client主动发起重试请求,以期待获得最终结果,从而完成整个流程Fallback是在调用远程接口失败时,Client不进行重试而是调用一个特殊的fallback方法,从这个方法中获取结果,使
哈喽,大家好,我是指北君。装饰器设计模式大家肯定都听说过,但是有没有使用过呢,今天本君就跟大家分享一下装饰器模式应该如何使用。什么是装饰器模式装饰器模式(DecoratorPattern): 在不改变对象自身的基础上,在程序运行期间给对象动态的添加职责;感觉和继承如出一辙,不改变父类,子类
在日常开发中,尤其是在微服务盛行的时代下,我们在调用外部接口时,经常会因为第三方接口超时、限流等问题从而造成接口调用失败,那么此时我们通常会对接口进行重试,那么问题来了,如何重试呢?该重试几次呢?如果要设置重试时间超过多长时间后还不成功就不重试了该怎么做呢?所幸guava-retrying为我们提供
实际业务开发过程中,业务逻辑可能非常复杂,核心业务+N个子业务。如果都放到一块儿去做,代码可能会很长,耦合度不断攀升,维护起来也麻烦,甚至头疼。还有一些业务场景不需要在一次请求中同步完成,比如邮件发送、短信发送等。MQ确实可以解决这个问题,但MQ重啊,非必要不提升架构复杂度。针对这些问题,我们了解一
在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNEDINT)来存储IP地址,而不是使用字符串。但是没有给出具体原因。为了搞清楚这个原因,查了一些资料,记录下来。相对字符串存储,使用无符号整数来存储有如下的好处:节省空间,不管是数据存
在Lock接口中,获取锁的方法有4个:lock()、tryLock()、tryLock(long,TimeUnit)、lockInterruptibly(),为什么需要这么多方法?这些方法都有什么区别?接下来我们一起来看。lock方法lock方法是Lock接口中最基础的获取锁的方法,当有可用锁时会直
前言几乎每个使用Java开发的工具、软件基础设施、高性能开发库都在底层使用了sun.misc.Unsafe,比如Netty、Cassandra、Hadoop、Kafka等。Unsafe类在提升Java运行效率,增强Java语言底层操作能力方面起了很大的作用。但Unsafe类在sun.misc包下,不
书接上回,上回书咱们说到,time_init方法通过与CMOS端口进行读写交互,获取到了年月日时分秒等数据,并通过这些计算出了开机时间startup_time变量,是从1970年1月1日0时起到开机当时经过的秒数。我们继续往下看,大名鼎鼎的进程调度初始化,shed_init。复制void
本文转载自微信公众号「crossoverJie」,作者crossoverJie 。转载本文请联系crossoverJie公众号。在这篇文章中你将会学习到一些你可能没听过但有用的Java特性,这些是我个人常用的一些特性或者是从其他文章中学习到的,重点是关注API而不是语言本身。延迟队列众所周
ChromeDevtools的Performance工具是性能分析和优化的利器,因为它可以记录每一段代码的耗时,进而分析出性能瓶颈,然后做针对性的优化。这么强大的工具肯定是要好好掌握的,今天我们就来做一个性能优化的案例来快速上手Performance吧。性能分析首先,我们准备这样一段代码:复制<
复制粘贴一时爽,频出bug火葬场。对开发者而言,StackOverflow和GitHub是最为熟悉不过的两大平台,这些平台充斥着大量开源项目信息和解决各类问题的代码片段。最近,一位叫做Aioobe的开发者在一项调查中发现了一段自己十年前写的代码,这段代码成为了StackOverflow上