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

企业网站源码 php附近最近的广告公司

企业网站源码 php,附近最近的广告公司,上海免费推广网站有哪些,深圳设计公司排名深圳市广告公司解题思路: 继承 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/448568.html

相关文章:

  • 梧州网站平台建设公司心理网站模板
  • 提供网站建设报价凡科网做网站如何推广
  • 江苏水利工程建设招投标网站优化网站排名费用
  • 淘宝客api调用到网站定制家具价格
  • 南宁网站建设seo郑州百姓网征婚交友
  • 网站建设成本报表网站建设资料填写
  • 邯郸市网站建设多少钱中企中立做的网站好吗
  • 常州网站制作系统租腾讯服务器做网站行吗
  • 湘阴县住房建设局网站财务软件哪个好用
  • 代做cad平面图的网站阿里巴巴能拿货在家里做的网站
  • 廊坊网站制作服务手机网站源文件
  • 网站命名方式wordpress评论内容密码保护
  • 网站平台建设费用手机app开发软件教程
  • 网站建设_seo技术支持青岛网站的优化
  • 备案关闭网站建设影响软件开发平台方案
  • 做网站需要固定ip么wordpress去除warning
  • 口碑好的网站建设哪家好wordpress课程购买
  • 美观网站建设价格恒华大厦做网站公司
  • 赣州网站建设咨询网站栏目分类
  • mvc网站建设设计报告网页推广怎么做的
  • 成都小型软件开发公司关键词优化软件排行
  • 怎样做一家迷你的特卖网站重庆镇海seo整站优化价格
  • 丰台手机网站设计小说推广赚钱
  • 做电商有哪些网站有哪些广西壮族自治区在线seo关键词排名优化
  • 网站项目流程呼和浩特网站运营公司
  • 做设计需要素材的常用网站有哪些网络运营的岗位职责及任职要求
  • 电子商务网站建设投资预算手机制作app教程
  • 专做ppt的网站四川大学官方网站规划建设处
  • 深圳网站制作公司流程图域名注册后网站建设
  • 做一个网站要多少钱google搜索关键词热度