自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 LeetCode第169题:多数元素

第169题:多数元素题目详述解法一解法二解法三题目详述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2解法一因为超过半数,所以排序后多数元素一定位于中间位置。cl...

2020-03-31 21:16:07 386

原创 LeetCode第78题:子集

子集问题题目详述解法一题目详述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]解法一newsets:[[1]][[2]][[2], [1, 2]][[3]][[3]...

2020-03-28 17:42:49 157

原创 LeetCode第50题:Pow(x, n)

@[TOC](Pow(x, n)分治法解答)题目详述实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 :输入: 2.00000, 10输出: 1024.00000说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。分治法class Solution { public double my...

2020-03-27 17:57:18 175

原创 LeetCode第22题:括号生成

第22题:括号生成(回溯)题目详述回溯法题目详述给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]回溯法class Solution{ List<String> output = new Arr...

2020-03-27 15:39:25 81

原创 梁宁产品思维30讲脑图

2020-03-25 23:25:49 1361

原创 LeetCode第47题:全排列 II

全排列 II题目详述回溯法题目详述给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]回溯法class Solution { int[] nums; List<List<Integer>> output = new ArrayList(); ...

2020-03-25 12:47:43 228

原创 LeetCode第46题:全排序

LeetCode第46题题目详述回溯解法题目详述给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]回溯解法class Solution { private int[] nums; List<List<In...

2020-03-24 10:23:25 103

原创 LeetCode第77题:组合

LeetCode第77题题目详述解法:回溯题目详述给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]解法:回溯class Solution{ private int n; private int k; List<L...

2020-03-22 22:24:39 135

原创 LeetCode第105题 从前序与中序遍历序列构造二叉树

Leetcode:从前序与中序遍历序列构造二叉树题目详述递归解法题目详述根据一棵树的前序遍历与中序遍历构造二叉树。例如 给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]得到:[3,9,20,null,null,15,7]递归解法class Solution { private int[] preorder...

2020-03-21 18:16:39 73

原创 产品笔记

用户体验五要素什么是用户体验一、认识这些要素二、战略层: 产品目标和用户体验三、范围层:功能规格和内容需求四、结构层:交互设计和信息架构五、框架层:界面设计、导航设计和信息设计六、表现层:感知设计七、要素的应用什么是用户体验就是“产品”与外部世界的联系。任何在用户体验上的努力都是为了 **提高效率** 。基本上以两种形式体现出 来:帮助人们工作效率更高和减少他们犯错的几率。 用户体验的五要...

2020-03-16 13:23:02 1716

原创 线程基础与生命周期

线程基础与生命周期线程的生命周期线程的生命周期在Java 5以后,线程的状态被明确定义在其公共内部枚举类java.lang.thread.state中,分别是:新建(new):表示线程被创建出类还没有真正启动的状态,可以认为它是一个Java内部状态就绪(runable):表示该线程已经在JVM中运行,当然由于执行需要计算资源,它可能是正在运行,也可能还在等待系统分配给他CPU片段,在就绪...

2020-03-09 22:45:03 106

原创 ReentrantLock 与Synchronized 对比分析

ReentrantLock分析 及 与Synchronized对比分析ReentrantLock概念、公平性ReentrantLock 中的重要方法对比条件变量 ConditionReentrantLock概念、公平性什么是再入?它表示当一个线程试图获取一个它已经获取的锁时,这个获取动作就自动成功,这是对锁获取粒度的一个概念,也就是锁的持有是以线程为单位,而不是基于调用次数。Java锁实现强...

2020-03-09 19:50:08 228

原创 Synchronized 分析与使用

Synchronized 底层分析与锁的升级与降级Synchronized底层之锁的升级与降级Synchronized底层之锁的升级与降级Synchronized代码块是由一对儿monitorEnter 和 monitorExit实现的,Monitor对象是同步的基本实现单元。在Java 6之前,Monitor的实现完全依赖操作系统的互斥锁,因为需要从用户态到内核态的切换,所以完全是一个无差...

2020-03-09 18:47:18 111

原创 线程安全之锁总结

线程安全1.0 Synchronized 和 ReentrantLock的区别2.0 需要掌握的知识点3.0 什么是线程安全4.0 锁类型Synchronized 底层原理及应用ReentrantLock 底层原理及应用其他锁(ReadWriteLock、StampedLock)为什么我们需要ReadWriteLock(读写锁)等其他锁?StampedLock1.0 Synchronized 和...

2020-03-09 12:23:04 226

原创 JUC知识点汇总

JUC汇总总结:总结:通常说的并发包即java.util.concurrent及其子包,集中了Java并发的各种基础工具类,具体:提供了比Synchronized更高级的各种同步结构:CountDownLatch、CyclicBarrier、Semaphore等,可实现更丰富的多线程操作,例如用Semaphore作为资源控制器,限制同时工作的线程数量。JUC之各种同步结构(Semapho...

2020-03-08 18:28:51 717

原创 JUC之知识点补充(Unsafe机制)

Unsafe机制什么是Unsafe机制getUnsafe()方法Unsafe的功能内存操作CAS线程调度class相关对象操作数组相关内存屏障系统相关什么是Unsafe机制Unsafe是sun.misc包下的一个类,主要提供一些用于执行低级别不安全操作的方法,如直接访问系统内存资源,自主管理内存资源等,这些方式在提升Java运行效率、增强Java语言底层资源操作能力等方面起到了很大的作用,但是...

2020-03-08 13:47:15 237

原创 JUC之并发包内部组成(AQS 和 CAS)

AtomicInteger、CAS、AQSAtomicInteger底层实现原理?CAS机制AQS机制AtomicInteger底层实现原理?AtomicInteger是int类型的一个封装,提供原子性的访问和更新操作,其原子性操作的实现是基于CAS操作。所谓CAS表征的是一些列操作的集合,获取当前数值,进行一些运算,利用CAS指令试图进行更新。如果当前数值未变,代表没有其他线程进行并发修改,...

2020-03-07 22:46:12 560

原创 JUC之线程池

线程池详解常见问题Executor基本框架源码分析线程池线程池的生命周期典型Execute方法源码分析线程池的实践常见错误线程池的大小选择策略常见问题Java并发类库提供的线程池有哪几种,分别有什么特点?通常我们都是利用Executors提供的通用线程方法,去创建不同配置的线程池,主要区别在与不同的ExecutorsService类型或是不同的初始参数。Execuotors提供了5种不同的...

2020-03-07 01:00:03 134

原创 JUC之线程安全队列

Concurrent型、CopyOnWrite型、Blocking型常见问题BlockingQueue中哪些队列是有界的哪些队列是无界的BlockingQueue底层实现常见问题需要达到的水平:哪些队列是有界的,哪些队列是无界的。针对特定场景需求如何选择合适的队列实现。从源码的角度常见的线程安全队列是如何实现的,并进行了哪些改进,以提高效率。ConcurrentLinkedQueu...

2020-03-05 14:52:18 330

原创 JUC之各种线程安全容器

CopyOnWrite系列、Concurrent系列大体结构Concurrent系列CopyOnWrite系列大体结构总体结构比较简单。Concurrent系列如果应用侧重于Map放入与获取的速度,而不在意顺序的话ConcurrentHashMap很好,反之ConcurrentSkipListMap 更适合,如果我们对大量数据做频繁的修改,ConcurrentSkipListMap 也可...

2020-03-04 21:11:01 535

原创 JUC之各种同步结构(Semaphore、CountDownLatch、CyclicBarrier)

Semaphore、CountDownLatch、CyclicBarrierSemaphore概念实现示例代码符合等出租车的示例代码总结CountDownLatch 和 CyclicBarrier二者区别CountDownLatch 代码示例CyclicBarrier 代码示例Semaphore概念Semaphore是Java版的信号量的实现。它通过控制一定数量的允许(permit)的方式,...

2020-03-04 20:13:21 400

空空如也

空空如也

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

TA关注的人

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