精华内容
参与话题
问答
  • 家用功放机大都采用环形变压器供电。环形变压器有漏磁小、转换效率高、频率响应宽等特点,可以提高功放机音质。如果环形变压器烧坏,又买不到原配型号来替换,那只有采取手工绕制的方法来复制。下面介绍手工绕制的...
  •  照片1 代表性的环形铁心示例 环形铁心绕线最重要,数十匝以下的绕线数很少时的自作是很容易的,铁心大小和材质,需考虑信号电力、通频带范围进行选定 表6.1是有代表性的铁心阿密顿公司的FT(环形铁心)系列。...
  • (1)结构设计  聚光镜可根据物镜工作距离长短设计成单片、双片、三片式,结构如图⒍7所示,其...假设环形透镜内径为3,外径为夕,焦距∫′,那么环形透镜的拦截比卩=b/a,实践证明焦移与光束的拦截系数有关,旧越
  • MPP环形磁芯是将大约2%的钼,81%的镍,17%的铁组成的磁性合金磨研成细微的粉末,用陶瓷黏合剂隔离粉末,形成均匀气隙,在极大的压力下压制成环形,最后在磁芯上涂上绝缘物而制成。  铁镍钼(MPP:MolyPermalloy...
  • 1. 环形变压器是电子变压器的一大类型,已广泛应用于家电设备和其他技术要求较高的电子设备中,环形变压器的主要用途是作为电源变压器和隔离变压器。环形变压器在国外已有完整的系列,广泛应用于计算机、医疗设备、...
  • 针对大型循环流化床锅炉存在的二次风穿透不佳、受热面布置困难等问题,提出了适用于600 MW等级及以上超(超)临界循环流化床锅炉的炉型——六回路环形炉膛循环流化床,并进行冷态试验研究,考查环形炉膛内气固流动特性和...
  • 在该方案实施的过程中为了保证主立井井壁安全,采用FLAC软件对环形截水巷合理位置进行研究,研究表明:环形截水巷内壁距主井井筒圆心的最佳距离L为10.75 m,且2 m×2 m的环形截水巷道在开挖支护后其自身的稳定性满足要求...
  • 基于环形套筒窑的结构特点,提出了集煤粉分相燃烧、无焰燃烧、废气循环、烟气喷射技术于一体的燃煤环形套筒窑的清洁燃烧方案。重点阐述了燃煤环形套筒窑的燃烧室结构特点、煤粉燃烧特性及分相燃烧技术的控制。通过...
  • 环形扩散器是一个扩展区域,尽管结构简单,但在某些工程和热学应用中非常重要。 在本研究中,进行了数值模拟以研究环形扩散器中的温度场和流动结构特性。 环形扩散器的轮毂由直的半凹形管SSDT组成。 以空气作为工作...
  • 判断是否存在环形链表并找到环形的入口

    笔者在先后在腾讯和百度从事技术研发多年,利用工作之余重刷leetcode,本文 GitHub:https://github.com/youngyangyang04/leetcode-master 已经收录,欢迎star,fork,共同学习,一起进步。

    题目地址

    https://leetcode-cn.com/problems/linked-list-cycle-ii/

    思路

    这道题目,不仅考察对链表的操作,而且还需要一些数学运算。

    首先如何判断链表有环呢

    可以使用快慢指针法, 分别定义 fast 和 slow指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。

    为什么fast 走两个节点,slow走一个节点,有环的话,一定会在环内相遇呢,而不是永远的错开呢

    首先第一点: fast指针一定先进入环中,如果fast 指针和slow指针相遇的话,一定是在环中相遇,这是毋庸置疑的。

    那么我们来看一下,为什么fast指针和slow指针一定会相遇呢

    可以画一个环,然后让 fast指针在任意一个节点开始追赶slow指针。

    会发现最终都是这种情况, 如下图:

    在这里插入图片描述

    fast和slow各自再走一步, fast和slow就相遇了

    这是因为fast是走两步,slow是走一步,其实相对于slow来说,fast是一个节点一个节点的靠近slow的,所以fast一定可以和slow重合。

    此时我们已经可以判断链表是否有环了,那么接下来要找这个环的入口了

    假设从头结点到环形入口节点 的节点数为x。
    环形入口节点到 fast指针与slow指针相遇节点 节点数为y。
    从相遇节点 再到环形入口节点节点数为 z。 如图所示:
    在这里插入图片描述

    那么相遇时:
    slow指针走过的节点数为: x + y
    fast指针走过的节点数: x + y + n (y + z),n为fast指针在环内走了n圈才遇到slow指针, (y+z)为 一圈内节点的个数

    因为fast指针是一步走两个节点,slow指针一步走一个节点, 所以 fast指针走过的节点数 = slow指针走过的节点数 * 2

    (x + y) * 2 = x + y + n (y + z)

    两边消掉一个(x+y): x + y = n (y + z)

    因为我们要找环形的入口,那么要求的是x,因为x表示 头结点到 环形入口节点的的距离。

    所以我们要求x ,将x单独放在左面:x = n (y + z) - y

    在从n(y+z)中提出一个 (y+z)来,整理公式之后为如下公式:x = (n - 1) (y + z) + z 注意这里n一定是大于等于1的,因为 fast指针至少要多走一圈才能相遇slow指针

    这个公式说明什么呢,

    先拿n为1的情况来举例,意味着fast指针在环形里转了一圈之后,就遇到了 slow指针了。

    当 n为1的时候,公式就化解为 x = z

    这就意味着,从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点

    也就是在相遇节点处,定义一个指针index1,在头结点处定一个指针index2。

    让index1和index2同时移动,每次移动一个节点, 那么他们相遇的地方就是 环形入口的节点。

    那么 n如果大于1是什么情况呢,就是fast指针在环形转n圈之后才遇到 slow指针。

    其实这种情况和n为1的时候 效果是一样的,一样可以通过这个方法找到 环形的入口节点,只不过,index1 指针在环里 多转了(n-1)圈,然后再遇到index2,相遇点依然是环形的入口节点。

    代码

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode *detectCycle(ListNode *head) {
            ListNode* fast = head;
            ListNode* slow = head;
            while(fast != NULL && fast->next != NULL) {
                slow = slow->next;
                fast = fast->next->next;
                // 快慢指针相遇,此时从head 和 相遇点,同时查找直至相遇
                if (slow == fast) {
                    ListNode* index1 = fast;
                    ListNode* index2 = head;
                    while (index1 != index2) {
                        index1 = index1->next;
                        index2 = index2->next;
                    }
                    return index2; // 返回环的入口
                }
            }
            return NULL;
        }
    };
    

    更过干货文章持续更新,可以微信搜索「代码随想录」第一时间围观,关注后,回复「Java」「C++」 「python」「简历模板」等等,有我整理多年的学习资料、简历模板和电子书。

    展开全文
  • 介绍了一种新型的多路环形线圈车辆检测器的设计方法。该方法基于电磁感应原理,通过测量振荡电路的频率信号判断车辆通过的基本信息。本设计中的多路环形线圈车辆检测器硬件基于ATmega128单片机内部计数器与外部...
  • 这款CSS3表单非常有特色,估计各位不太会看到过,这是一款CSS3环形特色表单,整个环形由一个个输入框组成,当用鼠标激活输入框焦点时,环形圈即会转到该表单项。我们也可以用tab键来逐个选择输入框来输入表单内容。 ...
  • 采用全深冻结法施工的井筒在冻结壁解冻后,冻结孔与冻结管外的环形空间极易成为导水通道,严重威胁矿井安全。钱营孜矿西风井采用全冻结法施工,井筒施工到井底水仓时,由于上部局部含水层解冻出水,总涌水量达到25 m~3/h,...
  • 针对环形振荡器的功耗大、噪声大、线性度差等问题,基于TSMC 55 nm工艺,提出了一种新型交叉前馈结构环形振荡器电路。深入分析了器件自身热噪声、闪烁噪声对环形振荡器输出相噪贡献百分比,利用电容滤波技术来降低...
  • 环形喷射器是实现井下反循环取样技术的关键部件。采用数值模拟和现场实验相结合的方法,研究了取样钻头内嵌环形喷射器的性能。研究发现,对于取样钻头内嵌的6喷嘴环形喷射器,喷嘴安装角和喷嘴直径是影响喷射器性能和...
  • 提出一种基于数字信号总线的环形通信架构,该架构可很好地应用于MMCS。 不仅可降低模块间通信隔离的等级.更增强了整个MMCS的可扩展性。详细分析了环形通信架构的工作原理 及其应用于MMCS的优势所在,并以输入串联...
  • 为缓解城市道路交叉口处左转车流对交叉口通行能力带来的压力,通过对十字交叉路口及现有环形交叉路口交通流线的分析,基于环形交叉口提出部分左转立体化的概念设计:将4条道路中向左转车流较多的2条左转车道进行立体化:...
  • 用于计算环形变压器相关参数,如初级次级匝数,线径及电阻线重等数值。软件计量单位:电压单位:V匝数单位:T空载电流:mA其余电流单位:A电阻电位: Ω电源频率:Hz调整率:%磁通密度:T单位...
  • 环形链表

    千次阅读 2020-09-20 21:18:05
    环形链表 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0...

    环形链表

    给定一个链表,判断链表中是否有环。

    如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

    如果链表中存在环,则返回 true 。 否则,返回 false 。

    解答:

    class Solution {
    public:
        bool hasCycle(ListNode *head) {
            ListNode* slow=head;
            ListNode* fast=head;
            while(fast&&fast->next){
                fast=fast->next->next;
                slow=slow->next;
                if(slow==fast)
                return true;
              
            }
              return false;
        }
    };
    

    使用快慢指针法,如果快指针追上了慢指针,则有环,注意此处的while(fast&&d=fast->next)。

    展开全文
  • 环形队列

    2020-10-13 13:58:07
    环形队列 优点:高复用 思路: 定义一个头指针front,指向队列中的第一个元素,初始值 front=0; 定义一个尾指针rear,指向队列的最后一个元素的后一个位置,即预留出一个空闲位置,构成环形,初始值rear=0; 队列空...

    环形队列

    优点:高复用

    思路:
    定义一个头指针front,指向队列中的第一个元素,初始值 front=0;
    定义一个尾指针rear,指向队列的最后一个元素的后一个位置,即预留出一个空闲位置,构成环形,初始值rear=0;
    队列空:front==rear;
    队列满:(rear+1)% maxSize == front;
    队列中的有效数据个数:(maxSize+rear-front)% maxSize;

    代码实现

    private int maxSize;	//队列的最大容量
    	private int front;		//队列的第一个元素
    	private int rear;		//队列的最后一个元素的后一个位置,即指向的位置是预留出来的位置,空出来构成环形
    	private int queueArray[];		//环形队列
    	
    	//初始化队列
    	public loopQueueArray(int maxSize) {
    		this.maxSize = maxSize;
    		queueArray = new int[this.maxSize];
    		rear = 0;
    		front = 0;
    	}
    	
    	/**
    	 * 判断队列是否为空
    	 */
    	public boolean isNull() {
    		return rear == front;
    	}
    	
    	/**
    	 * 判断队列是否已满
    	 */
    	public boolean isFull() {
    		return (rear+1)%maxSize == front;
    	}
    	
    	/**
    	 * 添加队列元素
    	 */
    	public void addQueue(int number) {
    		//判断队列容量是否已满
    		if(isFull()) {
    			System.out.println("\n已达到最大存储容量,无法在继续添加\n");
    			return;
    		}
    		queueArray[rear] = number;
    		rear = (rear+1)%maxSize;
    	}
    	
    	/**
    	 * 出队列的元素
    	 */
    	public int getQueue() {
    		//判断队列是否为空
    		if(isNull()) {
    			throw new RuntimeException("队列中没有元素");
    		}
    		//定义临时变量,存储取出的值,再操作front
    		int temp = queueArray[front];
    		front = (front+1)%maxSize;
    		return temp;
    	}
    	
    	/**
    	 * 显示队列中的元素
    	 */
    	public void showAllQueue() {
    		//判断队列是否为空
    		if(isNull()) {
    			System.out.println("\n队列中没有元素\n");
    			return;
    		}
    		System.out.println();
    		//确定队列中有几个有效元素:rear
    		for(int i=front;i<front+(maxSize-front+rear)%maxSize;i++) {
    			System.out.println("queueArray["+(i%maxSize)+"]="+queueArray[i%maxSize]);
    		}
    		System.out.println();
    	}
    
    展开全文
  • 之前看到很多环形进度条,看上去很酷,然后就试着学习他们的代码,结果发现实现一个环形进度条一点也不简单。我就在想一个简单的进度条有这么复杂吗?自己摸索后,有一个简单的实现方法。现在分享给大家,有需要的...
  • 我们构建了一个基于自由粒子模型的宇宙学模型,该模型被约束在嵌入的环形米糠中,并在体积空间中绕特定轴进行一般旋转。 一些相关的问题,例如,骨骼的旋转轴,重力背景的存在及其与骨骼的一般角速度的关系,其量子...
  • 为降低嵌入式软PLC系统传输数据的误码率和丢包率,设计了嵌入式软PLC系统的环形缓冲区,建立了环形缓冲区数学模型,分析得到了环形缓冲区的状态方程、状态转移概率及其容量和被充满的概率通式。利用仿真得到不同条件下...
  • canvas绘制环形进度条

    2020-08-31 07:34:43
    本文主要介绍了canvas绘制环形进度条的示例代码,具有很好的参考价值,下面跟着小编一起来看下吧
  • 这次我们要分享一款非常富有创意的jQuery图表插件,这款jQuery环形百分比图表插件有以下特点:1.图表外观是环形的,因此也十分特别。2.图表数据有百分比显示,你可以直截了当地看到当前数据情况。3.鼠标滑过环形时,...

空空如也

1 2 3 4 5 ... 20
收藏数 18,510
精华内容 7,404
关键字:

环形