题目
402. 移掉 K 位数字
给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。
示例 1 :
123输入:num = "1432219", k = 3输出:"1219"解释:移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。
示例 2 :
123输入:num = "10200", k = 1输出:"200"解释:移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。
示例 3 :
123输入:num = "10", k = 2输出:"0"解释:从原数字移除所有的数字,剩余为空就是 0 。
提示:
1 <= k <= num.length <= 105
num 仅由若干位数字(0 - 9)组成
除了 0 本身之外,num 不含任何前导零
思路题目要求就是前面的数字要小,这样就能保证数字是最小的,这题也是用栈去解 ...
LeetCode
未读题目
20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
示例 1:
12输入:s = "()"输出:true
示例 2:
12输入:s = "()[]{}"输出:true
示例 3:
12输入:s = "(]"输出:false
提示:
1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成
思路用栈的方法去存
没数据或为奇数的直接返回空
把各个字符的对应关系存起来
用队列存数据
遍历字符串,遇到左括号入队,遇到右括号,判断栈首元素是否对应,对应即弹出队列
1234567891011121314151617 ...
上图来自https://cloud.tencent.com/developer/article/2091555
Kafka 是一个开源的分布式消息系统,它采用了一种称为“分区”和“复制”的机制来实现高可用性和可扩展性。这个选举机制主要是用来解决分布式系统中的节点故障或者新增节点时的领导者选举问题。
在 Kafka 中,每个主题(topic)都被分成多个分区(partition),每个分区都有一个领导者(leader)和多个副本(replica)。领导者负责处理来自生产者和消费者的请求,并将数据复制到副本中。当领导者节点失效时,Kafka 需要从副本中选举出一个新的领导者来接管工作,以保证系统的可用性。
Kafka 使用的选举机制是基于 ZooKeeper 实现的,通过 ZooKeeper 协调节点之间的选举过程。每个分区的副本都在 ZooKeeper 中注册了一个临时节点,领导者节点会在该节点下创建一个顺序节点,并记录自己的 ID。当节点发生故障时,剩余的节点会竞争成为新的领导者,竞争规则通常是根据节点 ID 的顺序来决定。最终,拥有最小顺序号的节点将成为新的领导者。
这个选举机制能 ...
报错描述
Caused by: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
数据除法的时候要考虑精确问题,有可能产生除不完的现象
例如:
123456public static void main(String[] args) { BigDecimal a=new BigDecimal("1"); BigDecimal b=new BigDecimal("3"); BigDecimal c=a.divide(b); System.out.println(c);}
就会报错
解决办法在divide方法里,加上保留几位,以及保留的方式,就不会报错了
123456public static void main(String[] args) { BigDecimal a=new BigDecimal(" ...