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

leetcode分类刷题:队列(Queue)(三、优先队列用于归并排序)

1、当TopK问题出现在多个有序序列中时,就要用到归并排序的思想了
2、将优先队列初始化为添加多个有序序列的首元素的形式,再循环K次优先队列的出队和出队元素对应序列下个元素的入队,就能得到TopK的元素了
3、这些题目好像没有TopK 大用小顶堆,TopK 小用大顶堆反着来的经验了,得顺着来了:TopK 大用大顶堆,TopK 小用小顶堆

23. 合并 K 个升序链表

1、优先队列用于归并排序的经典题目:给定的有序序列为升序链表,要将所有升序链表合并成一个升序链表
2、该题直接用小顶堆实现归并排序,初始化时将所有头节点(每个有序序列的最小值)入堆,再依次弹出优先队列进行节点之间的连接;如果要直接将ListNode入堆,需要重写<,即__lt__()函数,使得节点之间能进行比较

from typing import Optional, List
import heapq
'''
23. 合并 K 个升序链表
给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。
示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6
思路1、将所有链表元素全部加入优先队列(小顶堆),再依次弹出优先队列重新建立节点赋值
思路2、将链表按照(头节点值,索引,头节点)形式加入优先队列(小顶堆),再依次弹出优先队列进行节点连接——不理解为什么去掉元组里的索引就会出错
思路3、自定义节点的比较方式,直接将节点加入优先队列(小顶堆),再依次弹出优先队列进行节点连接——这叫归并?
'''class ListNode:def __init__(self, val=0, next=None):self.val = valself.next = nextclass Solution:def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:# # 思路1、将所有链表元素全部加入优先队列(小顶堆),再依次弹出优先队列重新建立节点赋值# # 情况1、数组为空# if len(lists) == None:#     return None# # 情况2、将数组中所有链表添加到小顶堆# que = []# for head in lists:#     if head != None:#         cur = head#         while cur != None:#             heapq.heappush(que, cur.val)#             cur = cur.next# # 继续将小顶堆的元素弹出构建为新的链表# dummyHead = ListNode(-1)# cur = dummyHead# while len(que) > 0:#     cur.next = ListNode(heapq.heappop(que))#     cur = cur.next# return dummyHead.next# # 思路2、将链表按照(头节点值,索引,头节点)形式加入优先队列(小顶堆),再依次弹出优先队列进行节点连接# # 情况1、数组为空# if len(lists) == None:#     return None# # 情况2、将链表按照(头节点值,索引,头节点)形式加入优先队列(小顶堆)# que = []# for i in range(len(lists)):#     if lists[i] != None:#         heapq.heappush(que, (lists[i].val, i, lists[i]))# # 将小顶堆的节点弹出进行连接# dummyHead = ListNode(-1)# cur = dummyHead# while len(que) > 0:#     _, i, head = heapq.heappop(que)#     if head.next != None:#         heapq.heappush(que, (head.next.val, i, head.next))#     cur.next = head#     cur = cur.next# return dummyHead.next# 思路3、自定义节点的比较方式,直接将节点加入优先队列(小顶堆),再依次弹出优先队列进行节点连接class Comparer:def __init__(self, node: Optional[ListNode]):self.node = nodedef __lt__(self, other):return self.node.val < other.node.val# 情况1、数组为空if len(lists) == None:return None# 情况2、将节点加入优先队列(小顶堆)que = []for head in lists:if head != None:heapq.heappush(que, Comparer(head))# 将小顶堆的节点弹出进行连接dummyHead = ListNode(-1)cur = dummyHeadwhile len(que) > 0:head = heapq.heappop(que).nodeif head.next != None:heapq.heappush(que, Comparer(head.next))cur.next = headcur = cur.nextreturn dummyHead.next

接下来的3道题目都是在leetcode分类刷题:二分查找(Binary Search)(四、基于值域的数组/矩阵类型)总结过的,当时就觉得值域二分法+双指针的思路也太复杂了,果然用归并排序的思想就要容易多了

378. 有序矩阵中第 K 小的元素

1、优先队列用于归并排序的经典题目:没有显式给定多个有序序列,需要将矩阵的每一行看作是一个个有序序列
2、该题目一开始我按照TopK 大用小顶堆,TopK 小用大顶堆反着来先用的大顶堆,并保持元素总数为K,提交后发现会超时!
3、直接用小顶堆实现归并排序,初始化时将所有矩阵第一列(每个有序序列的最小值)入堆,再循环K次小顶堆的出堆和出堆元素对应序列下个元素的入堆,循环结束就能得到第K小的元素了
4、这里题目的关键还是在于多个有序序列循环K次小顶堆的出堆总是能保证依次出队的是最小、次小等依此类推,循环K次小顶堆的入堆也总是能保证所有有序序列各自的最小值都在堆中(除非该有序序列被访问完毕)

