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

云霄县建设局网站工厂的网站在哪里做的

云霄县建设局网站,工厂的网站在哪里做的,镜像站wordpress,江苏建设厅文章目录 20 位运算20.1 【位运算】二进制求和20.2 【位运算】颠倒二进制位20.3 【位运算】位1的个数20.4 【位运算】只出现一次的数字20.5 【哈希表】【位运算】只出现一次的数字 II20.6 【位运算】数字范围按位与 21 数学21.1 【双指针】回文数21.2 【数学】加一21.3 【数学】… 文章目录 20 位运算20.1 【位运算】二进制求和20.2 【位运算】颠倒二进制位20.3 【位运算】位1的个数20.4 【位运算】只出现一次的数字20.5 【哈希表】【位运算】只出现一次的数字 II20.6 【位运算】数字范围按位与 21 数学21.1 【双指针】回文数21.2 【数学】加一21.3 【数学】阶乘后的零21.4 【二分】69. x 的平方根21.5 【快速幂】50. Pow(x, n)21.6 【暴力】直线上最多的点数 22 一维动态规划22.1 【动态规划】爬楼梯22.2 【动态规划】打家劫舍22.3 【动态规划】单词拆分22.4 【动态规划】零钱兑换22.5 【动态规划】【二分】最长递增子序列 23 多维动态规划23.1 【动态规划】三角形最小路径和23.2 【动态规划】最小路径和23.3 【动态规划】不同路径 II23.4 【动态规划】最长回文子串23.5 【动态规划】交错字符串23.6 【动态规划】编辑距离23.7 【三维dp】买卖股票的最佳时机 III23.8 【三维dp】买卖股票的最佳时机 IV23.9 【二维dp】最大正方形 20 位运算 20.1 【位运算】二进制求和 题目地址https://leetcode.cn/problems/add-binary/description/?envTypestudy-plan-v2envIdtop-interview-150 按位逆序运算。 class Solution:def addBinary(self, a: str, b: str) - str:la,lb len(a)-1,len(b)-1ans flag 0while la0 or lb0:num_a 1 if (la0 and a[la]1) else 0num_b 1 if (lb0 and b[lb]1) else 0cur num_a num_b flagif cur 1:cur cur-2flag 1else:flag 0ans str(cur)if la0:la - 1if lb0:lb - 1if flag:ans 1ans ans[::-1]return ans20.2 【位运算】颠倒二进制位 题目地址https://leetcode.cn/problems/reverse-bits/description/?envTypestudy-plan-v2envIdtop-interview-150 详见代码。 class Solution:def reverseBits(self, n: int) - int:ans 0for i in range(32):ans ans 1ans n 1n n 1return ans20.3 【位运算】位1的个数 题目地址https://leetcode.cn/problems/number-of-1-bits/description/?envTypestudy-plan-v2envIdtop-interview-150 详见代码。 class Solution:def hammingWeight(self, n: int) - int:ans 0for i in range(32):if n 1 :ans 1n n 1return ans20.4 【位运算】只出现一次的数字 题目地址https://leetcode.cn/problems/single-number/description/?envTypestudy-plan-v2envIdtop-interview-150 异或操作。 class Solution:def singleNumber(self, nums: List[int]) - int:ans 0for n in nums:ans ans ^ nreturn ans20.5 【哈希表】【位运算】只出现一次的数字 II 题目地址https://leetcode.cn/problems/single-number-ii/description/?envTypestudy-plan-v2envIdtop-interview-150 方法一哈希表 方法二模3运算 # 方法一哈希表 class Solution:def singleNumber(self, nums: List[int]) - int:ht {}for n in nums:if n in ht:ht[n] 1else:ht[n] 1for h in ht:if ht[h] 1:return h # 方法二模3运算 class Solution:def singleNumber(self, nums: List[int]) - int:a,b 0,0for n in nums:b (b^n)(~a)a (a^n)(~b)return b20.6 【位运算】数字范围按位与 题目地址https://leetcode.cn/problems/bitwise-and-of-numbers-range/description/?envTypestudy-plan-v2envIdtop-interview-150 找公共前缀。 class Solution:def rangeBitwiseAnd(self, left: int, right: int) - int:t 0while left right:left left 1right right 1t 1return left t21 数学 21.1 【双指针】回文数 题目地址https://leetcode.cn/problems/palindrome-number/description/?envTypestudy-plan-v2envIdtop-interview-150 将数字的每一位取出来然后双指针前后分别判断是否相等。 class Solution:def isPalindrome(self, x: int) - bool:if x 0:return Falsenum []while x0:n x % 10num.append(n)x x // 10left,right 0,len(num)-1while left right:if num[left] ! num[right]:return Falseleft 1right - 1return True21.2 【数学】加一 题目地址https://leetcode.cn/problems/plus-one/description/?envTypestudy-plan-v2envIdtop-interview-150 详见代码。 class Solution:def plusOne(self, digits: List[int]) - List[int]:l len(digits)t 1for i in range(l-1,-1,-1):digits[i] digits[i] tif digits[i] 9:digits[i] - 10t 1else:t 0if t 1:return [1]digitselse:return digits21.3 【数学】阶乘后的零 题目地址https://leetcode.cn/problems/factorial-trailing-zeroes/description/?envTypestudy-plan-v2envIdtop-interview-150 统计因子中5的个数即可。 class Solution:def trailingZeroes(self, n: int) - int:ans 0while n0:n n//5ans nreturn ans21.4 【二分】69. x 的平方根 题目地址https://leetcode.cn/problems/sqrtx/description/?envTypestudy-plan-v2envIdtop-interview-150 二分查找。 class Solution:def mySqrt(self, x: int) - int:left,right 0,x1while left right:m (leftright)//2if m*m x:return melif m*m x:left m1else:right mreturn left-121.5 【快速幂】50. Pow(x, n) 题目地址https://leetcode.cn/problems/powx-n/description/?envTypestudy-plan-v2envIdtop-interview-150 快速幂。 class Solution:def myPow(self, x: float, n: int) - float:if x 0.0:return 0.0ans 1if n 0:x,n 1/x,-nwhile n:if n 1:ans * xx * xn n 1return ans21.6 【暴力】直线上最多的点数 题目地址https://leetcode.cn/problems/max-points-on-a-line/description/?envTypestudy-plan-v2envIdtop-interview-150 详见代码。 class Solution:def maxPoints(self, points: List[List[int]]) - int:n, ans len(points), 1for i, x in enumerate(points):for j in range(i 1, n):y points[j]cnt 2for k in range(j 1, n):p points[k]s1 (y[1] - x[1]) * (p[0] - y[0])s2 (p[1] - y[1]) * (y[0] - x[0])if s1 s2: cnt 1ans max(ans, cnt)return ans22 一维动态规划 22.1 【动态规划】爬楼梯 题目地址https://leetcode.cn/problems/climbing-stairs/?envTypestudy-plan-v2envIdtop-interview-150 斐波那契数列求值。 class Solution:def climbStairs(self, n: int) - int:if n 1:return 1dp_0,dp_1 1,1ans 0for i in range(2,n1):ans dp_0 dp_1dp_0,dp_1 dp_1,ansreturn ans22.2 【动态规划】打家劫舍 题目地址https://leetcode.cn/problems/house-robber/description/?envTypestudy-plan-v2envIdtop-interview-150 利用动态规划首先定义数组 d p [ i ] [ 2 ] dp[i][2] dp[i][2]状态转移如下所示 d p [ i ] [ 0 ] dp[i][0] dp[i][0]表示第 i i i家不被偷则前一家可能被偷也可能没有被偷取最大值即可 d p [ i ] [ 1 ] dp[i][1] dp[i][1]表示第 i i i家被偷则前一家一定没有被偷所以为 d p [ i − 1 ] [ 0 ] n u m s [ i ] dp[i-1][0]nums[i] dp[i−1][0]nums[i]。 最后在第 i i i家的时候取被偷和未被偷之间的最大值即可。 class Solution:def rob(self, nums: List[int]) - int:n len(nums)dp_0,dp_1 0,nums[0]for i in range(1,n):last_0 dp_0dp_0 max(dp_0,dp_1)dp_1 last_0 nums[i]return max(dp_0,dp_1)22.3 【动态规划】单词拆分 题目地址https://leetcode.cn/problems/word-break/description/?envTypestudy-plan-v2envIdtop-interview-150 将 w o r d D i c t wordDict wordDict中的单词看成一个个的跳跃长度代表如果首字母匹配上了一步可以跳多远那么最远的距离就是 T r u e True True最后只需查看满足了所有跳跃规则之后能否到达字符串 s s s的末尾即可。 class Solution:def wordBreak(self, s: str, wordDict: List[str]) - bool:l len(s)dp [False]*(l1)dp[0] Truefor i in range(l1):if dp[i]:for j in range(i1,l1):if s[i:j] in wordDict:dp[j] Truereturn dp[-1]22.4 【动态规划】零钱兑换 题目地址https://leetcode.cn/problems/coin-change/description/?envTypestudy-plan-v2envIdtop-interview-150 动态规划题目的基本做题策略 确定 d p dp dp数组以及下标的含义 d p [ j ] dp[j] dp[j]为凑齐总额为j的钱币的最小次数确定递推公式 d p [ j ] m i n ( d p [ j ] , d p [ j − c o i n ] 1 ) dp[j] min(dp[j],dp[j-coin]1) dp[j]min(dp[j],dp[j−coin]1) d p dp dp数组如何初始化 d p [ 0 ] dp[0] dp[0]为 0 0 0剩下的初始化为最大钱币金额 1 1 1确定遍历顺序。 class Solution:def coinChange(self, coins: List[int], amount: int) - int:dp [amount1]*(amount1)dp[0] 0for j in range(1,amount1):for coin in coins:if j coin:dp[j] min(dp[j],dp[j-coin]1)if dp[amount] amount1:return dp[amount]else:return -122.5 【动态规划】【二分】最长递增子序列 题目地址https://leetcode.cn/problems/longest-increasing-subsequence/description/?envTypestudy-plan-v2envIdtop-interview-150 方法一动态规划构造 d p [ i ] dp[i] dp[i]表示 i i i索引为序列末尾元素的最长序列长度。 方法二二分查找维护一个递增序列 a r r arr arr遍历时取小的放入序列中最后返回序列长度。 # 动态规划 class Solution:def lengthOfLIS(self, nums: List[int]) - int:l len(nums)dp [1]*ldp_max 1for i in range(1,l):for j in range(0,i):if nums[j] nums[i]:dp[i] max(dp[i],dp[j]1)dp_max max(dp_max,dp[i])return dp_max# 二分查找 class Solution:def lengthOfLIS(self, nums: List[int]) - int:arr [0]*len(nums)ans 0for num in nums:left,right 0,answhile left right:mid (leftright) // 2if arr[mid] num:left mid 1else:right midarr[left] numif right ans:ans 1return ans23 多维动态规划 23.1 【动态规划】三角形最小路径和 题目地址https://leetcode.cn/problems/triangle/description/?envTypestudy-plan-v2envIdtop-interview-150 自底向上进行动态规划每次都选择下一层的 k k k和 k 1 k1 k1之间最小的数与该层的数相加最后返回 d p [ 0 ] dp[0] dp[0]即可。 class Solution:def minimumTotal(self, triangle: List[List[int]]) - int:l len(triangle)dp [0]*lfor i in range(len(triangle[-1])):dp[i] triangle[-1][i]for j in range(l-2,-1,-1):for k in range(j1):dp[k] min(dp[k],dp[k1]) triangle[j][k]return dp[0]23.2 【动态规划】最小路径和 题目地址https://leetcode.cn/problems/minimum-path-sum/description/?envTypestudy-plan-v2envIdtop-interview-150 每次遍历时找出两个步骤的最小值然后相加也是自顶向下的思路。 class Solution:def minPathSum(self, grid: List[List[int]]) - int:row len(grid)col len(grid[0])for i in range(1,col):grid[0][i] grid[0][i-1]for j in range(1,row):grid[j][0] grid[j-1][0]for i in range(1,row):for j in range(1,col):grid[i][j] min(grid[i][j-1],grid[i-1][j])return grid[row-1][col-1]23.3 【动态规划】不同路径 II 题目地址https://leetcode.cn/problems/unique-paths-ii/description/?envTypestudy-plan-v2envIdtop-interview-150 计算可以走到每个格子的路线数最后相加。 class Solution:def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) - int:row len(obstacleGrid)col len(obstacleGrid[0])dp [[0]*col for _ in range(row)]for i in range(row):for j in range(col):if not obstacleGrid[i][j]:if i j 0:dp[i][j] 1else:up dp[i-1][j] if i0 else 0left dp[i][j-1] if j0 else 0dp[i][j] up leftreturn dp[-1][-1]23.4 【动态规划】最长回文子串 题目地址https://leetcode.cn/problems/longest-palindromic-substring/description/?envTypestudy-plan-v2envIdtop-interview-150 d p [ i ] [ j ] dp[i][j] dp[i][j]表示 s [ i : j 1 ] s[i:j1] s[i:j1]是否为回文子串状态转移的思路是如果 d p [ i 1 ] [ j − 1 ] dp[i1][j-1] dp[i1][j−1]为 T r u e True True并且 s [ i ] s [ j ] s[i]s[j] s[i]s[j]的话那么 d p [ i ] [ j ] dp[i][j] dp[i][j]也为 T r u e True True在每个为 T r u e True True的情况下记录此时字符串的长度同时更新初始坐标最后选择最长的子串即可。 class Solution:def longestPalindrome(self, s: str) - str:l len(s)dp [[0]*l for _ in range(l)]max_len 1start 0for j in range(1,l):for i in range(j):# (j-1)-(i1) 0if j-i 2:if s[i] s[j]:dp[i][j] 1cur_len j-i1else:if s[i] s[j] and dp[i1][j-1]:dp[i][j] 1cur_len j-i1if dp[i][j] and cur_len max_len:max_len cur_lenstart ireturn s[start:startmax_len]23.5 【动态规划】交错字符串 题目地址https://leetcode.cn/problems/interleaving-string/description/?envTypestudy-plan-v2envIdtop-interview-150 d p [ i ] [ j ] dp[i][j] dp[i][j]表示 s 1 s_1 s1​的前 i i i个字符和 s 2 s2 s2的前 j j j个字符能否构成 s 3 s3 s3的前 i j ij ij个字符。 class Solution:def isInterleave(self, s1: str, s2: str, s3: str) - bool:l1 len(s1)l2 len(s2)l3 len(s3)if l1 l2 ! l3:return Falsedp [[False]*(l21) for _ in range(l11)]dp[0][0] Truefor i in range(1,l11):dp[i][0] (dp[i-1][0] and s1[i-1]s3[i-1])for i in range(1,l21):dp[0][i] (dp[0][i-1] and s2[i-1]s3[i-1])for i in range(1,l11):for j in range(1,l21):dp[i][j] (dp[i-1][j] and s1[i-1]s3[ij-1]) or (dp[i][j-1] and s2[j-1]s3[ij-1])return dp[-1][-1]23.6 【动态规划】编辑距离 题目地址https://leetcode.cn/problems/edit-distance/description/?envTypestudy-plan-v2envIdtop-interview-150 详见代码注释。 class Solution:def minDistance(self, word1: str, word2: str) - int:l1 len(word1)l2 len(word2)# 初始化dpdp[i][j]表示从word1[:i]到word2[:j]所需要转换的次数dp [[0]*(l21) for _ in range(l11)]# 此时word2为空则word1需要转换的次数为此时的长度for i in range(l11):dp[i][0] i# 此时word2为空则word1需要转换的次数为此时的长度for j in range(l21):dp[0][j] j# 首先判断i和j索引处的字符是否相同如果相同则dp[i][j]dp[i-1][j-1]# 否则不管是删除还是替换都会在之前的基础上改变一位字符# 则dp[i][j]min(dp[i-1][j-1],dp[i-1][j],dp[i][j-1])1for i in range(1,l11):for j in range(1,l21):if word1[i-1] word2[j-1]:dp[i][j] dp[i-1][j-1]else:dp[i][j]min(dp[i-1][j-1],dp[i-1][j],dp[i][j-1])1return dp[-1][-1]23.7 【三维dp】买卖股票的最佳时机 III 题目地址https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iii/description/?envTypestudy-plan-v2envIdtop-interview-150 详见代码注释。 class Solution:def maxProfit(self, prices: List[int]) - int:l len(prices)# dp[第几天][是否持有股票][已经卖了几次股票]dp [[[0,0,0],[0,0,0]] for _ in range(l)]# 第一天初始化dp[0][0][0] 0dp[0][0][1] -float(inf)dp[0][0][2] -float(inf)dp[0][1][0] -prices[0]dp[0][1][1] -float(inf)dp[0][1][2] -float(inf)# 接下来几天状态更新for i in range(1,l):# 未持有股票已经卖了0次股票dp[i][0][0] 0# 未持有股票已经卖了1次股票可能是今天卖的也可能是前几天卖的dp[i][0][1] max(dp[i-1][1][0]prices[i],dp[i-1][0][1])# 未持有股票已经卖了2次股票可能是今天卖的也可能是前几天卖的dp[i][0][2] max(dp[i-1][1][1]prices[i],dp[i-1][0][2])# 已持有股票已经卖了0次股票可能是今天买的也可能是前几天买的dp[i][1][0] max(dp[i-1][0][0]-prices[i],dp[i-1][1][0])# 已持有股票已经卖了1次股票可能是今天买的也可能是前几天买的dp[i][1][1] max(dp[i-1][0][1]-prices[i],dp[i-1][1][1])# 已持有股票已经卖了2次股票dp[i][1][2] -float(inf)return max(dp[l-1][0][1],dp[l-1][0][2],0)23.8 【三维dp】买卖股票的最佳时机 IV 题目地址https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iv/description/?envTypestudy-plan-v2envIdtop-interview-150 详见代码注释。 class Solution:def maxProfit(self, k: int, prices: List[int]) - int:# dp[第几天][已经完成几笔交易][是否持股]l len(prices)dp [[[0]*2 for _ in range(k1)] for _ in range(l)]for i in range(1,k1):dp[0][i][1] -prices[0]for i in range(1,l):for j in range(1,k1):# 未持股今天卖掉了或者昨天也未持股dp[i][j][0] max(dp[i-1][j][1]prices[i],dp[i-1][j][0])# 持股今天买入股票或者昨天持股dp[i][j][1] max(dp[i-1][j-1][0]-prices[i],dp[i-1][j][1])return dp[l-1][k][0]23.9 【二维dp】最大正方形 题目地址https://leetcode.cn/problems/maximal-square/submissions/515490547/?envTypestudy-plan-v2envIdtop-interview-150 详见代码注释。 class Solution:def maximalSquare(self, matrix: List[List[str]]) - int:max_length 0row len(matrix)col len(matrix[0])# dp[i][j]表示matrix[:i][:j]的正方形最大边长dp [[0]*(col1) for _ in range(row1)]# 状态转移为在左、上、左上中取最小值1因为需要保证正方形内所有元素均为1for i in range(1,row1):for j in range(1,col1):if matrix[i-1][j-1] 1:dp[i][j] min(dp[i-1][j],dp[i][j-1],dp[i-1][j-1]) 1max_length max(max_length,dp[i][j])return max_length*max_length
http://www.pierceye.com/news/859026/

