当前位置: 首页 > news >正文

企业网站源码 php商贸公司名字推荐

企业网站源码 php,商贸公司名字推荐,公司做网站需要哪些手续,网站app建站多少钱解题思路: 继承 LinkedHashMap: 内置双向链表,自动维护节点的插入顺序和访问顺序。LRU 淘汰逻辑: 覆盖 removeEldestEntry,当元素数量超过 capacity 时,移除最旧条目。removeEldestEntry 方法提供钩子&…

在这里插入图片描述

解题思路:

  1. 继承 LinkedHashMap: 内置双向链表,自动维护节点的插入顺序和访问顺序。
  2. LRU 淘汰逻辑: 覆盖 removeEldestEntry,当元素数量超过 capacity 时,移除最旧条目。removeEldestEntry 方法提供钩子(Hook)机制,在扩容时自动检查是否需要淘汰最旧节点自动触发,通过 LinkedHashMap 的内部机制,无需手动管理链表。

Java代码:

class LRUCache extends LinkedHashMap<Integer, Integer>{private int capacity;public LRUCache(int capacity) {super(capacity, 0.75F, true);this.capacity = capacity;}public int get(int key) {return super.getOrDefault(key, -1);}public void put(int key, int value) {super.put(key, value);}@Overrideprotected boolean removeEldestEntry(Map.Entry<Integer, Integer> eldest) {return size() > capacity; }
}

哈希表+双向链表实现:

public class LRUCache {class DLinkedNode {int key;int value;DLinkedNode prev;DLinkedNode next;public DLinkedNode() {}public DLinkedNode(int _key, int _value) {key = _key; value = _value;}}private Map<Integer, DLinkedNode> cache = new HashMap<Integer, DLinkedNode>();private int size;private int capacity;private DLinkedNode head, tail;public LRUCache(int capacity) {this.size = 0;this.capacity = capacity;head = new DLinkedNode();tail = new DLinkedNode();head.next = tail;tail.prev = head;}public int get(int key) {DLinkedNode node = cache.get(key);if (node == null) {return -1;}moveToHead(node);return node.value;}public void put(int key, int value) {DLinkedNode node = cache.get(key);if (node == null) {DLinkedNode newNode = new DLinkedNode(key, value);cache.put(key, newNode);addToHead(newNode);++size;if (size > capacity) {DLinkedNode tail = removeTail();cache.remove(tail.key);--size;}}else {node.value = value;moveToHead(node);}}private void addToHead(DLinkedNode node) {node.prev = head;node.next = head.next;head.next.prev = node;head.next = node;}private void removeNode(DLinkedNode node) {node.prev.next = node.next;node.next.prev = node.prev;}private void moveToHead(DLinkedNode node) {removeNode(node);addToHead(node);}private DLinkedNode removeTail() {DLinkedNode res = tail.prev;removeNode(res);return res;}
}

复杂度分析:

  • 时间复杂度: O(1)。
  • 空间复杂度: O(1)。

在这里插入图片描述

解题思路(迭代):

  1. ​终止条件: 当前节点为空时返回。
  2. 递归逻辑: 先遍历左子树,再访问当前节点,最后遍历右子树。

Java代码:

class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();inorderHelper(root, result);return result;}private void inorderHelper(TreeNode node, List<Integer> list) {if (node == null) return;inorderHelper(node.left, list);list.add(node.val);inorderHelper(node.right, list);}
}

复杂度分析:

  • 时间复杂度: 所有节点访问一次,时间复杂度均为 O(n)。
  • 空间复杂度: 栈深度由树的高度决定,平衡树为 O(logn),链表为 O(n)。

解题思路(递归):

  • 显式栈: 模拟递归调用栈,通过循环将左子树节点压栈,弹出后处理右子树。

Java代码:

class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();Stack<TreeNode> stack = new Stack<>();TreeNode curr = root;while (curr != null || !stack.isEmpty()) {while (curr != null) {stack.push(curr);curr = curr.left;}curr = stack.pop();result.add(curr.val);curr = curr.right;}return result;}
}

复杂度分析:

  • 时间复杂度: 所有节点访问一次,时间复杂度均为 O(n)。
  • 空间复杂度: 栈最多存储 n 个节点(退化链表时),故空间复杂度为 O(n)。
http://www.dtcms.com/a/485515.html

相关文章:

  • 京东商城网站建设教程中信建设有限责任公司是央企吗
  • 做微信文章的网站邯郸市信息港
  • 下载做蛋糕网站铜仁住房和城乡建设局网站
  • 信息管理网站开发的视频教程中建豪城建设有限公司网站
  • 线框图网站小程序开发教程下载
  • 提供网站制作公司报价服装公司网站首页
  • 建设网站英文网站开发合同 doc
  • 网站后台都需要什么软件做中国建设会计协会网站
  • 昆明市住房和城乡建设局门户网站建设一个网站的费用
  • 南县网站建设推荐网络推广外包一年多少钱
  • 网站代理被抓山东东营信息网
  • 济南网站建设系统青岛栈桥门票多少钱一张
  • 做网站都得会什么技术二手闲置平台网站怎么做
  • 河源建设局网站珠海特价做网站
  • 做告状网站拍摄宣传片的流程简要
  • 南京网站建设案例wordpress回复微信查看
  • 沂水建设局网站成都住建局官网报名入口
  • 长沙优化网站分析html的网站案例
  • 公司建立网站流程图wordpress 影视源码
  • 遵义建立公司网站的步骤网站建站模式
  • 南宁企业网站制作哪家好wordpress上传文件功能
  • 重庆公司核名在哪个网站制作企业网站的报告
  • 南昌做网站开发的公司哪家好服务器上面建设网站
  • 镇江海绵城市建设官方网站交易链接大全
  • 佛山外贸网站建设修改wordpress页脚信息
  • 网站建设主流技术网站开发量
  • 珠海营销网站建设合肥瑶海区地图全图高清版
  • 学习网页制作的网站专业网站定制价格便宜
  • 网站建设运行情况简介建设银行网站优点
  • 做最好的win7系统下载网站拉新十大推广app平台