汉诺塔问题
在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制: (1) 每次只能移动一个盘子; (2) 盘子只能从柱子
在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制: (1) 每次只能移动一个盘子; (2) 盘子只能从柱子
实现一个算法,确定一个字符串s的所有字符是否全都不同。示例1:输入:s="leetcode"输出:false示例2:输入:s="abc"输出:true限制:0<=len(s)<=100如果你不使用额外的数据结构,会很加分。自我解答
给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动将会使 n - 1 个元素增加 1。示例: 输入: [1,2,3] 输出: 3 解释: 只需要3次移动(注意每次移动会增加两个元素的值):
给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1:给定的树 s: 3 / \ 4 5 / \ 1 2给定的树
请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。示例: MinStack minStack = new MinStack(); minStack.pu
这是两条路的交叉路口。第一条路是 A 路,车辆可沿 1 号方向由北向南行驶,也可沿 2 号方向由南向北行驶。第二条路是 B 路,车辆可沿 3 号方向由西向东行驶,也可沿 4 号方向由东向西行驶。每条路在路口前都有一个红绿灯。红绿灯可以亮起红灯或绿灯。绿灯表示两个方向的车辆都可
首先,给你一个初始数组 arr。然后,每天你都要根据前一天的数组生成一个新的数组。第 i 天所生成的数组,是由你对第 i-1 天的数组进行如下操作所得的: 假如一个元素小于它的左右邻居,那么该元素自增 1。 假如一个元素大于它的左右邻居,那么该元素自减 1。
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )(话说这个示例我盯了好久才看懂)示例 1: 输入
给定一个关键词集合words 和一个字符串S,将所有 S 中出现的关键词加粗。所有在标签 <b> 和</b>中的字母都会加粗。返回的字符串需要使用尽可能少的标签,当然标签应形成有效的组合。例如,给定words = ["ab", "
写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:F(0)=0, F(1) =1F(N)=F(N-1)+F(N-2),其中N>1.斐波那契数列由0和1开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模1e9+7(1000000007),如计
使用 优先队这个需要使用到优先队列, 这是支持设置优先级的队列, 官网文档 提到, 在声明队列时, 设置 ("x-max-priority", 10)历史消息曾也是高优先级如何与新消息区分在消息属性中设置 时间戳, 并且设置一个新消息阈值, 超过这个时间就是历史消息, 这样,
安装语言包sudo apt-updatesudo apt-get install language-pack-zh-hans设置区域为中国sudo update-locale LANG=zh_CN.UTF-8
ls -l1v ./
sed -i 's/old-text/new-text/g' input.txt
FROM reg-ai.chehejia.com/system/ubuntu:22.04RUN printf "\deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted\n\deb http://mirrors.aliyun.