fast

个人安装给HPE GEN10使用openmediavault搭建NAS的小结

北战南征 提交于 2020-01-27 22:17:51
用omv 4的版本 5的插件少, 直接下载omv的ISO安装,要是先装Debian再装omv比较麻烦, 安装开始选英文,不要选中文,国家区域可以选中国,编码首先保证是英文UTF-8 安装过程中在DHCP设置好之后,就拔掉网线,拔掉网线!!!! 之后在确认更新源的时候会反复 来回确认三四遍,不管他,最后会通过的, 如果一直在线安装,碰上网络不好,安装会比较慢 安装好之后,ssh进去更改更新源,,安装axel,设置apt-fast多线程下载, 不知道是不是因为我的是移动的网,omv更新真慢, 插件用命令行安装 apt-fast install 插件包名称,不用加版本号 待续。。。。 来源: CSDN 作者: overcet6 链接: https://blog.csdn.net/overcet6/article/details/104094898

面试精选:链表问题集锦 转

两盒软妹~` 提交于 2020-01-27 07:53:23
原文:http://wuchong.me/blog/2014/03/25/interview-link-questions/ 链表问题在面试过程中也是很重要也很基础的一部分,链表本身很灵活,很考查编程功底,所以是很值得考的地方。我将复习过程中觉得比较好的链表问题整理了下。 下面是本文所要用到链表节点的定义: struct Node{ int data; Node* next;}; 1. 在O(1)时间删除链表节点 题目描述: 给定链表的头指针和一个节点指针,在O(1)时间删除该节点。[Google面试题] 分析: 本题与《编程之美》上的「从无头单链表中删除节点」类似。主要思想都是「狸猫换太子」,即用下一个节点数据覆盖要删除的节点,然后删除下一个节点。但是如果节点是尾节点时,该方法就行不通了。 代码如下: //O(1)时间删除链表节点,从无头单链表中删除节点void deleteRandomNode(Node *cur){ assert(cur != NULL); assert(cur->next != NULL); //不能是尾节点 Node* pNext = cur->next; cur->data = pNext->data; cur->next = pNext->next; delete pNext;} 2. 单链表的转置 题目描述: 输入一个单向链表,输出逆序反转后的链表

[leetcode]Sort List @ Python

江枫思渺然 提交于 2020-01-27 03:19:11
原题地址:http://oj.leetcode.com/problems/sort-list/ 题意:链表的排序。要求:时间复杂度O(nlogn),空间复杂度O(1)。 解题思路:由于题目对时间复杂度和空间复杂度要求比较高,所以查看了各种解法,最好的解法就是归并排序,由于链表在归并操作时并不需要像数组的归并操作那样分配一个临时数组空间,所以这样就是常数空间复杂度了,当然这里不考虑递归所产生的系统调用的栈。      这里涉及到一个链表常用的操作,即快慢指针的技巧。设置slow和fast指针,开始它们都指向表头,fast每次走两步,slow每次走一步,fast到链表尾部时,slow正好到中间,这样就将链表截为两段。      运行时需要将中文注释删掉,leetcode oj平台里面不支持中文字符。 代码: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # @param head, a ListNode # @return a ListNode def merge(self, head1, head2): if head1 == None: return head2 if

已知链表中含有环,返回这个环的起始位置

此生再无相见时 提交于 2020-01-26 09:46:23
已知链表中含有环,返回这个环的起始位置 继上一篇博客关于双指针(快慢指针)判断是否有环,这篇关于已知链表有环,返回这个环的起始位置 先来看代码: Node * detectCycle ( Node * head ) { Node * fast , * slow ; fast = slow = head ; while ( fast != null && fast . next != null ) { fast = fast . next . next ; slow = slow . next ; if ( fast == slow ) break ; } slow = head ; while ( slow != fast ) { fast = fast . next ; slow = slow . next ; } return slow ; } 一步一步来看: 首先 fast = slow = head ; while ( fast != null && fast . next != null ) { fast = fast . next . next ; slow = slow . next ; if ( fast == slow ) break ; } 这一段代码表示,在这个有环代码中,slow与速度为其二倍的fast 相遇,并停留在相遇地点。因为上一篇解释过了

链表找环的入口

十年热恋 提交于 2020-01-25 20:35:33
package linkedlist ; /** * Created by lijie35 on 2020-01-20 10:43 AM . */ public class ListEntrance { public static void main ( String [ ] args ) { Node h1 = new Node ( 0 ) ; Node h2 = new Node ( 1 ) ; Node h3 = new Node ( 2 ) ; Node h4 = new Node ( 3 ) ; Node h5 = new Node ( 4 ) ; h3 . next = h5 ; h5 . next = h4 ; h4 . next = h5 ; System . out . println ( findEntrance ( h3 ) . val ) ; } public static Node findEntrance ( Node node ) { if ( node == null || node . next == null ) return new Node ( - 1 ) ; Node meetingPoint = mettingPoint ( node ) ; if ( meetingPoint == null ) return new Node ( -

Leetcode P80 Remove Duplicates from Sorted Array II @python Lang (LL)

时光总嘲笑我的痴心妄想 提交于 2020-01-25 09:45:23
Link: https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/ Content: Method: two pointers (slow and fast pointers) Algorithm: same with P26 单独讨论长度为0,1,2的情况 slow pointer从i = 1开始,fast pointer j = 2 to len(nums) if nums[j] != nums[i-1] 隔两个数比较,移动slow pointer i,将fast pointer 赋值 因为 pointers 是index,return i + 1 Code: class Solution ( object ) : def removeDuplicates ( self , nums ) : """ :type nums: List[int] :rtype: int """ if len ( nums ) < 3 : return len ( nums ) else : i = 1 #slow pointer for j in range ( 2 , len ( nums ) ) : #fast pointer if nums [ j ] != nums [ i - 1 ] : i += 1

输出链表中倒数第k个节点

假装没事ソ 提交于 2020-01-24 22:16:24
题目描述 输入一个链表,输出该链表中倒数第k个结点。 struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; 算法的实现:快慢指针 ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(pListHead==NULL||k==0) return NULL; ListNode *fast=NULL; fast=pListHead; ListNode *slow=NULL; slow=pListHead; for(int i=1;i<k;i++)//注意此处PListHeaD是头结点,需要移动K-1个,之间相差K if(fast->next!=NULL)//注意此处快指针的next存在和不存在的情况 fast=fast->next; else return NULL; while(fast->next!=NULL) { fast=fast->next; slow=slow->next; } return slow; } 来源: https://www.cnblogs.com/wft1990/p/7436624.html

Leetcode 141题 环形链表(Linked List Cycle) Java语言求解

萝らか妹 提交于 2020-01-24 20:23:07
题目描述: 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 Map集合解法 思路: 创建一个map集合,key为节点,value为地址值,因为ListNode没有重写toString()方法,所以用toString()方法返回的内容作为value。 如果map中存在当前节点的toString()方法返回的内容,则存在环。 /** * 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 ) { if ( head == null ) { return false ; } Map < ListNode , String > map = new HashMap < ListNode , String > ( ) ; while ( head != null ) { if ( map .

leetcode刷题(37)——141. 环形链表

送分小仙女□ 提交于 2020-01-24 18:36:54
给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1: 输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点。 示例 2: 输入:head = [1,2], pos = 0 输出:true 解释:链表中有一个环,其尾部连接到第一个节点。 示例 3: 输入:head = [1], pos = -1 输出:false 解释:链表中没有环。 这题也有两种解法: 方法一:哈希表 思路 我们可以通过检查一个结点此前是否被访问过来判断链表是否为环形链表。常用的方法是使用哈希表。 算法 我们遍历所有结点并在哈希表中存储每个结点的引用(或内存地址)。如果当前结点为空结点 null(即已检测到链表尾部的下一个结点),那么我们已经遍历完整个链表,并且该链表不是环形链表。如果当前结点的引用已经存在于哈希表中,那么返回 true(即该链表为环形链表)。 public boolean hasCycle(ListNode head) { Set<ListNode> nodesSeen = new HashSet<>(); while (head != null) { if (nodesSeen

Leetcode 141题 环形链表(Linked List Cycle) Java语言求解

佐手、 提交于 2020-01-24 09:02:57
题目描述: 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 Map集合解法 思路: 创建一个map集合,key为节点,value为地址值,因为ListNode没有重写toString()方法,所以用toString()方法返回的内容作为value。 如果map中存在当前节点的toString()方法返回的内容,则存在环。 /** * 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) { if(head == null){ return false; } Map<ListNode,String> map = new HashMap<ListNode,String>(); while(head != null){ if(map.containsValue(head.toString())){ return