fast

LeetCode 19. 删除链表的倒数第N个节点(Golang)

天涯浪子 提交于 2019-11-29 20:42:29
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func removeNthFromEnd ( head * ListNode , n int ) * ListNode { if n <= 0 || head == nil { return head } fast := head for i := 1 ; i <= n && fast != nil ; i ++ { fast = fast . Next } if fast == nil { return head . Next } slow := head for fast . Next != nil { slow = slow . Next fast = fast . Next } slow . Next = slow . Next . Next return head } 来源: CSDN 作者: 李柏林

链表---给定一个链表,删除链表中倒数第n个节点,返回链表的头节点

一个人想着一个人 提交于 2019-11-29 20:37:46
链表中的节点个数大于等于n 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1->2->3->5->null ListNode removeNthFromEnd(ListNode head, int n) { // write your code here ListNode dummy = new ListNode(-1); dummy.next = head; ListNode fast = dummy; ListNode slow = dummy; while (fast != null && n > -1) { fast = fast.next; n--; } while (fast != null) { fast = fast.next; slow = slow.next; } slow.next = slow.next.next; return dummy.next; } 来源: CSDN 作者: 哎呦、不错哦 链接: https://blog.csdn.net/l1394049664/article/details/81369474

[leetcode-JavaScript]---19.删除链表的倒数第N个节点

徘徊边缘 提交于 2019-11-29 20:37:26
题目 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 复制代码 说明: 给定的 n 保证是有效的。 思考 这道题要用双指针来实现。先用fast指针前进n,然后让slow从head开始和fast一起前进,直到fast到了末尾,此时slow的下一个节点就是要删除的节点。(另外,若fast一开始前进n就已经不在链表中了,说明要删除的节点正是head节点,那么直接返回head的下一个节点接口。) 解决方法 双指针 /* * @lc app=leetcode.cn id=19 lang=javascript * * [19] 删除链表的倒数第N个节点 */ /** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} head * @param {number} n * @ return {ListNode} */ var removeNthFromEnd = function (head, n) { if (head===null)

LeetCode 234. Palindrome Linked List

陌路散爱 提交于 2019-11-29 14:00:29
题目 : Given a singly linked list, determine if it is a palindrome. Example 1: Input: 1->2 Output: false Example 2: Input: 1->2->2->1 Output: true Follow up: Could you do it in O(n) time and O(1) space? 这道题是要求一个给定的链表是否为回文列表(然后满脑子513orz),刚开始想到的办法就是reverse整个链表然后判断是否相等,但是这样会使用O(n)的空间,看了discussion发现可以直接reverse后半部分链表,让快慢指针分别走两步和走一步,找到链表的中间值,再把慢指针后面的给反转一下,然后代码就很快写出来了。在reverse的时候一不小心还return错了以后一定要注意,写isPal的时候注意中间处理的细节,其他好像就没什么了。时间复杂度O(n),24ms,67.11%,空间复杂度O(1),12.9M,43.1%(虽然看到有人在讨论这把原始输入给改掉了行不行但是我觉得不影响)。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode

环形链表

假装没事ソ 提交于 2019-11-29 13:43:43
1.hash表:太慢了,内存消耗太多了。。当做思路看看得了。。 1 bool hasCycle(ListNode *head) { 2 unordered_map<ListNode*, bool> map; 3 ListNode* temp = head; 4 bool res = false; 5 while(temp!=nullptr) 6 { 7 if (map.count(temp)) 8 { 9 res = true; 10 break; 11 } 12 map[temp] = true; 13 temp = temp->next; 14 } 15 return res; 16 } 2.快慢指针 1 bool hasCycle(ListNode *head) { 2 ListNode* fast=head; 3 ListNode* slow = head; 4 bool res = false; 5 while (fast&&fast->next) 6 { 7 fast = fast->next->next; 8 slow = slow->next; 9 if (fast == slow) 10 { 11 res = true; 12 break; 13 } 14 } 15 return res; 16 } 来源: https://www.cnblogs.com

LeetCode刷题记录

好久不见. 提交于 2019-11-29 11:15:37
LeetCode——141.环形链表 题目描述 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例1: 示例2: 示例3: 分析: 参考:(整理的非常详细) 1. https://www.cnblogs.com/xudong-bupt/p/3667729.html 2. https://segmentfault.com/a/1190000008453411 代码展示: /** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public boolean hasCycle ( ListNode head ) { ListNode slow = head ; ListNode fast = head ; while ( fast != null && fast . next != null ) { slow = slow . next ; fast = fast . next

Paper Reading:RCNN-SPP-Fast RCNN-Faster RCNN

一笑奈何 提交于 2019-11-29 00:54:11
本文对基于RCNN框架的几个模型进行介绍和总结。 [目标检测][base64str0] RCNN 论文:Rich feature hierarchies for accurate object detection and semantic segmentation 发表时间:2014 发表作者:(加州大学伯克利分校)Ross Girshick 发表刊物/会议:CVPR 本文具有很多比较重要的意义。 1、在 Pascal VOC 2012 的数据集上,能够将目标检测的验证指标 mAP 提升到 53.3%,这相对于之前最好的结果提升了整整 30%. 2、这篇论文证明了可以讲神经网络应用在自底向上的候选区域,这样就可以进行目标分类和目标定位。 3、这篇论文也带来了一个观点,那就是当你缺乏大量的标注数据时,比较好的可行的手段是,进行神经网络的迁移学习,采用在其他大型数据集训练过后的神经网络,然后在小规模特定的数据集中进行 fine-tune 微调。 候选区域与 CNN 结合 R-CNN利用候选区域与 CNN 结合做目标定位。其中借鉴了滑动窗口思想,R-CNN 采用对区域进行识别的方案。具体是: 给定一张输入图片,从图片中提取 2000 个类别独立的候选区域。 对于每个区域利用 CNN 抽取一个固定长度的特征向量。 再对每个区域利用 SVM 进行目标分类。 [R-CNN1]

Rotate List

北城余情 提交于 2019-11-28 18:46:31
Given a list, rotate the list to the right by k places, where k is non-negative. For example: Given 1->2->3->4->5->NULL and k = 2 , return 4->5->1->2->3->NULL . struct ListNode { int m_nKey; ListNode* next; } class Solution{ public: ListNode* rotateRight(ListNode *head, int k){ if(!head) return NULL; int n = 0; ListNode *cur = head; while(cur){ ++n; cur = cur->next; } k %= n; ListNode *fast = head, *slow = head; for(int i = 0; i < k; ++i) { if(fast) fast = fast->next; } if(!fast) return head; while(fast->next){ fast = fast->next; slow = slow->next; } fast->next = head; fast = slow->next; slow-

论文笔记 Fast R-CNN细节

拟墨画扇 提交于 2019-11-28 14:08:43
当我决心认真地看Faster R-CNN代码的时候,我就觉得有必要把 Fast R-CNN的论文的细节再从新完整地看一遍了。对,是细节,如何实现的部分,于是有了此篇博客。请注意是 Fast R-CNN笔记。 其网络结构流程如上图,将整个图片输入卷积层和pooling层,得到卷积层特征图。然后针对每一个proposal带来的感兴趣区域RoI,通过RoI pooling layer得到在特征图中RoI区域部分,通过全连接层得到特征向量。 网络结构与训练 RoI pooling layer: 该层主要将感兴趣区域提取出来单独进行max pooling操作得到一个H*W(如7*7)的固定大小的小的特征图。文章中的RoI主要是卷积层特征图中的一个矩形窗口。每一个RoI用四维量表示(r,c,h,w),(r,c)是top-left点坐标,(h,w)是RoI的高和宽。因此,该层的操作主要是将h*w大小的RoI通过池化操作,变成一个 H*W大小的特征图。 预训练模型初始化: 主要实验了三种情况,每次都是使用5个max pooling 层和3-5层卷积层。第一种直接将最后一个max pooling层变成RoI pooling层,第二种网络最后的全连接层和softmax层替换成上图中的结构,第三种修改网络使其分别输入图像和RoI两种数据。 Fine-tuning for detection:

R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD, R-FCN学习总结(持续更新)

此生再无相见时 提交于 2019-11-28 14:08:07
R-CNN这个领域目前研究非常活跃,先后出现了R-CNN, SPP-net ,Fast R-CNN, Faster R-CNN , R-FCN , YOLO , SSD 等研究, Ross Girshick (rbg大神)作为这个领域的开山鼻祖总是神一样的存在,R-CNN、Fast R-CNN、Faster R-CNN、YOLO都和他有关。这些创新的工作其实很多时候是把一些传统视觉领域的方法和深度学习结合起来了,比如选择性搜索( Selective Search )和图像金字塔( Pyramid )等。 深度学习相关的目标检测方法也可以大致分为两派: 基于区域提名的,如R-CNN, SPP-net, Fast R-CNN, Faster R-CNN, R-FCN; 端到端(End-to-End)无需区域提名的,如YOLO, SSD。 发展历程: 基于区域提名的R-CNN家族 R-CNN解决的是,“为什么不用CNN做classification呢?” Fast R-CNN解决的是,“为什么不一起输出bounding box和label呢?” Faster R-CNN解决的是,“为什么还要用selective search呢?” R-CNN 2014年提出,其意义在于:CNN除了在object classification领域的有一大的应用,证明了CNN的广泛应用性