原创 (五)LeetCode鏈表類問題

206. 反轉鏈表 反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 進階: 你可以迭代或遞歸地反轉鏈表。你能否用兩種方法解決這道題? class Solution

原创 linux進程間通信

進程pcb與文件描述符 在進程間完成數據傳遞需要藉助操作系統提供特殊的方法,如:文件、管道、信號、共享內存、消息隊列、套接字、命名管道等。隨着計算機的蓬勃發展,一些方法由於自身設計缺陷被淘汰或者棄用。常用的進程間通信方式有: 管道(使用

原创 (一)操作系統概述

一、軟件系統的系統需求 (1)OS的功能性需求 計算機用戶需要的用戶命令,由OS實現的所有用戶命令所構成的集合常被人們稱爲OS的Interface,有時也稱爲命令接口。 應用軟件需要的系統調用,由OS實現的所有系統調用所構成的集合被人們稱

原创 玩轉算法面試:(三)LeetCode數組類問題

數組中的問題其實最常見。 排序:選擇排序;插入排序;歸併排序;快速排序 查找:二分查找法 數據結構:棧;隊列;堆 1、二分查找法 template<typename T> int binarySearch( T arr[], int n

原创 軟鏈接和硬鏈接

linux系統硬鏈接和軟連接: 1、文件都由文件名和數據組成,在linux中文件被分爲兩個部分:用戶數據和元數據。 用戶數據:即文件數據塊,記錄真實數據的地方。 元數據:文件的附加屬性,記錄文件的大小,名稱,創建時間,

原创 IPv6鄰居發現協議(NDP)

鄰居發現協議(NDP)替代了IPv4的ARP,並且添加了新的功能。它的所有功能都是基於ICMPv6報文來實現。NDP基於ICMPv6實現,NDP使用的所有報文均封裝在ICMPv6報文中,所以NDP被認爲是3層協議。在三層完成地址解析,主要

原创 玩轉算法面試:(四)查找類問題

set 和 map: 常見操作: insert find erase change (map) map和set的底層實現爲紅黑樹unordered_map和unordered_set的底層實現爲哈希表 哈希表不管查找、插入

原创 網絡工具分析

1.使用ping檢查連通性有以下6個步驟 (1)使用ipconfig/all觀察本地網絡設置是否正確。 (2)ping 127.0.0.1,來檢查本地的TCP/IP協議有沒有設置好。 (3)ping本機IP地址,這樣是爲了檢查本機的IP地

原创 排序算法總結

排序算法可以分爲內部排序和外部排序。 內部排序是數據記錄在內存中進行排序。 而外部排序是因排序的數據很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。 常見的內部排序算法有:插入排序、希爾排序、選擇排序、冒泡排序、歸併排序、快速

原创 排序與檢索

最大數 給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結果可能非常大,所以你需要返回

原创 (二)docker的安裝和使用

一、docker 安裝 1、獲取最新版本的 Docker 安裝包 $ sudo apt-get update $ sudo apt-get install -y docker.io 2、查看docker的版本號 root@jason-

原创 (三)創建鏡像

當我們從docker鏡像倉庫中下載的鏡像不能滿足我們的需求時,我們可以通過以下兩種方式對鏡像進行更改。 1.從已經創建的容器中更新鏡像,並且提交這個鏡像 2.使用 Dockerfile 指令來創建一個新的鏡像 (1)更新已有鏡像 roo

原创 vector實現

(1)push_back的時候均攤,時間複雜度還是o(1) template <typename T> class MyVector { private: T* data; int size; //

原创 簡單遞歸函數算法複雜度分析

(1)計算x的n次方的冪運算 double pow( double x, int n ){ assert( n >= 0 ); if( n == 0 ) return 1.0;

原创 動態規劃

1,斐波那契數列 (1)遞歸方法 int fib(int n) { if(n == 0) return 0; if(n == 1) return 1; return fib