当前位置: 首页 > news >正文

建立网站商店自己的服务器做网站要备案

建立网站商店,自己的服务器做网站要备案,广州网站建设全包,nodejs做网站能保护源代码吗目录 100296. 两个字符串的排列差 原题链接 思路分析 AC代码 100274. 从魔法师身上吸取的最大能量 原题链接 思路分析 AC代码 100281. 矩阵中的最大得分 原题链接 思路分析 AC代码 100312. 找出分数最低的排列 原题链接 思路分析 AC代码 100296. 两个字符串的排…

目录

100296. 两个字符串的排列差

原题链接

思路分析

AC代码

100274. 从魔法师身上吸取的最大能量

原题链接

思路分析

AC代码

100281. 矩阵中的最大得分

原题链接

思路分析

AC代码

100312. 找出分数最低的排列

原题链接

思路分析

AC代码


100296. 两个字符串的排列差

原题链接

两个字符串的排列差 - 力扣 (LeetCode) 竞赛

思路分析

签到题,两次遍历搞定

AC代码

class Solution:def findPermutationDifference(self, s: str, t: str) -> int:mp = dict()res = 0for i, x in enumerate(s):mp[x] = ifor i, x in enumerate(t):res += abs(i - mp[x])return res

100274. 从魔法师身上吸取的最大能量

原题链接

从魔法师身上吸取的最大能量 - 力扣 (LeetCode) 竞赛

思路分析

记忆化搜索

dfs(0)代表从0出发的最大能量,记忆化剪枝保证每个结点只走一次

时间复杂度O(n)

AC代码

class Solution:def maximumEnergy(self, energy: List[int], k: int) -> int:n = len(energy)@cache def dfs(x: int) -> int:if x >= n:return 0return energy[x] + dfs(x + k)return max(dfs(i) for i in range(n))

100281. 矩阵中的最大得分

原题链接

矩阵中的最大得分 - 力扣 (LeetCode) 竞赛

思路分析

典中典网格上递推,为了拼手速还是用的记忆化搜索

不过注意起点特判,可以在递归函数里面多加个bool参数

时间复杂度O(n^2)

AC代码

class Solution:def maxScore(self, g: List[List[int]]) -> int:m, n = len(g), len(g[0])@cachedef dfs(x: int, y: int, lim: bool):if x >= m or y >= n:return 0ret = -inf if lim else 0if x + 1 < m:ret = max(ret, g[x + 1][y] - g[x][y] + dfs(x + 1, y, False))if y + 1 < n:ret = max(ret, g[x][y + 1] - g[x][y] + dfs(x, y + 1, False))return retreturn max(dfs(i, j, True) for j in range(n) for i in range(m))

100312. 找出分数最低的排列

原题链接

找出分数最低的排列 - 力扣 (LeetCode) 竞赛

思路分析

看得出数据很弱啊,全排列+最优性剪枝就过了

就是全排列的暴搜,然后如果当前已经比最优解更差了就剪枝

时间复杂度:阶乘级别带剪枝的就不分析了


2024.5.1214:30

回看这道题发现就是状压dp求哈密顿回路板子题,而且起点一定是0,任何解可以轮转到0为起点

那么时间复杂度就是O(2^n * n)

AC代码

暴力

class Solution:def findPermutation(self, nums: list[int]) -> list[int]:n = len(nums)mi = n * nret = []path = []st = set()def dfs(res: int, s: int) -> None:nonlocal mi, path, ret, st# print(path, s, mi, res)if s >= mi:returnif (not res) and s + abs(path[-1] - nums[path[0]]) < mi:mi = s + abs(path[-1] - nums[path[0]])ret = path.copy()# print(ret, s)returnfor i in range(n):if not (i in st):path.append(i)st.add(i)t = 0 if res == n else abs(nums[path[-1]] - path[-2])dfs(res - 1, s + t)path.pop()st.remove(i)dfs(n, 0)return ret

状压dp

class Solution:def findPermutation(self, nums: List[int]) -> List[int]:n = len(nums)g = [[0] * n for _ in range(n)]for i in range(n):for j in range(n):g[i][j] = abs(i - nums[j])f = [[inf] * n for _ in range(1 << n)]ans = [["" + chr(ord('a') + n) * n] * n for _ in range(1 << n)]f[1][0] = 0ans[1][0] = "a"for i in range(1, 1 << n):if i & 1:for j in range(n):if i >> j & 1:for k in range(n):if i >> k & 1:t = f[i ^ (1 << j)][k] + g[k][j]s = ans[i ^ (1 << j)][k] + chr(ord('a') + j)if t < f[i][j]:f[i][j] = tans[i][j] = selif t == f[i][j] and s < ans[i][j]:ans[i][j] = smi = infret = str(n) * nfor i in range(1, n):t = f[(1 << n) - 1][i] + g[i][0]if t < mi:mi = f[(1 << n) - 1][i] + g[i][0]ret = ans[(1 << n) - 1][i]elif t == mi and ans[(1 << n) - 1][i] < ret:ret = ans[(1 << n) - 1][i]return [ord(x) - ord('a') for x in ret]

http://www.yayakq.cn/news/446225/

相关文章:

  • 自己做网站需要备份么wordpress基础安装教程
  • wordpress 4.9 站群江苏建设工程信息网一体化平台官网
  • 网站备案 山东核验点工程公司注册经营范围
  • 威海市文登区城乡建设局网站秀山网站建设端午节手抄报获奖
  • 视频网站开发书籍vs做的网站如何
  • 网站建设做什么好上海发布首页
  • 做网站如何计算工资网站建设寻求
  • 网站做推广要备案吗一般ps做网站大小多少
  • 科普网站建设经验2022创业好项目
  • 网站设计服务百度wordpress插件下载
  • 珠海网站建设易搜互联wordpress建站教程 贴吧
  • 织梦dede网站后台被挂黑链怎么办网站推广现状
  • 博客网站推广湖南平台网站建设企业
  • 免费在线观看韩国电视剧网站推荐网站的导航栏怎么做的
  • 域名注册网站便宜创意海报设计
  • 广州网站建设公司有哪些wordpress优质插件
  • 个人电子商务网站 制作做内部优惠券网站赚钱吗
  • 许昌城乡建设局网站wordpress机器人抓取
  • 网站建设工作总结报告南通高端网站
  • 在线教育网站怎样建设龙口网站制作
  • 建设网站需要什么样的服务器建设招聘网站
  • 信息管理网站开发实验报告加强网站微信公众号平台建设
  • 网站服务器备案查询网站资兴网站建设
  • 多肉建设网站的目的及功能定位做网页课件的网站
  • 建设食品网站建设网站硬件需要
  • 深圳网站优化团队网站建设的宗旨
  • 互联网时代 网站建设佛山建网站公司哪家好
  • 在哪人网站要以接it项目做男男做爰视频网站
  • 好大夫官方网站网上预约挂号搜索百度网页版
  • 网站建设可以使用模板么网站策划运营方案