IPAM IPAM简单实现 IPAM(Internet Protocol Address Management,互联网协议地址管理)是一个系统,用于在企业环境中管理IP地址,确保IP地址的有效分配和回收,以及网络的合理组织和资源利用 本文实现简单的IPAM,包含Allocate、Release、CheckIsFree的功能。 实现原理 对于存储采用map,key为网段,value为在这个网段上的所有ip 2024-06-13 后端 #网络
反悔贪心 LeetCode2024 6.13每日一题 LC2813. 子序列最大优雅度 给你一个长度为 n 的二维整数数组 items 和一个整数 k 。 items[i] = [profiti, categoryi],其中 profiti 和 categoryi 分别表示第 i 个项目的利润和类别。 现定义 items 的 子序列 的 优雅度 可以用 total_profit + distinct_c 2024-06-13 算法 #杂项
LeetCode-385 本篇核心词: Z函数 Q2 最长公共前缀的长度 给你两个 正整数 数组 arr1 和 arr2 。 正整数的 前缀 是其 最左边 的一位或多位数字组成的整数。例如,123 是整数 12345 的前缀,而 234 不是 。 设若整数 c 是整数 a 和 b 的 公共前缀 ,那么 c 需要同时是 a 和 b 的前缀。例如,5655359 和 56554 有公共前缀 565 ,而 1223 和 43 2024-03-30 算法 #leetcode
区间和DP、 区间和DP LC1997. 访问完所有房间的第一天 你需要访问 n 个房间,房间从 0 到 n - 1 编号。同时,每一天都有一个日期编号,从 0 开始,依天数递增。你每天都会访问一个房间。 最开始的第 0 天,你访问 0 号房间。给你一个长度为 n 且 下标从 0 开始 的数组 nextVisit 。在接下来的几天中,你访问房间的 次序 将根据下面的 规则 决定: 假设某一天,你访问 i 号房 2024-03-28 算法 #杂项
LeetCode-W125 本篇关键词: 树形DP,推导&思维 Q1超过阈值的最少操作数 I 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 一次操作中,你可以删除 nums 中的最小元素。 你需要使数组中的所有元素都大于或等于 k ,请你返回需要的 最少 操作次数。 示例 1: 1234567输入:nums = [2,11,10,1,3], k = 10输出:3解释:第一次操作后,nums 变 2024-03-21 算法 #leetcode
设计模式 设计模式 一份好的代码,离不开好的设计模式。设计模式总共有七大准则,二十多种设计模式都是根据七大准则来编写的。 单一职责 我们尽可能的让一个模块(类)只实现一个功能,在一些复杂的项目中如果一个类实现多个功能的话,那么整体逻辑会狼狈不堪,如果是小demo的话,那么就无所谓了。 开闭原则 软件实体(类、模块或方法)应该对扩展开放,对修改封闭。这意味着在添加新功能时,应该尽量通过扩展现有代码来实 2024-03-20 后端 #设计模式
换跟DP LC310. 最小高度树 树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,一个任何没有简单环路的连通图都是一棵树。 给你一棵包含 n 个节点的树,标记为 0 到 n - 1 。给定数字 n 和一个有 n - 1 条无向边的 edges 列表(每一个边都是一对标签),其中 edges[i] = [ai, bi] 表示树中节点 ai 和 bi 之间存在一条无向边。 可选择树中任何一个节 2024-03-17 算法 #杂项
连通图最小路径个数 LC1976. 到达目的地的方案数 你在一个城市里,城市由 n 个路口组成,路口编号为 0 到 n - 1 ,某些路口之间有 双向 道路。输入保证你可以从任意路口出发到达其他任意路口,且任意两个路口之间最多有一条路。 给你一个整数 n 和二维整数数组 roads ,其中 roads[i] = [ui, vi, timei] 表示在路口 ui 和 vi 之间有一条需要花费 timei 时间才能通过的 2024-03-05 算法 #杂项
LeetCode-376 本场两道题都与中位数有关,个人感觉第三题会比第四题难想一点,本场整体难度中等 Q1 找出缺失和重复的数字 给你一个下标从 0 开始的二维整数矩阵 grid,大小为 n * n ,其中的值在 [1, n2] 范围内。除了 a 出现 两次,b 缺失 之外,每个整数都 恰好出现一次 。 任务是找出重复的数字a 和缺失的数字 b 。 返回一个下标从 0 开始、长度为 2 的整数数组 ans ,其中 a 2024-01-03 算法 #leetcode
LeetCode-375 比较简单的一场,最高rating不到2000 Q1 统计已测试设备 给你一个长度为 n 、下标从 0 开始的整数数组 batteryPercentages ,表示 n 个设备的电池百分比。 你的任务是按照顺序测试每个设备 i,执行以下测试操作: 如果 1batteryPercentages[i] 大于 10 : 增加 已测试设备的计数。 将下标在 [i + 1, n - 1] 的所有设备 2023-12-31 算法 #leetcode