2019年11月14日

LRU hashMap(拉链) + 双向链表 java实现

摘要: //基于 hash (拉链法) + 双向链表,LRUcache //若改为开放寻址,线性探测法能更好使用cpuCache public class LRU { private class Node { Node p; //访问序 priv Node n; //访问序 next Node hn; // 阅读全文

posted @ 2019-11-14 20:05 jald 阅读(306) 评论(0) 推荐(0) 编辑

2019年11月13日

ThreadLocal

摘要: 一个 Thread 对象 内部成员变量 locals 是一个 ThreadLocalMap 对象 一个 ThreadLocalMap 存放 Key 为 ThreadLocal 对象,值为副本 一个 Thread 一个 ThreadLocalMap 一个 ThreadLocalMap key 可以对应 阅读全文

posted @ 2019-11-13 16:31 jald 阅读(104) 评论(0) 推荐(0) 编辑

2019年11月9日

二分查找,第一个等于给定值的元素下标

摘要: 有些繁琐的递归实现 #include <stdio.h> #include <limits.h> //binary search, find first value == v element's index //lt < , le <= , eq =, ne != , ge >=, gt > int 阅读全文

posted @ 2019-11-09 01:11 jald 阅读(447) 评论(0) 推荐(0) 编辑

2019年11月8日

n次方根牛迭

摘要: //n次方根牛迭 public static double nSqrt(int a, int n) { double v = a; double last = 0; do { last = v; // v = (Math.pow(v, n) * (n - 1) + a) / (n * Math.po 阅读全文

posted @ 2019-11-08 23:41 jald 阅读(189) 评论(0) 推荐(0) 编辑

2019年11月7日

计数排序

摘要: package com.ex.cyy.demo4.alg; import java.util.ArrayList; import java.util.List; import java.util.Random; public class CountingSort { static class Nod 阅读全文

posted @ 2019-11-07 00:47 jald 阅读(147) 评论(0) 推荐(0) 编辑

2019年11月6日

无序数组中用 快速排序的分治思想 寻找第k大元素

摘要: #include <stdio.h> int *ga; int galen; void print_a(){ for(int i = 0; i < galen; i++){ printf("%d ",ga[i]); } printf("\n"); } //k = di k da yuan su in 阅读全文

posted @ 2019-11-06 17:31 jald 阅读(255) 评论(0) 推荐(0) 编辑

电话号码的字母组合

摘要: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 来源:力扣(Leet 阅读全文

posted @ 2019-11-06 14:31 jald 阅读(187) 评论(0) 推荐(0) 编辑

链表 插入排序

摘要: 参考了几个网上例子,验证后发现,不是最后几个元素会产生环,要么就是排序后不是稳定的(相同key值的元素,会意外改变顺序) 最后自己写了个例子,用了2种方法写基于链表的插入排序, #include <stdio.h> #include <stdlib.h> #define null 0 struct 阅读全文

posted @ 2019-11-06 03:22 jald 阅读(641) 评论(0) 推荐(0) 编辑

2019年11月3日

多线程 术语(关键字背诵(理解),直怼面试官)

摘要: 死锁 2条线程互相持有各自的锁的时候,又要获取对方已持有的锁时产生 抱死 解决办法: 1.始终使用相同的加锁顺序(1.hashcode 的大小值,2.其他和锁相关的不变量,比如ID号大小) 2.使用一个总锁,只对唯一的总锁竞争,然后在互斥区内再获取另外的2个锁 3.排查死锁问题,需要对整个程序中所有 阅读全文

posted @ 2019-11-03 02:27 jald 阅读(189) 评论(0) 推荐(0) 编辑

2019年11月2日

编译 lineageos 14.1 on OnePlus3

摘要: breakfast oneplus3 命令的主要作用是 1.执行 vendorsetup.sh 2. variant 默认设置为 userdebug 3. 根据机型判断 调用 lunch cm 或是 lineage breakfast () { target=$1; local variant=$2 阅读全文

posted @ 2019-11-02 02:02 jald 阅读(1807) 评论(0) 推荐(1) 编辑

导航