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

诸城网站建设公司/刷推广软件

诸城网站建设公司,刷推广软件,黄山旅游最佳路线安排,无锡大型网站建设公司文章目录 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 【哈希表】【位运算】只出现一次的数字 II
        • 20.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 【动态规划】不同路径 II
        • 23.4 【动态规划】最长回文子串
        • 23.5 【动态规划】交错字符串
        • 23.6 【动态规划】编辑距离
        • 23.7 【三维dp】买卖股票的最佳时机 III
        • 23.8 【三维dp】买卖股票的最佳时机 IV
        • 23.9 【二维dp】最大正方形

20 位运算

20.1 【位运算】二进制求和

题目地址:https://leetcode.cn/problems/add-binary/description/?envType=study-plan-v2&envId=top-interview-150

  按位逆序运算。

class Solution:def addBinary(self, a: str, b: str) -> str:la,lb = len(a)-1,len(b)-1ans = ""flag = 0while la>=0 or lb>=0:num_a = 1 if (la>=0 and a[la]=="1") else 0num_b = 1 if (lb>=0 and b[lb]=="1") else 0cur = num_a + num_b + flagif cur > 1:cur = cur-2flag = 1else:flag = 0ans += str(cur)if la>=0:la -= 1if lb>=0:lb -= 1if flag:ans += "1"ans = ans[::-1]return ans
20.2 【位运算】颠倒二进制位

题目地址:https://leetcode.cn/problems/reverse-bits/description/?envType=study-plan-v2&envId=top-interview-150

  详见代码。

class Solution:def reverseBits(self, n: int) -> int:ans = 0for i in range(32):ans = ans << 1ans += n & 1n = n >> 1return ans
20.3 【位运算】位1的个数

题目地址:https://leetcode.cn/problems/number-of-1-bits/description/?envType=study-plan-v2&envId=top-interview-150

  详见代码。

class Solution:def hammingWeight(self, n: int) -> int:ans = 0for i in range(32):if n & 1 :ans += 1n = n >> 1return ans
20.4 【位运算】只出现一次的数字

题目地址:https://leetcode.cn/problems/single-number/description/?envType=study-plan-v2&envId=top-interview-150

  异或操作。

class Solution:def singleNumber(self, nums: List[int]) -> int:ans = 0for n in nums:ans = ans ^ nreturn ans
20.5 【哈希表】【位运算】只出现一次的数字 II

题目地址:https://leetcode.cn/problems/single-number-ii/description/?envType=study-plan-v2&envId=top-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 b
20.6 【位运算】数字范围按位与

题目地址:https://leetcode.cn/problems/bitwise-and-of-numbers-range/description/?envType=study-plan-v2&envId=top-interview-150

  找公共前缀。

class Solution:def rangeBitwiseAnd(self, left: int, right: int) -> int:t = 0while left < right:left = left >> 1right = right >> 1t += 1return left << t

21 数学

21.1 【双指针】回文数

题目地址:https://leetcode.cn/problems/palindrome-number/description/?envType=study-plan-v2&envId=top-interview-150

  将数字的每一位取出来,然后双指针前后分别判断是否相等。

class Solution:def isPalindrome(self, x: int) -> bool:if x < 0:return Falsenum = []while x>0:n = x % 10num.append(n)x = x // 10left,right = 0,len(num)-1while left < right:if num[left] != num[right]:return Falseleft += 1right -= 1return True
21.2 【数学】加一

题目地址:https://leetcode.cn/problems/plus-one/description/?envType=study-plan-v2&envId=top-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 digits
21.3 【数学】阶乘后的零

题目地址:https://leetcode.cn/problems/factorial-trailing-zeroes/description/?envType=study-plan-v2&envId=top-interview-150

  统计因子中5的个数即可。

class Solution:def trailingZeroes(self, n: int) -> int:ans = 0while n>0:n = n//5ans += nreturn ans
21.4 【二分】69. x 的平方根

题目地址:https://leetcode.cn/problems/sqrtx/description/?envType=study-plan-v2&envId=top-interview-150

  二分查找。

