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

网站建设包括哪些技术河北 石家庄 网站建设

网站建设包括哪些技术,河北 石家庄 网站建设,51办办网,pc网站如何做seo136. 只出现一次的数字 两个相同的数异或 --> 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://www.dtcms.com/wzjs/563490.html

相关文章:

  • 竣工验收备案表查询网站wordpress插件安装
  • 免费手机h5模板网站模板下载企业网站建设工作总结
  • 百度搜索公司网站展现图片群晖wordpress安装主题下载失败
  • 住房和城乡建设网站方案wordpress 加入地图
  • 网站怎么挂服务器深圳seo优化服务商
  • 庄河建网站成都科技网站建设找哪家
  • 贸易公司寮步网站建设价钱企业网站开发创意
  • 申请免费网站空间家居企业网站建设渠道
  • 网站取消备案邯郸品牌商标vi设计策划公司
  • 一个网站的制作特点花都营销型网站
  • 市网站建设公司女性做网站
  • 杭州公司外贸网站设计商城建站
  • 个人做网站能赚钱吗在酒吧里做那个视频网站
  • 雄安建设集团 网站网站页面设计素材
  • 将网站建设外包出去的好处网站开发的工资是多少钱
  • 网站整体排名大幅下降游乐场网站开发
  • 程序员做一个网站多少钱网站后台浏览器
  • 群晖做网站网站后台系统访问
  • 龙岗个性化网站建设价格低上海网站建设框架图
  • 百度联盟 网站备案信息怎么建网站挣钱
  • 网站定制哪家正规wordpress 本地搭建
  • 如何免费创建一个自己的网站wordpress免费主题打包下载
  • 阿里巴巴国际站用户规模网站通栏尺寸
  • 网站维护等自己创造网站
  • 广州个性化网站开发莆田网站建设外贸
  • 网站定制开发微信运营用flash做的ppt模板下载网站
  • 昆明北京网站建设人工智能培训师
  • 网站登录注册怎么做hexo 转 wordpress
  • 做电影网站赚钱知乎网站内容有什么
  • 怎样给自己建立网站中国制造网官方网址