尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

编程题思考

编程题思考 LRU缓存O(1) get/put核心是用 HashMap 双向链表。HashMap存 key → 节点O(1)定位双向链表维护访问顺序最近使用的放头部最久未用的在尾部。get时命中就把节点移到头部put时如果存在就更新值并移到头部不存在就new节点放头部如果超容就移除尾部节点。解析日志字符串并按时间排序先用正则表达式或 split 按固定格式解析每行日志提取时间戳转成 LocalDateTime 或 long级别和消息存到POJO里。全部解析完后用 Collections.sort 或 Stream.sorted按时间戳排序后输出。实现一个有界阻塞队列容量100支持超时阻塞使用环形数组O(1)入队和出队不用搬移元素单独维护元素个数count靠他判断队列元素是空还是满使用reentrantLock所有操作用一把锁。两个condition精准唤醒入队者唤醒出队者出队者唤醒入队者。while循环阻塞等待使用awaitNanos等待设置的超时时间超时就返回三个线程轮流打印 A、B、C循环10次用一个共享变量 state0A,1B,2C表示当前该谁打印配合 synchronized wait/notify。每个线程判断 state % 3 是否等于自己的id不是就wait是就打印、state、notifyAll。循环10次。用 Lock 三个Condition A、B、C各一个→ 更精确唤醒不用notifyAll判断回文字符串左右双指针i从0j从length-1依次比较charAt(i)和charAt(j)不等就false相等i j--忽略大小写或特殊字符可先预处理。第一个只出现一次的字符第一遍用LinkedHashMap或两个HashMap一个计次数一个记录顺序第二遍遍历原字符串找计数为1的找不到返回特定值。反转句子中单词顺序单词本身不反转先trim去掉多余空格按空格split成数组倒序拼接或者整体反转字符串再按单词局部反转这个提一下即可重点说split反向遍历。求数组中超过一半的元素主元素 / Boyer-Moore用HashMap统计次数再遍历找大于n/2的合并两个有序数组不新开数组找到链表倒数第K个节点前后双指针fast先走k步然后fast和slow一起走fast到尾时slow就是倒数第k个。
返回列表