class Solution:def mySqrt(self, x: int) -> int:left,right = 0,x+1while left < right:m = (left+right)//2if m*m == x:return melif m*m < x:left = m+1else:right = mreturn left-1
21.5 【快速幂】50. Pow(x, n)

题目地址:https://leetcode.cn/problems/powx-n/description/?envType=study-plan-v2&envId=top-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 ans
21.6 【暴力】直线上最多的点数

题目地址:https://leetcode.cn/problems/max-points-on-a-line/description/?envType=study-plan-v2&envId=top-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 ans

22 一维动态规划

22.1 【动态规划】爬楼梯

题目地址:https://leetcode.cn/problems/climbing-stairs/?envType=study-plan-v2&envId=top-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,n+1):ans = dp_0 + dp_1dp_0,dp_1 = dp_1,ansreturn ans
22.2 【动态规划】打家劫舍

题目地址:https://leetcode.cn/problems/house-robber/description/?envType=study-plan-v2&envId=top-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[i1][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/?envType=study-plan-v2&envId=top-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]*(l+1)dp[0] = Truefor i in range(l+1):if dp[i]:for j in range(i+1,l+1):if s[i:j] in wordDict:dp[j] = Truereturn dp[-1]
22.4 【动态规划】零钱兑换

题目地址:https://leetcode.cn/problems/coin-change/description/?envType=study-plan-v2&envId=top-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[jcoin]+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 = [amount+1]*(amount+1)dp[0] = 0for j in range(1,amount+1):for coin in coins:if j >= coin:dp[j] = min(dp[j],dp[j-coin]+1)if dp[amount] < amount+1:return dp[amount]else:return -1
22.5 【动态规划】【二分】最长递增子序列

题目地址:https://leetcode.cn/problems/longest-increasing-subsequence/description/?envType=study-plan-v2&envId=top-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 = (left+right) // 2if arr[mid] < num:left = mid + 1else:right = midarr[left] = numif right == ans:ans += 1return ans

23 多维动态规划

23.1 【动态规划】三角形最小路径和

题目地址:https://leetcode.cn/problems/triangle/description/?envType=study-plan-v2&envId=top-interview-150

  自底向上进行动态规划,每次都选择下一层的 k k k k + 1 k+1 k+1之间最小的数与该层的数相加,最后返回 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(j+1):dp[k] = min(dp[k],dp[k+1]) + triangle[j][k]return dp[0]
23.2 【动态规划】最小路径和

题目地址:https://leetcode.cn/problems/minimum-path-sum/description/?envType=study-plan-v2&envId=top-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/?envType=study-plan-v2&envId=top-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 i>0 else 0left = dp[i][j-1] if j>0 else 0dp[i][j] = up + leftreturn dp[-1][-1]
23.4 【动态规划】最长回文子串

题目地址:https://leetcode.cn/problems/longest-palindromic-substring/description/?envType=study-plan-v2&envId=top-interview-150

   d p [ i ] [ j ] dp[i][j] dp[i][j]表示 s [ i : j + 1 ] s[i:j+1] s[i:j+1]是否为回文子串,状态转移的思路是,如果 d p [ i + 1 ] [ j − 1 ] dp[i+1][j-1] dp[i+1][j1] 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)-(i+1) <= 0if j-i <= 2:if s[i] == s[j]:dp[i][j] = 1cur_len = j-i+1else:if s[i] == s[j] and dp[i+1][j-1]:dp[i][j] = 1cur_len = j-i+1if dp[i][j] and cur_len > max_len:max_len = cur_lenstart = ireturn s[start:start+max_len]
23.5 【动态规划】交错字符串

题目地址:https://leetcode.cn/problems/interleaving-string/description/?envType=study-plan-v2&envId=top-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 i+j i+j个字符。

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]*(l2+1) for _ in range(l1+1)]dp[0][0] = Truefor i in range(1,l1+1):dp[i][0] = (dp[i-1][0] and s1[i-1]==s3[i-1])for i in range(1,l2+1):dp[0][i] = (dp[0][i-1] and s2[i-1]==s3[i-1])for i in range(1,l1+1):for j in range(1,l2+1):dp[i][j] = (dp[i-1][j] and s1[i-1]==s3[i+j-1]) or (dp[i][j-1] and s2[j-1]==s3[i+j-1])return dp[-1][-1]
23.6 【动态规划】编辑距离

