上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页
摘要: 求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 leetcode 解题思路:如何不用上面的条件判断语句,还是能判断传入参数的大小呢?这里就可以利用逻辑与和或的运算规则。 逻辑与 && 当运算符前面的条件为假, 阅读全文
posted @ 2020-11-14 20:22 lippon 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 leetcode 解题思路:约瑟夫 阅读全文
posted @ 2020-11-14 16:58 lippon 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 leetcode 解题思路:采用单调队列的思想,队列中应该是单调递减的,大的值先出队列,这样,每次在取滑动窗口的最大值的时候,就取队首元素即可。 单调队列入队操作 这个和单调栈差不多,当前元素和队尾元素进行比较,如果队尾元 阅读全文
posted @ 2020-11-14 16:06 lippon 阅读(123) 评论(0) 推荐(0) 编辑
摘要: Executor框架简介 从JDK5开始,把工作单元和执行机制分离开来了,工作的单元包括Runnable和Callable,执行机制就是由Executor框架提供。 Executor两级调度模型 HotSpot虚拟机将Java线程映射为操作系统的线程。 在上层,Java多线程程序将应用分解为多个任务 阅读全文
posted @ 2020-11-14 11:21 lippon 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 线程池的作用 降低资源消耗。重复利用已有线程,减少线程的创建和销毁造成的消耗。提高响应速度。当有任务需要处理的时候,就不用再花费重新创建线程的时间了。提高线程的可管理性。不合理利用线程,会浪费资源,影响系统稳定,线程池可以对线程进行统一分配、调优和监控。 线程池的实现原理 线程池由两种觉得组成:多个 阅读全文
posted @ 2020-11-14 10:12 lippon 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 解题思路: 首先通过一次遍历,获取所有元素的异或值;计算异或值中的一个值是1的位,这个位就是答案中两个数字的不同之处;利用这个位,在于求部分 阅读全文
posted @ 2020-11-13 20:43 lippon 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 闭锁:CountDownLatch 使用场景 当前线程需要等待若干条线程执行完毕后,才能继续执行的情况。 也可以是若干个步骤执行完毕后的情况。 使用方法 初始化闭锁的时候,填入计数值,然后等待其他线程或者步骤对计数值进行操作减减。当计数值变为0的时候,线程就会从闭锁的await()方法处继续执行。 阅读全文
posted @ 2020-11-13 10:58 lippon 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 锁的作用 控制多个线程访问共享资源。线程协作 Lock接口 特点 与synchronized类似的同步功能,只是需要显式地获取和释放锁。缺少隐式获取锁的便捷性。拥有锁获取与释放的可操作性、可中断的获取锁以及超时获取锁等多种同步特性。可扩展性好。尝试非阻塞地获取锁:如果当前时刻锁没有被占用,则获得锁。 阅读全文
posted @ 2020-11-13 10:24 lippon 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 为什么需要线程间通信 让线程之间合作,提高运行效率。 volatile和synchronized关键字 实现原理 这两个方式都是采用共享内存的方式进行通信,通过同步机制保证数据可见性和排他性。 特点 本质是数据共享。不能特定地传给某个线程数据,需要程序员自己编写逻辑。数据在各个线程的更新顺序由操作系 阅读全文
posted @ 2020-11-13 08:49 lippon 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 leetcode 解题思路:对数组进行重新排序,排序规则是,分别将两个数值放在前后位置,然后比较作为返回。 class Solution { public String minNumber(int[] n 阅读全文
posted @ 2020-11-12 19:09 lippon 阅读(56) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 17 下一页