随笔分类 -  面试手撕

摘要:3构建 就是分治 找准位置就行 前后有个n+1所以需要判断 前中 class Solution { //分治 //语义是 [a,b]那么就要根据这个来 Map<Integer,Integer> map = new HashMap<>(); public TreeNode buildTree(int[ 阅读全文
posted @ 2021-09-19 20:23 常熟阿诺 阅读(115) 评论(0) 推荐(0)
摘要:八股 快排 快排本质: 一次操作,找到某个元素最终定位。 一句话讲清楚: 只用维护一个变量j表示小于区间用于分界,大于不操作,小于的话就交换并加j 等于说在队首是不动的,两个区间内的不断交换而已 归并 本质: 合并两个有序数组。 堆排序 希尔排序 阅读全文
posted @ 2021-09-15 12:27 常熟阿诺 阅读(23) 评论(0) 推荐(0)
摘要:傻逼才用Arrays.sort,用了就去当保安吧 思想:快排每次都会左右分区,保证选到的元素位置不再变。使用这个思想,下标如果刚好对上,那就说明找到了。 class Solution { public int findKthLargest(int[] nums, int k) { //按照正序来 d 阅读全文
posted @ 2021-09-15 12:23 常熟阿诺 阅读(107) 评论(0) 推荐(0)
摘要:public class SkipList { class Node{ int value = -1; int level; //这里用的数组 Node[] next; public Node(int value, int level) { this.value = value; this.leve 阅读全文
posted @ 2021-09-08 14:27 常熟阿诺 阅读(65) 评论(0) 推荐(0)
摘要:class LRUCache { //自建一个类 class DNode{ int k; int v; DNode pre; DNode next; public DNode(){}; public DNode(int kk,int vv){k = kk;v = vv;}; } //自己的属性 pr 阅读全文
posted @ 2021-09-08 14:26 常熟阿诺 阅读(112) 评论(0) 推荐(0)
摘要:public class SortedPrintMore extends Thread{ //由于是不同的Thread n最好是共享 //无锁化 int i; static int n; static Lock lock = new ReentrantLock(); static Condition 阅读全文
posted @ 2021-08-31 12:18 常熟阿诺 阅读(33) 评论(0) 推荐(0)
摘要:package offer; import java.util.concurrent.locks.ReentrantLock; /** * @DATE: 2021-08-31 * @TIME: 10:11 * @FUNCTION: 按序打印abc 因为是abc 所以需要引入属性 v2 无锁 */ p 阅读全文
posted @ 2021-08-31 12:13 常熟阿诺 阅读(60) 评论(1) 推荐(1)
摘要:public class SortedPrint implements Runnable{ int n; @Override public synchronized void run(){ //有个唤醒机制 while(true){ if(n>100) return; System.out.prin 阅读全文
posted @ 2021-08-31 10:10 常熟阿诺 阅读(17) 评论(0) 推荐(0)