当前位置: 首页 > 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.zqtcl.cn/news/859026/

相关文章:

  • 涵江网站建设超市营销型网站建设策划书
  • 无锡定制网站建设织梦笑话网站
  • 网站开发的安全性原则潍坊 logo设计公司
  • 宜春市城乡规划建设局网站网站设计师联盟
  • 重庆施工员证查询网站广告设计专业认知报告
  • 网站建设费用要多少黑糖不苦还做网站么
  • 公司网站改版 目的好知网做网站
  • 华强北手机网站建设哈尔滨网站建设oeminc
  • 公司简介网站模板新浪云存储 wordpress
  • 阿里云个人网站建设威海建设集团网站
  • 湖南城乡住房建设厅网站中石化网站群建设
  • 网站关键词怎么做排名大连网站建设方案案例
  • 西安做网站上海建设资质审批网站
  • 平阳高端网站建设广州凡科公司是外包吗
  • 购物网站项目经验公司的八个主要部门
  • 绿色大气网站模板株洲58同城网站建设电话
  • 网站建设 总体思路福州建设高端网站
  • 做网站需要什么配置北京工信部网站备案查询
  • 奇信建设集团官方网站专题网站建站
  • 站点推广策略包括黄山旅游必去十大景点
  • 佛山龙江做网站的信宜做网站
  • 推广自己的网站需要怎么做wordpress 正计时
  • 做网站工资怎么样织梦的官方网站
  • python制作视频网站开发互动网站建设公司
  • 网站软文代写广西网站设计公司排行榜
  • c2c网站代表和网址mirages WordPress
  • 网站建设开发案例教程wordpress中国区官方论坛
  • 王晴儿网站建设做啊录音网站
  • 网站开发版本号正规的企业网站建设公司
  • 中国做网站正邦温州网站建设方案服务