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

leetcode 41~50 学习经历

leetcode 41~50 学习经历

  • 41. 缺失的第一个正数
  • 42. 接雨水
  • 43. 字符串相乘
  • 44. 通配符匹配
  • 45. 跳跃游戏 II
  • 46. 全排列
  • 47. 全排列 II
  • 48. 旋转图像
  • 49. 字母异位词分组
  • 50. Pow(x, n)
  • 小结

41. 缺失的第一个正数

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。
请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。

示例 1:
输入:nums = [1,2,0]
输出:3
示例 2:
输入:nums = [3,4,-1,1]
输出:2
示例 3:
输入:nums = [7,8,9,11,12]
输出:1

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/first-missing-positive
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution:def firstMissingPositive(self, nums: List[int]) -> int:d = set(nums)c = {n + 1 for n in range(len(nums) + 1)}return sorted(c-d)[0]

在这里插入图片描述
啊这。。。。。。常数级别额外空间是啥意思??就说,我这个内存消耗肯定不过关了呗
然后。。。。看大佬们的答案,全都是一个算法,引用这里的说法https://blog.csdn.net/kexuanxiu1163/article/details/103209554

在这里插入图片描述
在这里插入图片描述
嗯。。。这样就排除了重复数字的干扰。。。。好办法,又学废了一招

42. 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

示例 1:
在这里插入图片描述
输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
输出:6
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。
示例 2:
输入:height = [4,2,0,3,2,5]
输出:9

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/trapping-rain-water
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

额。。。。这个题目就是考每个坐标点上的最高可与两侧持平的点事多高,那么,简单暴力的来一次

class Solution:def trap(self, height: List[int]) -> int:if len(height) < 3: # 少于3个柱子,存不住水return 0n = len(height)arr = [0 for _ in range(n)] # 临时数组,保存每个位置可保持的最高位置arr[0] = height[0] # 记录上第一个柱子的高度mx = 0for i in range(n - 1): # 从第一个柱子开始测量最高点arr[i + 1] = max(height[i],height[i + 1],arr[i])mx = max(height[i],mx,height[i + 1])  # 并记录下最高点for i in range(n - 1,-1,-1): # 将最高点之后的数据清掉,因为要从新计算if height[i] == mx:breakarr[i] = 0for i in range(n - 1,-1,-1): # 将最高点之后的最高位置从后向前再计算一遍if height[i] == mx:breakarr[i - 1] = max(height[i],height[i - 1],arr[i])arr[-1] = height[-1] # 记录上最后一根柱子的高度return sum([arr[i] - height[i] for i in range(n)]) # 将最高点与原柱子高度相减后求和,就是存量

在这里插入图片描述
明显成绩不佳,继续努力

class Solution:def trap(self, height: List[int]) -> int:if len(height) < 3:return 0n,mx = len(height) , max(height)arr = [height[_] for _ in range(n)]total,first,last = 0 , height.index(mx) , n - height[::-1].index(mx) - 1for i in range(first,last + 1):total += mx - height[i]for i in range(n - 1):if height[i] == mx: breakarr[i + 1] = max(height[i],height[i + 1],arr[i])total += arr[i] - height[i]for i in range(n - 1,-1,-1):if height[i] == mx: breakarr[i - 1] = max(height[i],height[i - 1],arr[i])total += arr[i] - height[i]return total

在这里插入图片描述
然后就没思路了,接着抄作业。。。好吧,第11题白做了。。。闹心。。。。

class Solution:def trap(self, height: List[int]) -> int:if len(height) < 3:return 0lh,rh,total = height[0],height[-1],0l,r = 1,len(height) - 1while l <= r:if lh < height[l]:lh = height[l]l += 1continueif rh < height[r]:rh = height[r]r -= 1continueif lh < rh:total += lh - height[l]l += 1elif lh >= rh:total += rh - height[r]r -= 1return total

