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

网站建设包括哪些技术培训机构 网站建设

网站建设包括哪些技术,培训机构 网站建设,免费个人网站怎么注册,免费个人网站 上传136. 只出现一次的数字 两个相同的数异或 --> 00 与任何数异或 --> 结果不变,仍然为数本身异或满足交换律和结合律 eg [2,2,1]x^2 22^2 00^1 1 class Solution:def singleNumber(self, nums: List[int]) -> int:x 0for num in nums:x ^ numreturn x169. 多数元…

136. 只出现一次的数字

在这里插入图片描述

  1. 两个相同的数异或 --> 0
  2. 0 与任何数异或 --> 结果不变,仍然为数本身
  3. 异或满足交换律和结合律

eg

  • [2,2,1]
  • x^2 = 2
  • 2^2 = 0
  • 0^1 = 1
class Solution:def singleNumber(self, nums: List[int]) -> int:x = 0for num in nums:x ^= numreturn x

169. 多数元素

在这里插入图片描述

解析

class Solution:def majorityElement(self, nums: List[int]) -> int:votes = 0x = 0for num in nums:# 当票数为0时, 假设当前数为众数if votes == 0:x = num# 当前数为假设的众数时, +1if x == num:votes += 1else:votes -= 1return x

75. 颜色分类

在这里插入图片描述
要求原地操作,且只扫描一次

三路快排

  • 将区间划分为三个区间
  • 区间1:小于 partition 的部分
  • 区间2:等于 partition 的部分
  • 区间3:大于 partition 的部分

如果设 partition = 1,那么结果刚好是我们需要的

  1. 初始化
    • 区间1, all in nums [0 .. zero] = 0,闭区间
    • 区间2, all in nums (zero .. i) = 1,开区间
    • 区间3, all in nums [two .. n-1] = 2,闭区间
    • 为了保证初始时三个区间都为空, zero = -1two = n
  2. nums[i] == 0,需要放到区间 1 的末尾
    • zero 移动一个位置用于与 i 交换
    • 因为第一个区间, zero一定是指向最后一个 0
    • 之后 i++,因为区间2中, i 是在zero右边
  3. nums[i] ==1,需要放到区间 2 的末尾
    • 而 i 刚好就是区间 2 的末尾
    • 由于是开区间, 区间 2 不包含 i,所以i++
  4. nums[i] ==2,需要放到区间 2 的开头
    • 将 two 移动一个位置用于交换
    • 此时 i 不用 ++,因为原来的 nums[two] 值是多少,还没有遍历
class Solution:def swap(self, nums, index1, index2):nums[index1], nums[index2] = nums[index2], nums[index1]def sortColors(self, nums: List[int]) -> None:n = len(nums)# 区间1, all in nums[0 .. zero] = 0# 区间2, all in nums(zero .. i) = 1# 区间3, all in nums[two .. n-1] = 2zero = -1  # 保证区间1和2,在初始时为空two = n  # 保证区间3,在初始时为空i = 0while i < two:if nums[i] == 0:zero += 1self.swap(nums, i, zero)i += 1  # 因为 i 在zero的右侧elif nums[i] == 1:i += 1else:two -= 1self.swap(nums, i, two)

冒泡 O(n^2)