from typing import List
import heapq
'''
378. 有序矩阵中第 K 小的元素
题目描述:给你一个n x n矩阵matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。
请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。
你必须找到一个内存复杂度优于O(n2) 的解决方案。
示例 1:输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8输出:13解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素是 13
题眼:Top K
思路1、优先队列(大顶堆):保持堆内元素总数为k,那么堆顶元素即为第k个最小元素
思路2、归并排序:采用优先队列(小顶堆),归并k次得到第k小的数,类似“23. 合并 K 个升序链表”
'''class Solution:def kthSmallest(self, matrix: List[List[int]], k: int) -> int:# # 思路1、优先队列(大顶堆):保持堆内元素总数为k,那么堆顶元素即为第k个最小元素# n = len(matrix)# que = []# for i in range(n):#     for j in range(n):#         heapq.heappush(que, -matrix[i][j])  # 添加相反数:因为python默认维护小顶堆#         if len(que) > k:#             heapq.heappop(que)# return -que[0]# 思路2、归并排序:采用优先队列(小顶堆),归并k次得到第k小的数,类似“23. 合并 K 个升序链表”n = len(matrix)que = []# 初始化优先队列(小顶堆)for i in range(n):heapq.heappush(que, (matrix[i][0], i, 0))  # 将每一行的最小值加入:堆顶元素为第一小的元素for _ in range(k - 1):_, i, j = heapq.heappop(que)if j + 1 <= n - 1:  # 每次归并都要加入出堆序列中的最小值,保证所有排序序列各自的最小值都在堆中,直到序列为空heapq.heappush(que, (matrix[i][j + 1], i, j + 1))return heapq.heappop(que)[0]if __name__ == '__main__':obj = Solution()while True:try:in_line = input().strip().split('=')matrix = []for row in in_line[1].strip()[1: -4].split(']')[:-1]:matrix.append([int(n) for n in row.split('[')[1].split(',')])k = int(in_line[2])# print(matrix, k)print(obj.kthSmallest(matrix, k))except EOFError:break

373. 查找和最小的 K 对数字

1、优先队列用于归并排序的经典题目:没有显式给定多个有序序列,可以模拟成“378. 有序矩阵中第 K 小的元素”的矩阵形式,将nums1当作矩阵的行,nums2当作矩阵的列,再把矩阵的每一行看作是一个个有序序列
2、该题目按照值域二分+双指针需要分别添加小于小于pairSum的数对和等于pairSum的数对,非常容易出错,换成归并排序的解法就没那么繁杂了
3、这道题我也一开始我按照TopK 大用小顶堆,TopK 小用大顶堆反着来先用的大顶堆,并保持元素总数为K,提交后发现也会超时!
4、直接用小顶堆实现归并排序,初始化时将所有nums1的元素+nums[0](每个有序序列的最小值)入堆,再循环K次小顶堆的出堆和出堆元素对应序列下个元素的入堆,循环结束就能得到第K小的元素了
5、这道题目还有个细节,可能K会大于所有数对的数量,即升序返回数对就可以了,是一种不用排序的情况
6、这里题目的关键还是在于多个有序序列循环K次小顶堆的出堆总是能保证依次出队的是最小、次小等依此类推,循环K次小顶堆的入堆也总是能保证所有有序序列各自的最小值都在堆中(除非该有序序列被访问完毕)

