摘要: 核心思想 用一个set存储还没有球的盒子 一旦有2操作 那就剩下1个盒子没有球 代码 import java.util.*; public class Main { public static void main(String[] args) { TreeSet<Integer> q = new T 阅读全文
posted @ 2024-04-01 19:42 Shie1d 阅读(53) 评论(0) 推荐(0)
摘要: 核心思想 注意数据范围 0 <= nextVisit[i] <= i 也就是说 当前下标i只能去之前的地方 也就是说i+1 只能 通过 i 访问次数为偶数才能达到 定义 dp[i] 到达第i个房间的天数 那么要到达第i个房间的路径为 0 -> i-1 -> nextVisit[i-1] -> i-1 阅读全文
posted @ 2024-04-01 19:33 Shie1d 阅读(12) 评论(0) 推荐(0)
摘要: Linux 安装 Mysql 以下操作在root用户下 否则加上sudo docker pull mysql:5.7 注意 容器名字如果有 - 会错误 docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql 阅读全文
posted @ 2024-04-01 18:43 Shie1d 阅读(89) 评论(0) 推荐(0)
摘要: Linux 安装 Redis docker pull redis 由于容器内目录下没有redis.conf,导致/mydata/redis/conf/redis.conf 认为是目录 所以先创建配置文件 mkdir -p /mydata/redis/conf touch /mydata/redis/ 阅读全文
posted @ 2024-04-01 18:43 Shie1d 阅读(248) 评论(0) 推荐(0)
摘要: Linux 安装 Docker 官方文档 查看系统信息命令 cat /etc/os-release 第一步 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo: 以超级用户权限执行命令,需 阅读全文
posted @ 2024-04-01 18:38 Shie1d 阅读(173) 评论(0) 推荐(0)
摘要: 核心思想 先按第一个元素排序,原区间重合的合并为一个,计算合并完后的区间个数。 每个区间都有2个选择,res不断乘2。 class Solution { public int countWays(int[][] ranges) { long res = 1; final int MOD = (int 阅读全文
posted @ 2024-04-01 18:37 Shie1d 阅读(21) 评论(0) 推荐(0)
摘要: 题面 核心思想 手写堆 构建一个大顶堆,删除k-1个堆顶元素。 为什么是size / 2 - 1? 考虑最后一个元素的下标 size - 1 那么父节点为 (size - 1) / 2 代码 class Solution { public int findKthLargest(int[] nums, 阅读全文
posted @ 2024-04-01 18:37 Shie1d 阅读(13) 评论(0) 推荐(0)
摘要: 核心思想 Dijkstra + 堆优化 模板题,每次查询做一次最短路查询即可。 class Graph { private List<int[]>[] nxt; public Graph(int n, int[][] edges) { nxt = new List[n]; for(int i = 0 阅读全文
posted @ 2024-04-01 18:36 Shie1d 阅读(9) 评论(0) 推荐(0)
摘要: 核心思想 倒序的字典树,算是板子题吧。 也就是节点的成员变量有变化。 class Trie{ int idx; // 下标 int length; // 记录以此为后缀且长度最小的长度 Trie[] son; // 儿子 Trie(){ idx = (int) (1e4 + 10); length 阅读全文
posted @ 2024-04-01 18:34 Shie1d 阅读(12) 评论(0) 推荐(0)
摘要: class Trie { Trie[] chs= new Trie[26]; int cnt = 0; public Trie() { } public void insert(String word) { Trie root = this; for(char ch : word.toCharArr 阅读全文
posted @ 2024-04-01 18:26 Shie1d 阅读(3) 评论(0) 推荐(0)
摘要: 核心思想 字典树看灵神把 这里提供一个不同的版本 map存放了int[] 需重写equals 和 hashCode class Node { Map<MyIntArray, Node> son = new HashMap<>(); int cnt; } class MyIntArray{ priva 阅读全文
posted @ 2024-04-01 18:21 Shie1d 阅读(11) 评论(0) 推荐(0)
摘要: 核心思想 既然只有两种操作 最优解一定是 加1在前 复制在后 所以枚举从哪个数开始一直复制就好 上限就是 ceil(k / 2) class Solution { public int minOperations(int k) { if(k == 1) return 0; int res = (in 阅读全文
posted @ 2024-04-01 18:17 Shie1d 阅读(12) 评论(0) 推荐(0)
摘要: 核心思想 比较直观的想法就是BFS,但是每次遍历能走的点(右走,下走)会超时 考虑用两个set数组, TreeSet<Integer>[] R = new TreeSet[n]; TreeSet<Integer>[] C = new TreeSet[m]; R[i]表示第i行还剩下哪些列col没去过 阅读全文
posted @ 2024-04-01 18:17 Shie1d 阅读(25) 评论(0) 推荐(0)
摘要: 核心思想 维护一个单调递减的单调栈(非严格) 但是由于是循环的,做两次循环即可 代码 public int[] nextGreaterElements(int[] nums) { Deque<Integer> dq = new ArrayDeque<>(); int[] res = new int[ 阅读全文
posted @ 2024-04-01 18:15 Shie1d 阅读(8) 评论(0) 推荐(0)
摘要: 不是正经讲解,单纯记录模板 核心思想 7^11 二进制表示为 7^1011 = 7^1000 *7^10 *7^1 也就是7^1 * 7^2 * 7^8 所以我们不断计算自身为底的平方数,当末尾位为1时乘上结果。 代码 public long fastPow(long x, long n, long 阅读全文
posted @ 2024-04-01 18:14 Shie1d 阅读(30) 评论(0) 推荐(0)
摘要: 核心思想 滑动窗口,先从头开始找到包含t的子串,然后缩短窗口左边界,直到不包含再扩展右边界。 匹配过程: s = "ADOBECODEBANC", t = "ABC" 匹配:"ADOBEC" 缩短:"DOBEC" 匹配:"DOBECODEBA" 缩短:"ODEBA" 匹配:"ODEBANC" 缩短: 阅读全文
posted @ 2024-04-01 18:06 Shie1d 阅读(30) 评论(0) 推荐(0)
摘要: 题面 核心思想 如果一段区间内的数平均值为k,那么每个数减去k之后平均值就为0 所以每个数-k 然后计算前缀和并放入map 其中:key=前缀和 value=当前下标 出现重复的前缀和preSum 说明存在平均值为k的区间 [mp.get[preSum] + 1, i] 由于需要最长的子数组 所以只 阅读全文
posted @ 2024-04-01 17:19 Shie1d 阅读(78) 评论(0) 推荐(0)
摘要: 核心思想 主要包含两个动作 nums[i]进 和 nums[i-k]出 新元素进入窗口旧元素移出窗口 最大值是谁这个区间各个元素都有可能 所以用一个set记录窗口的值,自定义排序从大到小,每次拿第一个就是最大值 同时用map记录数字出现次数,为0则移出set。 代码 class Solution { 阅读全文
posted @ 2024-04-01 16:48 Shie1d 阅读(10) 评论(0) 推荐(0)
摘要: 管理员运行VS Code npm cache clean --force cnpm yarn也可以尝试 再就是版本不对咯,降低版本命令 npm -g install npm@6.14.4 ps 梯子开着有时候也有影响 阅读全文
posted @ 2024-04-01 16:46 Shie1d 阅读(16) 评论(0) 推荐(0)
摘要: 思路 先看只有3个节点的子树,想要路径值相同,只能修改叶子节点的值,如上图只能2去+1操作。 核心思想:那么对于任意左右孩子节点,想要从根节点下来的路径相同,只能修改孩子节点。 所以我们只需要从下至上记录叶子节点到当前节点的路径值(左孩子,右孩子两条路),然后计算左右节点的差值。 详细看灵神树上贪心 阅读全文
posted @ 2024-04-01 10:26 Shie1d 阅读(26) 评论(0) 推荐(0)