题目链接 题目 题目描述 \(Sramoc(K ,M)\) 表示用数字 \(0,1,2,3,4,...,k-1\) 组成的自然数中能被M整除的最小数。给定 \(K,M\) \(2\leq K\leq 10,1\leq M\leq 1000\) ,求 \(Sramoc(K ,M)\) 。例如 \(K=2,M=7\) 的时候, \(Sramoc(2 ,7) =1001\) 。 输入描述 第一行为两个整数 \(K,M
题目链接 题目 题目描述 最近吃鸡游戏非常火,你们wyh学长也在玩这款游戏,这款游戏有一个非常重要的过程,就是要跑到安全区内,否则就会中毒持续消耗血量,我们这个问题简化如下 假设地图为n*n的一个图,图中有且仅有一块X的联通快代表安全区域,有一个起点S代表缩圈的时候的起点,图中C代表的是
题目链接 题目 见链接。 题解 知识点:BFS。 这道题显然用BFS,但发现洋流方向会破坏时间的有序性,但注意到洋流时间花费是 \(0\) ,因此只需要用双端队列即可,洋流方向扩展直接放队头,其他方向放队尾。 同样要注意时间线在本次就改变,因此锁点要在之后锁。 时间复杂度 \(O(?)\) 空间复杂度
题目链接 题目 题目描述 这是一个关于二维迷宫的题目。我们要从迷宫的起点 'S' 走到终点 'E',每一步我们只能选择上下左右四个方向中的一个前进一格。 'W' 代表墙壁,是不能进入的位置,除了墙壁以外的地方都可以走。迷宫内的 'D' 代表一道上锁的门,只有在持有钥匙的时候才能进入。而 'K
二叉搜索树的应用问题 二叉搜索树的定义 若左子树不空,则左子树上所有节点的值均小于根节点的值 若右子树不空,则右子树上所有节点的值均大于根节点的值 它的左右子树也均为二叉搜索树 中序遍历结果为一个升序数组 LeeCode 98: 验证二叉搜索树 题目描述 给你一个二叉树的根节点 r
给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。 示例 1: 输入:s =
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 示例 1: 输入:head = [1,1,2]输出:[1,2]示例 2: 输入:head = [1,1,2,3,3]输出:[1,2,3] 提示: 链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序
题意 给定两个长度为 \(n\) 的非负整数序列 \(A,B\),并定义数列 \(C\),\(C_i = \max\limits_{j=1}^{i}{A_i}\)。 有 \(q\) 次操作,每次对 \(A\) 和 \(B\) 的某个位置进行修改,然后询问 \(\prod \limits_{i=1}^{n} \min\{B_i,C_i\} \bmod 10^9+7\)。保证修改之后不小于原数。 \(1 \leq
#遍历一遍,快慢指针 class Solution: def removeDuplicates(self, nums: List[int]) -> int: pre,cur=0,1 while cur<len(nums): if nums[pre]==nums[cur]: nums.pop(cur) else: pre,cur=p
203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:head = [], val = 1 输出:[] 示例 3: 输入:head = [7,7,7,7], val = 7
https://leetcode.cn/problems/split-array-into-fibonacci-sequence/solution/jiang-shu-zu-chai-fen-cheng-fei-bo-na-qi-ts6c/ func splitIntoFibonacci(str string) []int { n=len(str) ans=make([]int,0) dfs(str,0, 0, 0) return ans } var ans []i
洛谷题面传送门 简单分块题,可惜卡了一年的常( 道理很明显,碰到这种不可 polylog 维护的题肯定需要分块,弱化版可见 P3591 POI2015 ODW。而此题又涉及开根号,那又一个一眼的套路:segment beats,这样做法就出来了:设阈值 \(B\),然后。 对于 \(k>B\),查询修改都暴力。 对于 \(k\le B\),我们先
替换空格 class Solution { public String replaceSpace(String s) { StringBuilder res = new StringBuilder(); for(Character c : s.toCharArray()) { if(c == ' ') res.append("%20"); else res.ap
java实现二叉树 1、定义数据结点 class Node<E> { E e; Node<E> left, right; int size, depth;// 扩展 public Node() { this.e = null; this.left = null; this.right = null; }
记element-ui权限树的一些问题 element-ui内置的setChecked函数有点问题 所以自己重写了一下 /** * fuck element-ui */ checkParent(data, TreeData) { let toDoDeal = []; function permListFind(node, val) { for(let item of node) {
Trie最大的问题:空间!所以可以使用一下解决方案。 Code #pragma once #include <map> class Node { public: explicit Node() noexcept: isWord(false) {} explicit Node(bool isWord) : isWord(isWord), next() {} public: bool isWord; std::map<char, N
POJ 1149 Pig/AcWing2237 猪 分析 本题还是蛮有意思的,我们来理顺一下思维过程。 我们总结一下,题目的操作。 每名顾客按顺序进行 将自己有钥匙的猪舍打开,从中挑选一些不超过自己想买的数量的猪。 同时可以将,打开的猪舍中的猪进行调整 这里面,我们需要一个逆向思维 我们考虑打开的
401. 不降子数组游戏【二分】 直接二分就行。因为getAns函数写错了,wa了几发。(当nxt[l]>r的时候,这个时候就是递增子数组,就是数组长度的组合数) 402. 子串(数据加强版)【组合数】 一开始想到了从两边遍历,然后把1单独拎出来,后面没想到切入口。 然后看到严gg的文章,同一段0的隔板数
LeetCode289 生命游戏 使用扩展标签保留更新之前的信息 这里原来是0,现在是1,标记为2;原来是1,现在是0,标记为-1。保留本轮更新之前的值 最后在遍历更新为0或1 class Solution: def gameOfLife(self, board: List[List[int]]) -> None: """ Do not return anything
参考教程: 《操作系统: 设计与实现》南京大学公开课、《深入理解计算机系统》、《操作系统概念》 这一周的主题是并发,而这一篇作为主题的开篇,从操作系统的角度看待并发,之后会深入到Linux系统、Windows系统和相关程序语言上进行分析和实践,内容可能包括: 基于Linux源码分析互斥锁的
单链表排序 以arr = [8,6,7,5,1,2]为例 1. 自顶向下归并排序(递归)——分治法 Time: O(NlogN) Space: O(LOG(N)) 自顶向下: (8->6->7) | (5->1->2) (8->6)|(7) | (5->1)|(2) (8)|(6)|(7) |(5)|(1)|(2) 栈返回: (6->8)|(7) |(1->5) | (2) (6->7->8) | (1->2->5) (1-
原题链接在这里:https://leetcode.com/problems/jump-game-iv/ 题目: Given an array of integers arr, you are initially positioned at the first index of the array. In one step you can jump from index i to index: i + 1 where: i + 1 < arr.length. i - 1 where:
原题链接在这里:https://leetcode.com/problems/jump-game-iii/ 题目: Given an array of non-negative integers arr, you are initially positioned at start index of the array. When you are at index i, you can jump to i + arr[i] or i - arr[i], check if you can
LeetCode103 二叉树的锯齿形层序遍历 使用两个栈进行模拟 + bfs # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class S
LeetCode386 字典序排数 构造字典树,dfs遍历记录 class Solution: def lexicalOrder(self, n: int) -> List[int]: ans = [] def dfs(cur): if cur <= n: ans.append(cur) else: return