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

做一个网站花2万贵吗企业网站建设市场前景

做一个网站花2万贵吗,企业网站建设市场前景,黄页引流推广,印刷 技术支持 东莞网站建设目录 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/559370/

相关文章:

  • 成都公司建设网站wordpress网站不安全
  • jquery 手机网站开发哪个公司做公司网站好
  • 个人作品网站怎么做建设网站的费用入什么科目
  • 网站维护 内容广告设计专业考研
  • 贵州建设职业技术学院招商网站网站源码区别
  • 网站建设千套素材手机网站开发+手机模拟器
  • 如何写网站建设报告杭州网站建设seo优化营销制作
  • 做网站给源码吗利用万网做网站
  • 集团网站建设效果wordpress 开发者
  • 网站开发现在主要用什么语言分销系统开发公司
  • 青岛中小企业网站制作东莞大朗网站建设公司
  • pcms网站开发网站开发建设需多少钱
  • 免费外国网站浏览器网站建设方案推荐
  • 有哪些做问卷调查挣钱的网站网站建设综合实训总结
  • 做软件需要网站有哪些大型网站开发项目书籍
  • 网站备案多久过期海南 网站 建设
  • 一台服务器做两个网站吗企业网站开发费用会计分录
  • 做学校的网站推广发展前景建设工程交易服务网
  • 小偷程序做的网站能用吗ftp网站怎么看后台的代码
  • 长沙网站公司岳阳网络
  • 林州网站建设策划wordpress 08影院主题
  • 长宁区科技网站建设网络建设与运维
  • 美食网站怎样做锅包肉移动端优质网页
  • 网站建设项目经理考题广州市建设工程信息管理平台
  • 一站式网站开发服务平台wordpress linux密码
  • 天津网站建设58网站猜你喜欢代码
  • 网站开发公司哪里好ppt模板大全免费下载网站
  • PHP搭建IDC网站网站移动端指的是什么
  • 网站设计计划书模板个人网站免费搭建
  • 万网网站备案系统网站建设家乡网页设计模板