0%

数组有序时常用二分法来查找,时间复杂度降到O(logn)。旋转的有序数组也可以使用二分法,通过讨论mid所指元素在数组中的位置来重新确定搜索范围。

153,寻找旋转排序数组中的最小值,medium

阅读全文 »

Java中的锁机制

Java中多线程加锁机制主要有两种:一种是jdk实现的Lock锁,一种是JVM底层实现的synchronized关键字。

区别:

  • synchronized用于方法或代码块;Lock是一个接口,实现类有ReentrantLock可重入锁、ReadWriteLock读写锁。

  • synchronized是隐式锁,无需手动开启和关闭,因此不会出现死锁;Lock锁是显示锁,需要手动开启和关闭,如果开启和关闭次数不一致,可能发生死锁。

阅读全文 »