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

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

上岸算法 回复:0 | 查看:1150 | 发表于 2022-5-30 17:23:18 |阅读模式 |复制链接

UWCSSA提醒您:

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

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

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

【 NO.1 重排字符形成目标字符串】  H$ H6 V4 `# g& d. S
" @: b- \% r' w% P; i: K: z3 w
解题思路
# Y( z# j3 x4 U( g. j- y' a+ Q
3 l2 ?3 ~, N5 t" v8 M
统计每种字符的数量,原字符串和目标字符串的对应字符数量之比的最小值即答案。
/ }9 z- y1 S1 [+ x3 g( \: ~8 T+ m! C! H# T) P0 j3 {
代码展示
9 t2 X# m0 A, ~- r# l- o' E2 I7 u+ J0 D7 G1 |! v3 y% k
8 [; b3 q) `& `9 O/ V8 n) S

9 z* b0 y! ]5 U【 NO.2 价格减免】
7 |( K- J0 W' {2 s# O( Q9 E
) r2 C6 E5 T0 D0 j2 v解题思路
" O' z* v7 J- H% G/ k  X$ x
' [  |$ q" Z" s0 X7 |
按照题意要求解析字符串、计算即可。注意一个 corner case: 单一个 $ 也是单词。
9 b( T$ d4 V  N/ u0 Y+ d  W8 E; o( V1 r: y# m1 o: W# T) Q
代码展示4 s* {% P- t; H0 }& V4 h
5 F3 V/ Q4 c' Z/ Q# T% Y

4 Z. ~1 f& B4 n* p3 z
$ n/ G# a$ E8 `# ?4 N! u6 c+ b' o8 h【 NO.3 使数组按非递减顺序排列】
! G/ k7 Z& C- l) P/ I+ ]1 \- g9 G% c9 ~- A! M
解题思路( ^  u+ X6 `% X0 ]- N5 h' N
2 Z* y0 Q" _4 Q
动态规划 + 单调栈。
9 N: {, D' D& A% G) _4 v
( T  N. M, F0 f4 s  Z设 dp 表示将 i 移除需要操作多少次,若 i 最终不会被移除则 dp = inf。
7 T) \8 G2 G$ q" s9 Q  W0 q3 T7 f( l
9 i, N8 ~. ~, @' F9 a# E9 S维护一个单调递减的栈,当前元素入栈时,会有一些元素 (假设为 X) 被它弹出。
; \. Y/ V) F4 |- Z7 A
  Z/ `9 v' m# q( ?% g若当前元素入栈前所有元素都会被弹出,说明这个元素就是最大的,不会被删除。否则,它最终将会被当时的栈顶删除,而具体会在第几次被删除,取决于 X 需要经过多少轮才被删除,取 max{dp[x]}。5 Z3 l2 m" `* i# K- @" p! [

, ?0 f* }8 L3 [: d9 s代码展示8 }% f. o3 Z& \

! P3 w! G2 ^8 X5 L, E
+ o& q* t5 h# g- i( ]! @9 w) w% A% u- [
【 NO.4 到达角落需要移除障碍物的最小数目】: N8 D6 c: L- U) N& C: \9 N

0 ?6 L( w2 [" q# E2 e' N解题思路; Q: r3 a! C, l" Y

! S  H* p8 Q. W6 {. d最短路。每两个相邻的点之间连边,如果目标点为障碍物,则边权为 1,否则为 0。用 dijkstra 算法求最短路即可。! w2 h, k1 Y0 ]

) [9 I: a0 X* o. x% h代码展示
* M0 T* u( u. I9 \1 w/ n$ Z

本帖子中包含更多资源

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

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

本版积分规则

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