from typing import List
import heapq
'''
373. 查找和最小的 K 对数字
题目描述:给定两个以 升序排列 的整数数组 nums1 和 nums2,以及一个整数 k。
定义一对值(u,v),其中第一个元素来自nums1,第二个元素来自 nums2。
请找到和最小的 k个数对(u1,v1), (u2,v2) ... (uk,vk)。
示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,6]解释: 返回序列中的前 3 对数:[1,2],[1,4],[1,6],[7,2],[7,4],[11,2],[7,6],[11,4],[11,6]
题眼:Top K
思路1、优先队列(大顶堆):保持元素总数为k个,最终k个元素为最小的k个:会超时
思路2、归并排序:利用上两个序列是递增数组的条件,模拟成“378. 有序矩阵中第 K 小的元素”的矩阵形式,将nums1当作矩阵的行,nums2当作矩阵的列,建立优先
队列(小顶堆),归并k次得到前最k小的数
'''class Solution:def kSmallestPairs(self, nums1: List[int], nums2: List[int], k: int) -> List[List[int]]:# # 思路1、优先队列(大顶堆):保持元素总数为k个,最终k个元素为最小的k个:会超时# que = []# for n1 in nums1:#     for n2 in nums2:#         heapq.heappush(que, (-(n1 + n2), n1, n2))  # 大顶堆:添加相反数,因为Python默认维护小顶堆#         if len(que) > k:#             heapq.heappop(que)# result = [[0] for _ in range(len(que))]# for i in range(len(result) - 1, -1, -1):#     _, n1, n2 = heapq.heappop(que)#     result[i] = [n1, n2]# return result# 思路2、归并排序:利用上两个序列是递增数组的条件,模拟成“378. 有序矩阵中第 K 小的元素”的矩阵形式,将nums1当作矩阵的行,nums2当作矩阵的列,# 建立优先队列(小顶堆),归并k次得到前最k小的数result = []# 情况1、所有数对都要被返回:也可以把k=min(k,len(nums1)*len(nums2))合并到情况2去写if len(nums1) * len(nums2) <= k:for n1 in nums1:for n2 in nums2:result.append([n1, n2])return result# 情况2、归并k次得到前最k小的数que = []# 初始化优先队列(小顶堆)for i in range(len(nums1)):heapq.heappush(que, (nums1[i] + nums2[0], i, 0))# 归并k次得到前最k小的数for _ in range(k):_, i, j = heapq.heappop(que)result.append([nums1[i], nums2[j]])if j + 1 <= len(nums2) - 1:heapq.heappush(que, (nums1[i] + nums2[j + 1], i, j + 1))return resultif __name__ == '__main__':obj = Solution()while True:try:in_line = input().strip().split('=')nums1 = [int(n) for n in in_line[1].strip().split('[')[1].split(']')[0].split(',')]nums2 = [int(n) for n in in_line[2].strip().split('[')[1].split(']')[0].split(',')]k = int(in_line[3])# print(nums1, nums2, k)print(obj.kSmallestPairs(nums1, nums2, k))except EOFError:break

719. 找出第 K 小的数对距离

1、优先队列用于归并排序的经典题目:没有显式给定多个有序序列,可以模拟成以索引0~len(nums)-2为距离起点的len(nums)-1个有序序列,每个序列的元素总数为len(nums)-1、len(nums)-2…1
2、这道题我也一开始我按照TopK 大用小顶堆,TopK 小用大顶堆反着来先用的大顶堆,并保持元素总数为K,提交后发现也会超时!
3、直接用小顶堆实现归并排序,初始化时将所有以索引0~len(nums)-2为距离起点的距离(每个有序序列的最小值)入堆,再循环K次小顶堆的出堆和出堆元素对应序列下个元素的入堆,循环结束就能得到第K小的元素了,最终提交后还是超时了,主要是这道题目有个比较长的测试用例,没办法,看来还是只能用值域二分+双指针了

import heapq
from typing import List
'''
719. 找出第 K 小的数对距离
题目描述:数对 (a,b) 由整数 a 和 b 组成,其数对距离定义为 a 和 b 的绝对差值。
给你一个整数数组 nums 和一个整数 k ,数对由 nums[i] 和 nums[j] 组成且满足 0 <= i < j < nums.length 。
返回 所有数对距离中 第 k 小的数对距离。
示例 1:输入:nums = [1,3,1], k = 1输出:0解释:数对和对应的距离如下:(1,3) -> 2(1,1) -> 0(3,1) -> 2距离第 1 小的数对是 (1,1) ,距离为 0 。
题眼:TopK
思路1、优先队列(大顶堆):保持堆内元素个数为K,则堆顶元素为第K小的:会超时
思路2、归并排序:优先队列(小顶堆),类似“373. 查找和最小的 K 对数字”,本题在排序后会存在len(nums)-1个升序序列,然后进行k次归并排序得到前最k小的数
'''class Solution:def smallestDistancePair(self, nums: List[int], k: int) -> int:# # 思路1、优先队列(大顶堆):保持堆内元素个数为K,则堆顶元素为第K小的:会超时# que = []# for i in range(len(nums)):#     for j in range(i + 1, len(nums)):#         heapq.heappush(que, -abs(nums[i] - nums[j]))  # 大顶堆:添加相反数,因为Python默认维护小顶堆#         if len(que) > k:#             heapq.heappop(que)# return -que[0]# 思路2、归并排序:优先队列(小顶堆),类似“373. 查找和最小的 K 对数字”,本题在排序后会存在len(nums)-1个升序序列,然后进行k次归并排序# 得到前最k小的数nums.sort()que = []for i in range(len(nums) - 1):  # 初始化 优先队列(小顶堆)heapq.heappush(que, (abs(nums[i] - nums[i + 1]), i, i + 1))result = 0# 归并k次得到前最k小的数for _ in range(k):result, i, j = heapq.heappop(que)if j + 1 <= len(nums) - 1:heapq.heappush(que, (abs(nums[i] - nums[j + 1]), i, j + 1))return resultif __name__ == "__main__":obj = Solution()while True:try:in_line = input().strip().split('=')nums = [int(n) for n in in_line[1].split('[')[1].split(']')[0].split(',')]k = int(in_line[2])print(obj.smallestDistancePair(nums, k))except EOFError:break