在这里插入图片描述
从新写得双指针的确块一点了,内存消耗也小一些,ε=(´ο`*)))唉,咋就没想起来呢

43. 字符串相乘

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数

示例 1:
输入: num1 = “2”, num2 = “3”
输出: “6”
示例 2:
输入: num1 = “123”, num2 = “456”
输出: “56088”

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/multiply-strings
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

。。。。不转成正数怎么搞???用ascii码计算算不算转整数?这题目考的是啥?

class Solution:def multiply(self, num1: str, num2: str) -> str:return str(eval('{}*{}'.format(num1,num2)))

在这里插入图片描述
别喷我,我也知道这是作弊了。。。问题是,不转数字,到底怎么算?忍不住看了题解。。。。果然用ascii减出来数字了。。然后,除了没整个数相乘,乘法除法取余都没少用。。。这算什么?后来想了想,也许是乘数被乘数都很大很大,嗯,天文数字那种,计算机肯定溢出的,只好用字符串来保存数据的,也就这种能用到这算法了吧,所以,不是限制乘法除法,是不能直接乘。。。好吧,理解了这个,就从新做吧,难怪评论里全是竖式的说法

class Solution:def add(self,x,y):if x == '' or x == '0':return yif y == '' or y == '0':return xx = x[::-1]y = y[::-1]r = ''n = 0for i in range(max(len(x),len(y))):a = int(x[i]) if i < len(x) else 0b = int(y[i]) if i < len(y) else 0r += str((a + b + n) % 10)n = (a + b + n) // 10if n == 1:r += '1'return r[::-1]def multiply(self, num1: str, num2: str) -> str:if num1 == '0' or num2 == '0':return '0's1 = list(num1)s2 = list(num2)s = ''for i in range(len(s1),0,-1):x = int(s1[i - 1])xn = len(s1) - ifor j in range(len(s2),0,-1):y = int(s2[j - 1])yn = len(s2) - js = self.add(s,str(x * y) + '0' * (xn + yn))return s

在这里插入图片描述
。。。。。这是马上超时的节奏了吧。。。。赶紧调整一下进位的计算,不要每次都从个位开始计算

class Solution:def add(self,x,y,z):if x == '' or x == '0':return y + '0' * zif y == '' or y == '0':return x_x = x[::-1] + '0' * (z - len(x))y = y[::-1]x = _x[z:]r = _x[:z]n = 0for i in range(max(len(x),len(y))):a = int(x[i]) if i < len(x) else 0b = int(y[i]) if i < len(y) else 0r += str((a + b + n) % 10)n = (a + b + n) // 10if n == 1:r += '1'return r[::-1]def multiply(self, num1: str, num2: str) -> str:if num1 == '0' or num2 == '0':return '0's1 = list(num1)s2 = list(num2)s = ''for i in range(len(s1),0,-1):x = int(s1[i - 1])xn = len(s1) - ifor j in range(len(s2),0,-1):y = int(s2[j - 1])yn = len(s2) - js = self.add(s,str(x * y),xn + yn)return s

在这里插入图片描述
总算不会超时边缘疯狂试探了,继续优化

class Solution:def add(self,x,y,z):if x == '' or x == '0':return y + '0' * zif y == '' or y == '0':return xx = '0' * (z - len(x)) + xr = x[-z:]x = x[:-z]x = 0 if len(x) == 0 else xreturn str(int(x)+int(y)) + rdef multiply(self, num1: str, num2: str) -> str:if num1 == '0' or num2 == '0':return '0's1 = list(num1)s2 = list(num2)s = ''for i in range(len(s1),0,-1):x = int(s1[i - 1])xn = len(s1) - ifor j in range(len(s2),0,-1):y = int(s2[j - 1])yn = len(s2) - js = self.add(s,str(x * y),xn + yn)return s

在这里插入图片描述
考虑到每次都是个位数相乘,那么弄一个数组,存放每个位上的乘积之和,最后在数组里再进行进位

class Solution:def multiply(self, num1: str, num2: str) -> str:if num1 == '0' or num2 == '0':return '0's = []for i in range(len(num1),0,-1):x = ord(num1[i - 1]) - 48xn = len(num1) - ifor j in range(len(num2),0,-1):y = ord(num2[j - 1]) - 48yn = len(num2) - jwhile len(s) < xn + yn + 1:s.append(0)s[xn + yn] += x * yn = len(s)for i in range(n):if s[i] > 9:if len(s) == i + 1:s.append(0)s[i + 1] += s[i] // 10s[i] = s[i] % 10return ''.join([str(n) for n in s][::-1])

在这里插入图片描述
终于从新杀进100ms的成绩了。。。。可惜刚刚及格,还得继续

class Solution:def multiply(self, num1: str, num2: str) -> str:if num1 == '0' or num2 == '0':return '0'l1,l2 = len(num1),len(num2)s = [0 for _ in range(l1 + l2 + 1)]for i in range(l1,0,-1):x = ord(num1[i - 1]) - 48for j in range(l2,0,-1):y = ord(num2[j - 1]) - 48s[l1 - i + l2 - j] += x * yfor i in range(l1 + l2 + 1):if s[i] > 9:s[i + 1] += s[i] // 10s[i] = s[i] % 10while s[-1] == 0:s.pop(-1)return ''.join([str(n) for n in s][::-1])

在这里插入图片描述
在这里插入图片描述
额额额。做到这个份上了,还是刚及格的成绩?大佬这么多的么,看我千里眼之术!
在这里插入图片描述
然后,只想爆粗口了,这TNND的20ms到60ms全体掩耳盗铃啊,你 10 ** n,这和直接弄出来 num1*num2有区别么?还是我太实在了。更不要说,eval的,int的更多。。。日了哈士奇了

得嘞,这个题用python完全没有意义,他本身支持的整数范围太离谱了,换个c#的玩
在这里插入图片描述
嗯,这就舒服了。。。。
在这里插入图片描述

44. 通配符匹配

给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘’ 的正则表达式匹配。
‘.’ 匹配任意单个字符
'
’ 匹配零个或多个前面的那一个元素
所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/regular-expression-matching
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

之前第十题做了个正则匹配的 . 和*,还以为这次会简单点,结果拿第十题的内容直接改了改,一提交都超时了。。。看来思路不能这么简单的延续过来,从新考虑下

在此记录,2023年2月26日写了一地 bug 把老顾自己吞没了,大侠我准备休息一下,回头再来一次

45. 跳跃游戏 II

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。
每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:
0 <= j <= nums[i]
i + j < n
返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。

示例 1:
输入: nums = [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。
从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
示例 2:
输入: nums = [2,3,0,1,4]
输出: 2

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/jump-game-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

这个题目不能算中等吧,就是在后边范围内找个能跳的最远的点落地就可以了啊

class Solution:def jump(self, nums: List[int]) -> int:r,i,j,n = 0,0,nums[0],len(nums)if n == 1:return 0while i + j < n - 1:mx,pos = 0,0for x in range(j):if nums[i + x + 1] + x >= mx:mx = nums[i + x + 1] + xpos = x + 1i += posj = nums[i]r += 1return r + 1

在这里插入图片描述
在这里插入图片描述
水题,没什么好说的

46. 全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:
输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
示例 2:
输入:nums = [0,1]
输出:[[0,1],[1,0]]
示例 3:
输入:nums = [1]
输出:[[1]]

提示:
1 <= nums.length <= 6
-10 <= nums[i] <= 10
nums 中的所有整数 互不相同

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/permutations
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

额。。。。这个就是穷举了吧,还有其他办法?

class Solution:def permute(self, nums: List[int]) -> List[List[int]]:def makeGroup(arr,lst):for i in range(len(arr)):makeGroup(arr[:i] + arr[i+1:],lst + [arr[i]])if len(arr) == 0:if lst not in r:r.append(lst)r = []makeGroup(nums,[])return r

在这里插入图片描述
嗯,题里说了,每个数不相同。。。不用 not in 判断。。。

在这里插入图片描述

47. 全排列 II

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。

示例 1:
输入:nums = [1,1,2]
输出:
[[1,1,2],
[1,2,1],
[2,1,1]]
示例 2:
输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/permutations-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

嗯,和46题一样,不过这次有重复数字了

class Solution:def permuteUnique(self, nums: List[int]) -> List[List[int]]:def makeGroup(arr,lst):i = 0if len(arr) == 0:if lst not in r:r.append(lst)while i < len(arr):makeGroup(arr[:i] + arr[i + 1:],lst + [arr[i]])i += 1nums.sort()r = []makeGroup(nums,[])return r

在这里插入图片描述
呦。。。意外啊,多了连个用例,用时超出这么多?

那么,这个题的目的就是怎么优化排重了

class Solution:def permuteUnique(self, nums: List[int]) -> List[List[int]]:def makeGroup(arr,lst):i = 0if len(arr) == 1:r.append(lst + [arr[0]])while i < len(arr):while i > 0 and i < len(arr) and arr[i] == arr[i - 1]:i += 1if i == len(arr):breakmakeGroup(arr[:i] + arr[i + 1:],lst + [arr[i]])i += 1nums.sort()r = []makeGroup(nums,[])return r

在这里插入图片描述
这个排重,前边各类双指针都用的很多了,就没什么可说得了

48. 旋转图像

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。

示例 1:
在这里插入图片描述
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[7,4,1],[8,5,2],[9,6,3]]
示例 2:
在这里插入图片描述
输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/rotate-image
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

额。。。。矩阵旋转。。。。说实话,别考虑坐标对应问题。。。那会死人的,直接按列读,然后把列变成行就差不多了

class Solution:def rotate(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""n = len(matrix)r = [[x[c] for x in matrix] for c in range(n)]for i in range(n):matrix[i][:] = r[i][::-1]

在这里插入图片描述
python 也就是这个reverse方便,其他语言自己实现一下也一样

49. 字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。

示例 1:
输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]
示例 2:
输入: strs = [“”]
输出: [[“”]]
示例 3:
输入: strs = [“a”]
输出: [[“a”]]

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/group-anagrams
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

脑筋急转弯,把单词字母排序,作为字典键,然后再往字典里存数组就好

class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:s = {}for i in strs:a = ''.join(sorted(list(i)))if a in s:s[a].append(i)else:s[a] = [i]return [s[n] for n in s]

在这里插入图片描述

/*** @param {string[]} strs* @return {string[][]}*/
var groupAnagrams = function(strs) {o = {}for(var i = 0;i < strs.length;i++){s = strs[i]sr = []for (var j = 0;j < s.length;j++){sr.push(s[j])}sr.sort()k = sr.join('')if (o[k]){o[k].push(s)}else{o[k] = [s]}}r = []for (var k in o){r.push(o[k])}return r
};

在这里插入图片描述
。。。。成绩有点差啊,估计是箭头函数不熟的问题,抄大佬答案去

// 一下内容抄自leetcode第49题JavaScript 80ms答案
var groupAnagrams = function(strs) {let map = new Map()for(let str of strs){let key = [...str].sort().join('')let list = map.get(key) ? map.get(key) : new Array()list.push(str)map.set(key, list)}return Array.from(map.values())
};

好吧。。。。没得说,落伍就是落伍了,吃灰都吃不上了

50. Pow(x, n)

实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。

示例 1:
输入:x = 2.00000, n = 10
输出:1024.00000
示例 2:
输入:x = 2.10000, n = 3
输出:9.26100
示例 3:
输入:x = 2.00000, n = -2
输出:0.25000
解释:2-2 = 1/22 = 1/4 = 0.25

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/powx-n
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

黑人问号?这个,是个啥章程?不用 ** 运算?不用 math库?老顾从95年接触计算机就没想过这东西怎么实现,最多就是自己乘个n次。。。。优化?不存在的!

嗯,各个版本都提交了一个最简单的版本,让语言环境自己计算的,我只是好奇,大佬们都怎么做的

# python
class Solution:def myPow(self, x: float, n: int) -> float:return x ** n
// javascript
var myPow = function(x, n) {return x ** n
};
// c#
public class Solution {public double MyPow(double x, int n) {return Math.Pow(x,n);}
}

leetcode 有一点不好,你没有提交记录,就不能抄答案,而且,你提交哪个语言环境的,就只能看哪个语言环境的答案,为了抄作业,也得多提交几个语言版本的啊

然后发现,原来是自己写递归算幂运算,比这个环境自带的块一点点?额。。。有必要么。。。既然都是自己乘n次,那就没必要继续研究了

小结

这次10道题有三个评价苦难。
第一个是41,缺失的正数,这个是没思路,纯粹用语言特性进行的作弊,还好后边找到资料能学习。
42接雨水,自己脑袋有坑,做了这么多双指针题,楞是想不起来用一下,第一版已经从前向后,从后向前推数据了,结果还是没用双指针。。。
最后就是44题,通配符题,本来以为会很快做出来,结果自己写了一地 bug,脑袋就浆糊了。等我缓两天再回来灭了他。
然后中等难度的 43 题,字符串相乘,这。。。。才是一步一步做下来的,结果还是错付了

在这里插入图片描述

相关文章:

leetcode 41~50 学习经历

leetcode 41~50 学习经历41. 缺失的第一个正数42. 接雨水43. 字符串相乘44. 通配符匹配45. 跳跃游戏 II46. 全排列47. 全排列 II48. 旋转图像49. 字母异位词分组50. Pow(x, n)小结41. 缺失的第一个正数 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的…...

SQL注入原理及漏洞利用(入门级)

文章目录一、什么是SQL注入漏洞&#xff1f;二、 SQL查询语句三、SQL注入分类数字型&#xff08;整型&#xff09;注入字符型注入搜索型注入四、SQL注入漏洞形成原因一、什么是SQL注入漏洞&#xff1f; 攻击者利用Web应用程序对用户输入验证上的疏忽&#xff0c;在输入的数据中…...

2023/2/26 Vue学习笔记 配置代理解决跨域[CORS ]的问题

利用vue的脚手架巧妙的解决ajax跨域的问题 1 我们首先利用springboot服务搭建 注意这里引出了跨域[CORS ]的问题: Access to XMLHttpRequest at http://localhost:5000/getUserInfo from origin http://localhost:8080 has been blocked by CORS policy: No Access-Control-A…...

算法练习--深拷贝与浅拷贝

&#x1f380;个人主页&#xff1a;努力学习前端知识的小羊 感谢你们的支持&#xff1a;收藏&#x1f384; 点赞&#x1f36c; 加关注&#x1fa90; 文章目录算法地址算法题解分析深拷贝与浅拷贝在练习算法时&#xff0c;遇到了深拷贝与浅拷贝的问题&#xff0c;于是就了解了一…...

Wireshark “偷窥”浏览器与服务器三次握手

本文使用的是Wireshark 4.0.3, Java 11 编写简易服务器&#xff0c;客户端使用Chrome浏览器移动端开发或是前、后端开发又或是高大上的云计算都脱离不了网络&#xff0c;离开了网络的计算机就是一个孤岛&#xff0c;快速上手开发、背面试八股文固然有些急功近利&#xff0c;但确…...

基于stm32温湿度采集平台开发

基于stm32温湿度采集平台开发这里记录一下自己以前课设报告&#xff0c;但是论文中图片和文字、公式太多了&#xff0c;懒得粘贴了&#xff0c;需要完整的可q我963_160_156&#xff0c;也可在微信公众号 *高级嵌入式软件* 里回复 *温湿度* 查看完整版文章摘 要关键词第一章 绪论…...

单机模拟kafka分布式集群(演示生产、消费数据过程)

用单机搭建kafka伪分布式集群&#xff0c;其实集群的概念并不复杂 先说明一下&#xff0c;以下的每个服务启动后都需要新开一个终端来启动另外的服务(因为是集群&#xff0c;自然会用多个终端) 首先下载kafka 提取码&#xff1a;dvz4 或者直接去官网下载kafka_2.11-1.0.0.tgz t…...

办公室人员离岗识别检测系统 yolov7

办公室人员离岗识别检测系统根据yolov7网络模型深度学习技术&#xff0c;办公室人员离岗识别检测算法能够7*24小时全天候自动识别人员是否在岗位。YOLOv7 在 5 FPS 到 160 FPS 范围内&#xff0c;速度和精度都超过了所有已知的目标检测器&#xff0c;并在V100 上&#xff0c;30…...

Android从屏幕刷新到View的绘制(一)之 Window、WindowManager和WindowManagerService之间的关系

0. 相关分享 Android从屏幕刷新到View的绘制&#xff08;一&#xff09;之 Window、WindowManager和WindowManagerService之间的关系 Android从屏幕刷新到View的绘制&#xff08;二&#xff09;之Choreographer、Vsync与屏幕刷新 1. 相关类 WindowManagerService&#xff0c…...

#多源数据融合#:HSI与Lidar

Lidar数据与HSI数据融合应该注意的问题 融合激光雷达&#xff08;lidar&#xff09;数据和高光谱数据可以提高地物特征的识别和分类准确性。以下是一些融合这两种数据的注意事项&#xff1a; 数据预处理 由于激光雷达数据和高光谱数据的特点不同&#xff0c;需要对两种数据进…...

android 权限控制与进程隔离

每次介绍说是做系统安全的,面试和领导首先就是说配selinux,实在很无语。虽然权限控制是安全很重要一环。 linux的进程就是系统运行中的程序(process),是正在执行的一个程序或者命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。Linux环境下…...

链表(一):移除链表元素、设计链表等力扣经典链表题目

203.移除链表元素相关题目链接&#xff1a;力扣 - 移除链表元素题目重现给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。思路链表的删除操作如上图所示&#xff0c;我们需要先找到要删除的…...

计算机网络 第4章 作业1

一、选择题 1. 由网络层负责差错控制与流量控制,使分组按序被递交的传输方式是_________&#xff08;C&#xff09; A&#xff0e;电路交换 B&#xff0e;报文交换 C&#xff0e;基于虚电路的分组交换 D&#xff0e;基于数据报的分组交换 2. TCP/IP 参考…...

Redis-Java代码使用示例

在我之前的项目中&#xff0c;使用Redis是我们团队自己封装了一个Redis操作类&#xff0c;但是这只是在Spring提供的RedisTemplate上做了一层封装而已&#xff0c;当时使用不是很熟练&#xff0c;都是一边在网上查资料&#xff0c;一边使用&#xff1b;这篇文章会介绍两种使用方…...

acwing3485最大异或和(trie树,贪心)

给定一个非负整数数列 a&#xff0c;初始长度为 N。 请在所有长度不超过 M 的连续子数组中&#xff0c;找出子数组异或和的最大值。 子数组的异或和即为子数组中所有元素按位异或得到的结果。 注意&#xff1a;子数组可以为空。 输入格式 第一行包含两个整数 N,M。 第二行…...

EasyRecovery16免费的电脑的数据恢复工具

常见的数据恢复有两种方式&#xff0c;第一种方式是找别人恢复&#xff0c;按照市场价来说&#xff0c;数据恢复的价格每次在100-500之间&#xff0c;但这种方式容易使自己设备上的隐私资料泄露出去&#xff0c;不安全。 另一种方式则是自己学会数据恢复的方法&#xff0c;有问…...

银行数字化转型导师坚鹏:平安银行数字化转型—橙E网战略研究

平安银行对公业务数字化转型案例—橙E网战略研究课程背景&#xff1a; 很多银行存在以下问题&#xff1a;不清楚银行对公业务数字化转型能否成功&#xff1f;不知道其它银行对公业务数字化转型的实际做法&#xff1f; 课程特色&#xff1a;用实战案例解读平安银行对公业务…...

tun驱动之open

tun驱动对应的设备文件是&#xff1a;/dev/net/tun&#xff0c;其详细信息如下&#xff1a; crw-rw-rw- 1 root root 10, 200 2月 26 08:05 tun 主次设备号的定义如下&#xff1a; #define MISC_MAJOR 10 #define TUN_MINOR 200 由于tun驱动属于misc设备驱动&#xff0c;因此用…...

计算机网络体系结构

计算机网络体系结构是指计算机网络中各个层次和功能组成的结构体系&#xff0c;它定义了计算机网络中各层次之间的协议和接口&#xff0c;以实现不同类型、不同规模、不同性能的计算机之间的互联和通信&#xff0c;同时提供各种网络服务和应用。计算机网络体系结构通常被分为多…...

基础夯实,字节内部总结240道算法LeetCode刷题笔记,直呼太全

1、什么是算法算法(algorithm&#xff0c;[ˈlɡərɪəm]&#xff0c;计算程序)&#xff1a;就是定义良好的计算过程&#xff0c;他取一个或一组的值为输入&#xff0c;并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤&#xff0c;用来将输入数据转化成输出结…...

Three.js使用WebWorker进行八叉树碰撞检测

经过一番探索后还是采用了整个碰撞检测都交给worker来做 原因 如果是小的模型还是不需要这么做的 js线程足够处理构建时的开销 步骤 将需要被检测的物体集合转换成可以背worker接收的结构化数据发送给worker worker将结构化的数据转换成有效的Three元素集合并对其构建八叉树fr…...

【教程】Notion笔记多平台设置中文显示

这个笔记软件界面挺好看&#xff0c;惊艳到了。 目录 网页版 桌面端 Windows版 Mac端 安卓端 网页版 直接安装这个插件即可&#xff0c;Chrome/Edge适用&#xff1a;Notion中文版 桌面端 都要去这个github下载语言包&#xff0c;用于替换文件&#xff1a;https://github.c…...

[牛客Hot101]链表篇

文章目录1.翻转链表2.链表内指定区间翻转3. 链表中的节点每k个一组翻转4. 合并两个排序的链表5. 合并k个排序的链表6. 判断链表是否有环7. 链表中倒数第k个节点8. 删除链表中的倒数第k和节点9. 两个链表的第一个公共节点10.链表的入环节点11. 链表相加&#xff08;二&#xff0…...

Vue3 核心模块源码解析(上)

Vue3相比大家也都有所了解&#xff0c;即使暂时没有使用上&#xff0c;但肯定也学习过&#xff01;Vue3是使用TS进行重写&#xff0c;采用了MonoRepo的管理方式进行管理&#xff0c;本篇文章我们一起来看看 Vue3的使用&#xff0c;与Vue2有什么区别&#xff0c;以及我们该如何优…...

【C进阶】指针的高级话题

文章目录:star:1. 字符指针:star:2. 指针数组2.1 指针数组的定义2.2 指针数组的使用:star:3. 数组指针3.1 数组的地址3.2 数组指针的使用:star:4. 数组参数和指针参数:star:5. 函数指针5.1 函数名和函数的地址5.2 练习:star:6. 函数指针数组6.1 转移表:star:7. 指向函数指针数组…...

无源晶振匹配电容—计算方法

以前有写过一篇文章“晶振”简单介绍了晶振的一些简单参数&#xff0c;今天我们来说下无源晶振的匹配电容计算方法&#xff1a; 如上图&#xff0c;是常见的的无源晶振常见接法&#xff0c;而今天来说到就是这种常见电路的电容计算方法&#xff0c;有两种&#xff1a; A&#…...

【测试】自动化测试03(JUnit)

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录JUnit一&#xff09; 注解1. Test2. BeforeEach3. BeforeAll4. AfterEach5. AfterAll二&#xff09; 断言&#xff08;Assertions类&#xff09;三&#xff09;用例的执行顺序四&#xff09;参数化五&#xff09;测试…...

《计算机视觉和图像处理简介 - 中英双语版》:神经网络中的激活函数 ReLU vs Sigmoid

文章大纲 Neural Network Module and Training Function创建数据集Define Neural Network, Criterion function, Optimizer and Train the ModelTest Sigmoid and ReluAnalyze Results参考文献与学习路径在本文中,我们使用含有两个隐藏层的神经网络基于MNIST数据集测试Sigmoid…...

(三十七)大白话SQL标准中对事务的4个隔离级别,都是如何规定的呢?

之前我们给大家讲了数据库中多个事务并发时可能产生的几种问题&#xff0c;包括了脏写、脏读、不可重复读、幻读&#xff0c;几种问题 那么针对这些多事务并发的问题&#xff0c;实际上SQL标准中就规定了事务的几种隔离级别&#xff0c;用来解决这些问题。 注意一下&#xff…...

全国计算机等级考试三级网络技术考试大纲(2022年版)

全国计算机等级考试三级网络技术考试大纲&#xff08;2022年版&#xff09;基本要求 &#xff11;&#xff0e; 了解大型网络系统规划、管理方法&#xff1b; &#xff12;&#xff0e; 具备中小型网络系统规划、设计的基本能力&#xff1b; &#xff13;&#xff0e; 掌握中小…...

拓者设计吧室内设计官网下载/安徽网站推广优化

vmware中为虚拟机添加硬盘空间 Vmware有自己的硬盘管理工具&#xff0c;其所在位置是/vmware/vmware workstation/&#xff0c;名称为vmware-vdiskmanager.exe&#xff0c;具体的参数及命令格式可以参照帮助文档。其使用方法如下&#xff1a;假设虚拟机装有Linux操作系统&#…...

建设金融网站哪家好/seozou是什么意思

顶管施工其实就是我们平时说的不开挖或者非开挖施工啦&#xff0c;其原理是借助于主顶油缸及管道间、中继间等推力&#xff0c;把工具管或掘进机从工作坑内穿过土层一直推进到接收坑内吊起。管道紧随工具管或掘进机后&#xff0c;埋设在两坑之间。为了响应中央的号召&#xff1…...

php网站做多久/游戏推广合作

ANSA、META的二次开发均基于Python开发。本文基于ANSA的帮助文档《Introduction to Python》进行一定的扩展&#xff0c;希望能帮助大家快速掌握这门语言。首先来介绍下这门语言里的主要数据类型&#xff0c;包括&#xff1a;整型、浮点型、复数、布尔类型、字符串、列表、元祖…...

wordpress整体搬家/自媒体seo优化

基于MPP框架开发了demo展示应用&#xff0c;方案数据流如下图所示&#xff0c;简单说明一下. 1.支持一路sensor输入&#xff0c;四路输出. 2.第一路VIPP0输出YUV大小为1920*1080. 编码为H264main profile大小的压缩BitStream存盘。 3.第二路预览&#xff0c;源分辨率1920*10…...

专做袜子的网站/故事型软文广告

Servlet 3.0 作为 Java EE 6 规范体系中一员&#xff0c;随着 Java EE 6 规范一起发布。该版本在前一版本&#xff08;Servlet 2.5&#xff09;的基础上提供了若干新特性用于简化 Web 应用的开发和部署。其中有几项特性的引入让开发者感到非常兴奋&#xff0c;同时也获得了 Jav…...

使用云主机做网站教程/网站优化网站优化

SpringMVC_requestMapping 项目搭建见上篇《初识 Spring(09)---(搭建SpringMVC项目&#xff09;》 1.requestMapping既可以用在方法上&#xff0c;也可以用在类上 文件目录&#xff1a; 代码&#xff1a;新建SpringmvcTest.java package com.neuedu.springmvc.controller;i…...