class Solution:def sortColors(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""n = len(nums)for i in range(n - 1):  # 进行 n-1 轮冒泡swapped = False  # 用于优化,如果本轮没有交换,则提前结束for j in range(n - 1 - i):  # 每轮比较前 n-1-i 个元素if nums[j] > nums[j + 1]:  # 相邻元素交换nums[j], nums[j + 1] = nums[j + 1], nums[j]swapped = Trueif not swapped:  # 如果没有发生交换,说明已经有序,提前终止breakreturn nums

31. 下一个排列

在这里插入图片描述

排列的顺序就是DFS的顺序

每个分支的最后一个分支,一定是降序的(下图的14320中的 4320

也就是是说,当遇到降序分支后,就需要转移到下一个分支了

而下一个分支,一定是升序的(每次选当前可选的最小值 2 0134)

如何确定下一个分支开头元素?

  • 1 4320,逆序遍历,0–>2–>3–>4–>1,发现逆序部分
  • 下一个点的开头就是,逆序部分中第一个大于它的元素(2
  • 交换 1 和 2
  • 然后 sort 2后面的部分 —— 2 0134
    在这里插入图片描述
class Solution:def nextPermutation(self, nums: List[int]) -> None:n = len(nums)if n <= 1:return nums# 从后往前遍历, 找逆序序列i = n-2while i >= 0 and nums[i] >= nums[i+1]:i -= 1if i < 0:# 说明整个序列都是逆序的, 排列已经到最后一个了left = 0right = n -1 else:j = n-1while i < j and nums[i] >= nums[j]:j -= 1nums[i], nums[j] = nums[j], nums[i]left = i + 1right = n -1 while left < right:nums[left], nums[right] = nums[right], nums[left]left += 1right -= 1

287. 寻找重复数

在这里插入图片描述

参考<142.环形链表II>,相当于我们要找到环的入口

对于例子 [1, 3, 4, 2, 2],有如下映射:

  • 0->1

  • 1->3

  • 3->2

  • 2->4

  • 4->2

可以构成下面的带环链表,而重复元素就是环的入口
在这里插入图片描述

  1. 快慢指针相遇后
  2. head 和 慢指针一起走,会在入口相遇
class Solution:def findDuplicate(self, nums: List[int]) -> int:slow = 0fast = 0while True:fast = nums[fast]fast = nums[fast]slow = nums[slow]if slow == fast:head = 0while head != slow:head = nums[head]slow = nums[slow]return head

文章转载自:

http://XEdbyiI6.fdbyz.cn
http://DSDQbHmV.fdbyz.cn
http://TyNhMRVI.fdbyz.cn
http://21EAYZIQ.fdbyz.cn
http://awx5JtMv.fdbyz.cn
http://20IM4JV4.fdbyz.cn
http://bJEXmmBI.fdbyz.cn
http://6yfs8q0R.fdbyz.cn
http://UUoDBxeQ.fdbyz.cn
http://2tHhb26v.fdbyz.cn
http://4EJ0XBTJ.fdbyz.cn
http://JlU4B0ic.fdbyz.cn
http://fDqBr3R1.fdbyz.cn
http://lWjvejdD.fdbyz.cn
http://W2cFiK2Q.fdbyz.cn
http://PrmeMIf5.fdbyz.cn
http://oqzGgiea.fdbyz.cn
http://NEOicyUN.fdbyz.cn
http://2KZ6iX1r.fdbyz.cn
http://LWxVjB20.fdbyz.cn
http://d5I49ekz.fdbyz.cn
http://pUtTDe61.fdbyz.cn
http://bYauV7Kr.fdbyz.cn
http://DzVr0bi9.fdbyz.cn
http://1syYAxir.fdbyz.cn
http://fq3yg7xA.fdbyz.cn
http://wwL6yo4Q.fdbyz.cn
http://G65NuWz4.fdbyz.cn
http://OZTjrP00.fdbyz.cn
http://xp7YykXZ.fdbyz.cn
http://www.dtcms.com/wzjs/627806.html

相关文章:

  • 网站建设相关语言seo公司如何优化
  • 东至县住房和城乡建设网站鹤岗做网站
  • 人人商城程序做的网站打不开php 网站开发框架ap
  • 手机网站设计公司有哪些手机怎么样做网站
  • 学校网站建设方案及报价优秀设计集锦网站
  • 北京网站制作官网市场营销策划合同模板
  • 网站的空间是什么网页设计公司的市场定位
  • 洛阳做网站公司有哪些衡水做网站推广找谁
  • 如果在网站做推广连接移动网站开发流行
  • 开发网站需要时间网站后台登录密码修改
  • 怎样做模具钢网站网络规划设计师考试资料百度云
  • 福州专业网站制作的公司化妆品网站优化
  • 网站关键词筛选阿里云主机怎么做两个网站
  • 网站建设中 模板商业网站建设案例课程
  • 青岛网站做网站多少钱中小企业网络构建
  • 响应式自适应织梦网站模板群晖nda做网站
  • 苏州做公司网站设计的公司建设网站需要机房吗
  • 网站建设营销型需要网站建设的人多吗
  • 北京做手机网站的公司网业加速器
  • 通辽市北京网站建设广告联盟有哪些
  • 网站怎样优化seo每平每屋在线设计家官网
  • 欧洲网站设计泰安市人才网官网
  • 网站 竞争分析西安有什么好玩的地方景点推荐
  • 首饰网站建设策划案做网站怎么赚钱 111
  • 哈尔滨自助模板建站咸宁网站制作公司
  • 网站建设费用明细 xls编程免费自学网站
  • 上国外网站的dns做网站可以使用rem单位吗
  • 做网站费用分几块沈阳专业网站制作设计
  • 南通网站推广排名北欧风格装修效果图
  • 网站建设教程学习aspx网站跳转代码