题目地址:https://leetcode.cn/problems/edit-distance/description/?envType=study-plan-v2&envId=top-interview-150

  详见代码注释。

class Solution:def minDistance(self, word1: str, word2: str) -> int:l1 = len(word1)l2 = len(word2)# 初始化dp,dp[i][j]表示从word1[:i]到word2[:j]所需要转换的次数dp = [[0]*(l2+1) for _ in range(l1+1)]# 此时word2为空,则word1需要转换的次数为此时的长度for i in range(l1+1):dp[i][0] = i# 此时word2为空,则word1需要转换的次数为此时的长度for j in range(l2+1):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,l1+1):for j in range(1,l2+1):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/?envType=study-plan-v2&envId=top-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/?envType=study-plan-v2&envId=top-interview-150

  详见代码注释。

class Solution:def maxProfit(self, k: int, prices: List[int]) -> int:# dp[第几天][已经完成几笔交易][是否持股]l = len(prices)dp = [[[0]*2 for _ in range(k+1)] for _ in range(l)]for i in range(1,k+1):dp[0][i][1] = -prices[0]for i in range(1,l):for j in range(1,k+1):# 未持股:今天卖掉了,或者昨天也未持股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/?envType=study-plan-v2&envId=top-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]*(col+1) for _ in range(row+1)]# 状态转移为在左、上、左上中取最小值+1,因为需要保证正方形内所有元素均为1for i in range(1,row+1):for j in range(1,col+1):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

相关文章:

【leetcode刷题之路】面试经典150题(8)——位运算+数学+一维动态规划+多维动态规划

文章目录 20 位运算20.1 【位运算】二进制求和20.2 【位运算】颠倒二进制位20.3 【位运算】位1的个数20.4 【位运算】只出现一次的数字20.5 【哈希表】【位运算】只出现一次的数字 II20.6 【位运算】数字范围按位与 21 数学21.1 【双指针】回文数21.2 【数学】加一21.3 【数学】…...

JetBrains全家桶激活,分享 WebStorm 2024 激活的方案

大家好&#xff0c;欢迎来到金榜探云手&#xff01; WebStorm公司简介 JetBrains 是一家专注于开发工具的软件公司&#xff0c;总部位于捷克。他们以提供强大的集成开发环境&#xff08;IDE&#xff09;而闻名&#xff0c;如 IntelliJ IDEA、PyCharm、和 WebStorm等。这些工具…...

Sublime 彻底解决中文乱码

1. 按ctrl&#xff0c;打开Console&#xff0c;输入如下代码&#xff1a; import urllib.request,os; pf Package Control.sublime-package; ipp sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHand…...

复旦大学EMBA校友出席两会建言献策助力中国发展

阳春三月&#xff0c;备受瞩目的全国两会如期召开。期间&#xff0c;复旦大学EMBA多位校友作为第十四届全国人民代表大会代表、第十四届全国政协委员与全国各地代表共商国是。      无论是作为大型央企负责人&#xff0c;还是作为科创企业的中坚力量&#xff0c;复旦大学EM…...

virtualbox导入vdi

新建虚拟机 点击新建 输入新建属性 配置cpu和内存 虚拟硬盘 这里选择已有的vdi文件 摘要 这里点击完成 虚拟机添加成功 点击启动&#xff0c;启动虚拟机 注意 这个时候的ip&#xff0c;还是以前镜像的ip&#xff0c;如果两个镜像一起启动&#xff0c;则需要修 改ip地…...

【信号处理】基于DGGAN的单通道脑电信号增强和情绪检测(tensorflow)

关于 情绪检测&#xff0c;是脑科学研究中的一个常见和热门的方向。在进行情绪检测的分类中&#xff0c;真实数据不足&#xff0c;经常导致情绪检测模型的性能不佳。因此&#xff0c;对数据进行增强&#xff0c;成为了一个提升下游任务的重要的手段。本项目通过DCGAN模型实现脑…...