相关文章:

leetcode分类刷题:队列(Queue)(三、优先队列用于归并排序)

1、当TopK问题出现在多个有序序列中时&#xff0c;就要用到归并排序的思想了 2、将优先队列初始化为添加多个有序序列的首元素的形式&#xff0c;再循环K次优先队列的出队和出队元素对应序列下个元素的入队&#xff0c;就能得到TopK的元素了 3、这些题目好像没有TopK 大用小顶堆…...

无线窨井水位监测仪|排水管网智慧窨井液位计安装案例

城市窨井在城市排水、雨水、污水输送等方面发挥着重要作用&#xff0c;是污水管网、排水管网 建设重要的组成部分。随着城镇精细化建设及人民安全防范措施水平的提高&#xff0c;对窨井内水位的监测提出了更高的要求&#xff0c;他是排水管网问题的晴雨表&#xff0c;窨井信息化…...

024 - STM32学习笔记 - 液晶屏控制(一) - LTDC与DMA2D初始

024- STM32学习笔记 - LTDC控制液晶屏 在学习如何控制液晶屏之前&#xff0c;先了解一下显示屏的分类&#xff0c;按照目前市场上存在的各种屏幕材质&#xff0c;主要分为CRT阴极射线管显示屏、LCD液晶显示屏、LED显示屏、OLED显示屏&#xff0c;在F429的开发板上&#xff0c;…...

Python数据容器:dict(字典、映射)

1、什么是字典 Python中的字典是通过key找到对应的Value&#xff08;相当于现实生活中通过“字”找到“该字的含义” 我们前面所学习过的列表、元组、字符串以及集合都不能够提供通过某个东西找到其关联的东西的相关功能&#xff0c;字典可以。 例如 这里有一份成绩单&#xf…...

2023年基因编辑行业研究报告

第一章 行业发展概况 1.1 定义 基因编辑&#xff08;Gene Editing&#xff09;&#xff0c;又称基因组编辑&#xff08;Genome Editing&#xff09;或基因组工程&#xff08;Genome Engineering&#xff09;&#xff0c;是一项精确的科学技术&#xff0c;可以对含有遗传信息的…...

Spring MVC:请求转发与请求重定向

Spring MVC 请求转发请求重定向附 请求转发 转发&#xff08; forward &#xff09;&#xff0c;指服务器接收请求后&#xff0c;从一个资源跳转到另一个资源中。请求转发是一次请求&#xff0c;不会改变浏览器的请求地址。 简单示例&#xff1a; 1.通过 String 类型的返回值…...

按键灯待机2秒后灭掉

修改文件&#xff1a;/device/mediatek/mt6580/init.mt6580.rc chown system system /sys/class/leds/red/triggerchown system system /sys/class/leds/green/triggerchown system system /sys/class/leds/blue/triggerchown system system sys/devices/platform/device_info/…...

SpringBoot通过自定义注解实现日志打印

目录 前言&#xff1a; 正文 一.Spring AOP 1.JDK动态代理 2.Cglib动态代理 使用AOP主要的应用场景&#xff1a; SpringBoot通过自定义注解实现日志打印 一.Maven依赖 二.ControllerMethodLog.class自定义注解 三.Spring AOP切面方法的执行顺序 四.ControllerMethodL…...

代码随想录算法训练营第七天 |151.翻转字符串里的单词

今天是代码随想录的第七天&#xff0c;写了力扣的151.翻转字符串里的单词&#xff1b; 之后或许还要再琢磨琢磨 代码随想录链接 力扣链接 151.翻转字符串里的单词&#xff0c;代码如下&#xff1a; # class Solution: # def reverseWords(self, s: str) -> str: # …...

