设置一个vip隐私,夹杂一些碎碎念......涉及到一些转自其他佬的题解
🚩flag为留存,等技术强硬再钻一把......
本章记录python算法与动态规划的相关习题
2024.4.9
101.更小的数
这题题解太抽象了,暴力20%,题解短短几行直接解决,但是依然超时40%,没找到100python,有些是pypy3没整(一样的代码python依然40%)。但dp思路还是可以学学的
不需要调换顺序,直接比对是s[i]和s[j]即可,用k来表示间隔数目--即理论上的倒叙范围,更神奇的是当相同时比对s[i+1]和s[j-1](因为j是需要倒叙的数,故比较第二位即相当于在原数字后退一位。 更小的数
s = input()
dp = [[0] * 5010 for _ in range(5010)]
ans = 0
for k in range(1, len(s)):
for i in range(len(s) - k):
j = i + k
if s[i] > s[j]: dp[i][j] = 1
if s[i] < s[j]: dp[i][j] = 0
if s[i] == s[j]: dp[i][j] = dp[i + 1][j - 1]
if dp[i][j] == 1: ans += 1
print(ans)
先跳一个,回头来dp