相关文章:

  • 电商网站可以用dw做嘉兴网站建设平台
  • 做网站是数据库应该放在哪里建筑工程水平防护网
  • vps网站无法通过ip访问网站怎么做的支付宝接口
  • 怎么创建一个博客网站网站的c4d动画是怎么做的
  • 西安做企业网站科技论文发表网
  • html 手机网站开发企业做网站的合同
  • 建立wordpress网站吗全州建设完小网站
  • 网站域名注册证书是什么制作WordPress友情链接
  • 如何在解决方案中新建网站html网页制作的软件下载
  • 企业网站怎么做优化开小加工厂去哪接单子
  • 网站建设推广费怎么做账域名和网站绑定
  • 商丘网站建设想象力网络中国流量最大的网站排行
  • 网站是否有备案网站集约化建设建议
  • 浏览器收录网站网上做图赚钱的网站
  • 网站建设优化过程中的优化策略相关文章 wordpress
  • 泉州网站深圳航空公司官网首页
  • 百度推广整体优化网站整体软装设计公司
  • 太原搜索引擎优化招聘信息服务好的镇江网站优化
  • 自己做网站下载怎么网站基础知识域名5个点
  • 网站搭建合作协议wordpress注册页面插件
  • 网络公司最好的是哪个兰州网络推广优化怎样
  • 网站文章采集工具新网站怎么做流畅
  • discuz 手机网站模板山东省住房建设厅网站首页
  • 网站建设违约责任条款枣庄专业做网站
  • python做爬虫和做网站做两个一摸一样的网站
  • 网站做微信登录asp.net做网站头部和尾部_都用什么来实现
  • 南充哪里做网站太原关键词优化公司
  • 哪个网站做的ppt模板好投放广告网站
  • 公司网站中新闻中心怎样做优化百度浏览器电脑版
  • 厦门网站建设 九来外国做视频在线观看网站