使用 Docker Compose 部署 Spring Boot 应用

使用 Docker Compose 部署 Spring Boot 应用 第一步&#xff1a;创建 Spring Boot 应用的 Dockerfile 在您的 Spring Boot 项目根目录中创建一个 Dockerfile。 编辑 Dockerfile&#xff0c;添加以下内容&#xff1a; # 基础镜像使用 OpenJDK FROM openjdk:11-jdk-slim# 维护者…...

nginx 正向代理 https

问题背景 因为网络环境受限&#xff0c;应用服务器无法直接访问外网&#xff0c;需要前置机上中转一下&#xff0c;这种情况可在应用服务器修改/etc/hosts文件指向前置机&#xff0c;在前置机上的nginx设置四层代理&#xff0c;从而出站。 方案 根据How to Use NGINX as an …...

vue3从其他页面跳转页面头部组件菜单el-menu菜单高亮

主要代码 import { ref, onMounted, watch } from vue; const activeIndex ref("/"); const route useRoute();onMounted(() > {updateActiveMenu(); });watch(() > route.path, updateActiveMenu);function updateActiveMenu() {// 根据路由更新activeMenu…...

python 条件循环语句

python 条件循环语句 一、条件控制语句1. Python3 条件控制2. if 语句3. if 嵌套4. match...case5. 注意&#xff1a; 二、循环控制语句1. Python3 循环语句2. while 循环3. 无限循环4. while 循环使用 else 语句5. 简单语句组6. for 语句7. for...else8. break 和 continue 语…...

CIM搭建实现发送消息的效果

目录 背景过程1、下载代码2、进行配置3、直接启动项目4、打开管理界面5、启动web客户端实例项目6、发送消息 项目使用总结 背景 公司项目有许多需要发送即时消息的场景&#xff0c;之前一直采用的是传统的websocket连接&#xff0c;它会存在掉线严重&#xff0c;不可重连&…...

C++第十三弹---内存管理(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、operator new与operator delete函数 1.1、operator new与operator delete函数 2、new和delete的实现原理 2.1、内置类型 2.2、自定义类型 …...

Python爬虫学习完整版

一、什么是爬虫 网络爬虫&#xff0c;是一种按照一定规则&#xff0c;自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性&#xff0c;根据用户需求定向抓取相关网页并分析也成为如今主流的爬取策略。 1 爬虫可以做什么 你可以爬取网络上的的图片&#…...

JavaScript中的继承方式详解

Question JavaScript实现继承的方式&#xff1f; 包含原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承和ES6 类继承 JavaScript实现继承的方式 在JavaScript中&#xff0c;实现继承的方式多种多样&#xff0c;每种方式都有其优势和适用场景。以下…...

Git基础(23):Git分支合并实战保姆式流程

文章目录 前言准备正常分支合并1. 创建两个不冲突分支2. 将dev合并到test 冲突分支合并1. 制造分支冲突2. 冲突合并 前言 Git分支合并操作 准备 这里先在Gitee创建了一个空仓库&#xff0c;方便远程查看内容。 正常分支合并 1. 创建两个不冲突分支 &#xff08;1&#xf…...

为什么有些前端一直用 div 当按钮,而不是用 button?

1. HTML 中的 <div> 和 <button> 在了解为什么有些前端开发者更喜欢使用 <div> 作为按钮之前&#xff0c;让我们先来了解一下 <div> 和 <button> 标签在 HTML 中的作用和区别。 <div>&#xff1a;是 HTML 中的一个通用容器元素&#xff0…...

python实战之基础篇(一)

1. 注释 # coding utf-8 # 该注释放到文件第一行, 这个注释告诉python解释器该文件的编码集是UTF-82. 导入语句有三种形式 import <模块名> from <模块名> import <代码元素> from <模块名> import <代码元素> as <代码元素别名>3. 获取…...

第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(补题)

文章目录 1 日期统计2 01串的熵3 冶炼金属4 飞机降落5 接龙数列6 岛屿个数7 子串简写8 整数删除9 景区导游10 砍树 前言&#xff1a;时隔一年&#xff0c;再次做这套题(去年参赛选手)&#xff0c;差点道心不稳T_T&#xff0c;故作此补题&#xff01; 1 日期统计 没写出来&…...

蓝桥杯刷题--python-32

4964. 子矩阵 - AcWing题库 from collections import deque n, m, a, b map(int, input().split()) mod 998244353 nums [] for _ in range(n): nums.append(list(map(int, input().split()))) rmin [[0 for i in range(m)] for i in range(n)] rmax [[0 for i in ran…...

单例模式如何保证实例的唯一性

前言 什么是单例模式 指一个类只有一个实例&#xff0c;且该类能自行创建这个实例的一种创建型设计模式。使用目的&#xff1a;确保在整个系统中只能出现类的一个实例&#xff0c;即一个类只有一个对象。对于频繁使用的对象&#xff0c;“忽略”创建时的开销。特点&#xff1a…...

IntelliJ IDE 插件开发 | (七)PSI 入门及实战(实现 MyBatis 插件的跳转功能)

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门IntelliJ IDE 插件开发 |&#xff08;二&#xff09;UI 界面与数据持久化IntelliJ IDE 插件开发 |&#xff08;三&#xff09;消息通知与事件监听IntelliJ IDE 插件开发 |&#xff08;四&#xff09;来查收…...

【教程】iOS如何抓取HTTP和HTTPS数据包经验分享

&#x1f4f1; 在日常的App开发和研发调研中&#xff0c;对各类App进行深入的研究分析时&#xff0c;我们需要借助专业的抓包应用来协助工作。本文将介绍如何使用iOS手机抓包工具来获取HTTP和HTTPS数据包&#xff0c;并推荐一款实用的抓包应用——克魔助手&#xff0c;希望能够…...

基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告

基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐…...

Spring Cloud Gateway Server MVC

之前你如果要用spring cloud gateway &#xff0c;就必须是webflux 的&#xff0c;也就是必须是异步响应式编程。不能和spring mvc 一起使用。现在spring cloud 新出了一个可以不用webflux的gateway。 具体使用mvc的gateway步骤如下 普通的Eureka Client的项目 如果你只是想测…...

建立动态MGRE隧道的配置方法

目录 一、实验拓扑 1.1通用配置 1.1.1地址配置 1.1.2静态缺省指向R5&#xff0c;实现公网互通 1.1.3MGRE协议配置 1.1.4配置静态 二、Shortcut方式 三、Normal方式&#xff08;非shortcut&#xff09; 四、总结 一、实验拓扑 下面两种配置方法皆使用静态方式 1.1通用配…...

【MySQL】9. 内置函数

函数 1. 日期函数 获得年月日&#xff1a; mysql> select current_date(); ---------------- | current_date() | ---------------- | 2024-03-23 | ---------------- 1 row in set (0.00 sec)获得时分秒&#xff1a; mysql> select current_time(); ------------…...

芯片工程系列(5)2.5D 3D封装

0 英语缩写 硅通孔&#xff08;Through Silicon Via&#xff0c;TSV&#xff09;硅中介层&#xff08;Silicon Interposer&#xff09;物理气象沉淀法&#xff08;Physical Vapor Deposition&#xff0c;PVD&#xff09;DRIE、CVD、PVD、CMP等设备CoWoS&#xff08;Chip on Wa…...

KubeSphere简单介绍及安装使用

KubeSphere 概述 官网地址&#xff1a;https://kubesphere.io/zh/ 什么是 kubesphere KubeSphere 是一个开源的多云容器管理平台&#xff0c;旨在简化企业级 k8s 集群的部署、管理和运维。它提供了一个可视化的管理界面&#xff0c;帮助用户更轻松地管理和监控 k8s 集群&…...

Java零基础-集合:Java 8新增的集合操作

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…...

C++经典面试题目(七)

1、什么是引用&#xff1f;请解释引用的概念和用法。 当谈论引用时&#xff0c;指的是在 C 中的一种类型。引用提供了对变量的别名&#xff0c;它允许通过不同的名称访问同一个变量。引用在 C 中常用于函数参数传递、返回值传递和操作符重载等场景。 引用的概念和用法&#x…...