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

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

上岸算法 回复:0 | 查看:1228 | 发表于 2022-5-23 20:41:34 |阅读模式 |复制链接

UWCSSA提醒您:

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

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

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

【 NO.1 字母在字符串中的百分比】- L5 {4 Z) Y" w

4 t$ Y5 L# }( D* P7 v5 e# g6 Q解题思路

+ s- D5 ]8 I* ]5 u
/ \( C' e. p, P: S0 x签到题,循环统计即可。
/ W# P" U+ c9 A. c/ W0 w- U% M: o$ D$ D
代码展示% g  v2 O0 G8 W: @$ L' o1 v& L+ R7 f

4 ~8 U" W2 c) e. r2 [. I1 Q6 @; e! S; h' O+ n; ?
【 NO.2 装满石头的背包的最大数量】" q1 u& |" V" P6 e; v

5 d; x6 L1 ~! C3 Z7 s9 J2 ]* t% o解题思路

) x7 N" Q! X+ D' v
/ d: q& q" K  ~7 n9 H6 P贪心,先装容易装满的。
3 F* l" j3 O' w' x( m  N8 @' e. g5 z0 ?1 S0 @/ A7 X8 Z& b0 z2 I$ j5 x0 U
代码展示, m2 M+ Q1 P- f' c- l( f- Q

6 t& a3 g1 \7 s3 e0 h" F. C' [9 ]; B6 y. j0 N% Y4 t
【 NO.3 表示一个折线图的最少线段数】$ u# ^9 @% o# P

2 w7 B/ b2 g7 O# [0 C解题思路

0 J2 Q  J) P, n0 L: {8 d( a
- B& C' `  M7 ?" f" U4 \6 w4 b横坐标之差除以纵坐标之差即斜率,相邻两对点之间如果斜率相同,那么就可以用一条折线表示。
2 J" k: k0 N0 K" f3 n! @2 E) Z! U5 r8 h1 w: Y" K" t
代码展示
$ H, d5 N0 G9 e( Y$ h" {  I- D5 g" ]- z- X# b# D: ]' `

5 i% k8 g, v" y$ L& r1 ^! F【 NO.4 巫师的总力量和】% t" V9 \! M& b5 }' }) i% `* v; {
" S" {% \" F  e( a4 T, l
解题思路
: B5 r1 x( J+ s4 W" l
. m6 B4 B; h2 e$ F! `: A9 h: O
前缀和 + TreeSet. 依次求出每个巫师作为最弱巫师时贡献的乘积。
6 L) k+ {* G1 b# t% h$ R" S* f. F6 w, J" Z: ]0 P
当一个巫师作为最弱巫师时,他能贡献的乘积就是左右两侧比他更弱的巫师之间的这段数组的所有包含他自己的子数组。+ l0 ~8 C* f; t

% Y  W# H) q9 t- i/ M可以利用 TreeSet 快速找到一个巫师左右两侧距离他最近的比他弱的巫师;然后利用前缀和求出所有这些子数组的和。3 a3 S) W0 ~8 ?8 u- r, }: ~! N* k
$ i2 s0 t  {* z( r# H! S3 Q8 K1 h
代码展示
7 M9 J2 n/ b; b2 v
3 D  C5 |! p; V0 Y: c! g6 i0 Y8 r. @3 B4 R

本帖子中包含更多资源

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

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

本版积分规则

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