找回密码
 注册账号
置顶:如何加入2024届新生微信群

[吹水聊天] 上岸算法LeetCode Weekly Contest 291解题报告

上岸算法 回复:0 | 查看:1876 | 发表于 2022-5-4 23:06:48 |阅读模式 |复制链接

UWCSSA提醒您:

警惕网络诈骗与盗号,不要在他人发送的网站中输入密码,换汇或付款时请小心诈骗。

为了避免个人信息泄漏,建议在帖子中使用不常用的邮箱,或使用私信发送联系方式(点击对方的头像,然后“发送消息”)。

帖子通过审核只代表内容不违规,CSSA 不会验证内容的真实性。请谨防诈骗。

本帖最后由 上岸算法 于 2022-5-5 00:11 编辑
& o$ ]( W" H% |+ w& _
5 l+ U( D' I; G, U【 NO.1 移除指定数字得到的最大结果】
( D5 Q/ @  A6 x9 @) M- t/ J解题思路
% \9 i' O( m# H/ Z+ ~  m6 O# W

: P' }8 Z* n1 X  i. N可以使用 BigInteger 来比较大小。
9 F5 X/ @+ ^$ Y. A# v/ ?( S5 f3 }$ S/ e
代码展示, A# m. x+ h( S7 X1 @8 M
8 v. H+ l1 q" {; S+ r2 l

! [6 F4 r. U1 M7 f% A7 J% I& F6 ?% \; s9 J/ o) H; B
【 NO.2 必须拿起的最小连续卡牌数】
7 _& R# b, ?0 ?& Z; c5 V6 R. M4 ]: L9 V; w* O
解题思路
  F. |9 n* e; B1 t+ I; W

* I* X8 N3 V) X$ d4 L+ u题意即求相距最近的两个等值元素的距离,遍历一次,记录每个值上一次出现的位置即可。
% |% r* ?; ~+ B
) P: l1 h6 u/ ~# D7 S1 Y) R: J) K; Z代码展示1 p! }" C. r9 C8 c) }

1 Q6 {& o4 a1 X4 E1 M9 L% V
( }. [- c' q5 D" G
* |6 ~4 G. K: C" w- j【 NO.3 含最多 K 个可整除元素的子数组】' n8 i5 D' |0 i) G$ z5 Z( E
4 w2 ~4 G: ^$ l. _
解题思路
0 @9 V3 W3 ]) E- k# N  [2 m

$ Q  h+ B: e1 d  ^$ @定义一个 SubSeq 类,实现如下几个方法即可用 HashSet 统计数量。
8 L+ M/ p1 O# O
1 R* G# S' z* ^% L( \5 E! q% Q4 yhashCode 计算哈希值
6 E6 V# d7 }' f) P3 |check 检查是否满足最多有 k 个能被 p 整除的元素# f3 E4 \" }9 ~& \0 J
equals 检查是否相等. E0 N- Z' E. }+ Y. R

5 m: [& q, }: c& q代码展示/ T, B6 [9 t$ ]3 c& h/ X
" a9 {4 u  D. I7 T
& _# |. R$ @5 N4 Y9 m2 H2 ^

; b: v# ^2 Q5 J4 H【 NO.4 字符串的总引力】
6 O  r5 Q: p+ Y( l! d% e( ^% A2 K- T! C: `( d! {
解题思路
' G6 \' e) q1 U3 [9 Q. t
2 {3 W# S" ]0 z; j2 K; {
定义 f 表示以第 i 个字符结尾的子串的引力总和,再定义 pos 表示字符 i 上一次出现的位置。) h; S# {3 C* d2 G

! j& ~$ o+ y  }6 X! f6 z则有 f = f[i - 1] + (i - 1 - pos[charAt[i - 1]])
# @5 J0 v5 S/ f7 d. D9 |4 |3 l) Y/ j
因为以 i 结尾的子串中,pos[charAt[i - 1]] + 1 到 i 之间的子串都会多出一个字符 charAt[i - 1],而其他的子串的总引力与以 i - 1 结尾的子串的总引力相等。
: o7 [: d" v1 O# g7 Q8 b. }4 W- o; ]4 [# ~3 D; W
代码展示
% E9 t" l4 W9 e! ^4 s7 E  ]3 _
  k: s5 x- k( \8 ~

3 Y8 ^( ~- G: L6 X$ W

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

登录 发布 快速回复 返回顶部 返回列表