【WebRTC---源码篇】(十:一)WEBRTC 发送视频RTP包

RTPSenderVideo在整个框架中起到重要的作用,它把采集的数据进行编码,并且在流程中会进行将编码后的数据进行RTP打包,最后发送到网络层 RTPSenderVideo::SendVideo //对编码数据打包 bool RTPSenderVideo::SendVideo(int payload_type,absl::optional<VideoCodecType>…...

cmd 90 validate error!(达梦数据库日志报错)

达梦数据库报错 error-cmd 90 validate error! 环境介绍1 解决办法 环境介绍 某生产环境数据库启动后&#xff0c;dm_实例名_202309.log&#xff0c;偶尔报错cmd 90 validate error! 1 解决办法 接口用错了&#xff0c;消息非法&#xff0c;比如用 6 的 JDBC 连 7 或 7 的 …...

Shape Completion Enabled Robotic Grasping

摘要-这项工作提供了一个架构&#xff0c;使机器人能够通过形状完成抓取规划。形状完成是通过使用3D卷积神经网络(CNN)来完成的。该网络是在我们自己的新的开源数据集上训练的&#xff0c;该数据集包含了从不同视角捕获的超过44万个3D样本。运行时&#xff0c;从单个视角捕获的…...

【C++】构造函数意义 ( 构造函数显式调用与隐式调用 | 构造函数替代方案 - 初始化函数 | 初始化函数缺陷 | 默认构造函数 )

文章目录 一、构造函数意义1、类的构造函数2、构造函数显式调用与隐式调用3、构造函数替代方案 - 初始化函数4、初始化函数缺陷5、默认构造函数6、代码示例 - 初始化函数无法及时调用 一、构造函数意义 1、类的构造函数 C 提供的 构造函数 和 析构函数 作为 类实例对象的 初始化…...

VMware16安装ghost版win7

文章目录 准备工作GHO 文件装机工具 新建虚拟机配置虚拟机还需要一个 CD/DVD PE 安装步骤分区还原挂载 CD/DVD开始还原 还原之后 准备工作 GHO 文件 可以去百度搜索这种文件&#xff0c;我这里是从系统之家下载的deepin win7 ghost 系统 装机工具 因为下载的 ghost 版的 w…...

项目集成swagger,访问不到swagger页面

项目集成swagger 文章目录 前言一、背景二、问题复现1.Full authentication is required to access this resource2.Illegal DefaultValue null for parameter type integer 总结 前言 项目集成swagger这个没啥好整的&#xff0c;maven项目就在pom文件导入依赖&#xff0c;ser…...

微信小程序怎么隐藏顶部导航栏(navigationBar)变透明的解决方案

怎么隐藏小程序顶部导航栏&#xff08;navigationBar&#xff09;&#xff1f; 官网说&#xff1a;Navigation是小程序的顶部导航组件&#xff0c;当页面配置 navigationStyle 设置为 custom 的时候可以使用此组件替代原生导航栏。 那么&#xff0c;我们就知道这种效果是可以…...

RabbitMQ基础概念-02

RabbitMQ是基于AMQP协议开发的一个MQ产品&#xff0c; 首先我们以Web管理页面为 入口&#xff0c;来了解下RabbitMQ的一些基础概念&#xff0c;这样我们后续才好针对这些基础概念 进行编程实战。 可以参照下图来理解RabbitMQ当中的基础概念&#xff1a; 虚拟主机 virtual hos…...

从构建者到设计者的低代码之路

低代码开发技术&#xff0c;是指无需编码或通过少量代码就可以快速生成应用程序的工具&#xff0c;一方面可降低企业应用开发人力成本和对专业软件人才的需求&#xff0c;另一方面可将原有数月甚至数年的开发时间成倍缩短&#xff0c;帮助企业实现降本增效、灵活迭代。那么&…...

Linux创建进程 及父子进程虚拟空间 多进程GDB调试

父子进程的资源是读时共享&#xff0c;写时拷贝&#xff0c;用到某一个资源&#xff0c;比如说改变变量的值的时候才去拷贝这个变量到一个独立的空间 父子进程的关系&#xff1a; 区别&#xff1a; 1.fork&#xff08;&#xff09;函数的返回值不同 父进程中&#xff1a;>…...

uni-app 之 表格设置

uni-app 之 表格设置 image.png <view style"padding: 3%; border: #1296db;"><table style"width: 100%; border-collapse: collapse; "><tr style"height: 50px;border: 2px solid;border-color: #F7F7F7;"><td style&qu…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...