原创 LeetCode之字符串相加(415)

題目:字符串相加 給定兩個字符串形式的非負整數num1和num2,計算它們的和: 注意: 1.num1和num2的長度都小於5100。 2.num1和num2都只包含數字0-9。 3.num1和num2都不包含任何前導零。 4.不能使用任

原创 排序算法之快速排序(C語言)

一、原理講解 快速排序的核心思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

原创 排序算法之冒泡排序(C語言)

一、原理講解 所謂排序,就是將一串無序數據,按照其中某個或某些關鍵的大小,遞增或遞減排列起來的操作,排序算法,就是如何使得記錄按照要求排列的方法。 下面對冒泡排序進行詳解。這裏我們先對冒泡二字進行初步的說明。冒泡指的就是水下的氣泡,從水底

原创 Leetcode之合併兩個有序鏈表

之前雖然對鏈表有進行學習,但是沒有怎麼使用過,導致對鏈表有很大程度的遺忘以及應用過程中遇到了很多問題。   題目:合併兩個有序鏈表 將兩個有序鏈表爲一個新的有序鏈表並返回,新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 示例: 輸入:

原创 排序算法之插入排序(C語言)

一、原理講解 插入排序算法核心思想:將無序數組中的元素,根據其值的大小,插入有序子數組中。類似於我們打撲克牌的時候,一邊摸牌,一遍擺牌。遇到小的直接插到牌首,遇到大的直接插入牌尾,遇到中間的則在中間空出一個位置,將其插入。 假定有一個無序

原创 Linux之IO多路複用

一、什麼是IO多路複用 關於這部分內容請移步到下面的鏈接進行學習,本文主要介紹select,poll和epoll三種多路複用的實現。 https://www.zhihu.com/question/32163005   二、select的實

原创 LeetCode之67. 二進制求和

一、題目 二、題目分析 關於這個題目,相信很多人(包括我)本能反應是先將字符串轉換爲二進制數,然後再對其求解,最後再將求解的結果轉換爲字符串返回。 這裏我們需要注意的題目並沒有說明二進制字符串的長度,所以不管我們定義多大的變量去存儲字符

原创 LeetCode之637. 二叉樹的層平均值

一、題目 給定一個非空二叉樹, 返回一個由每層節點平均值組成的數組. /** * Definition for a binary tree node. * struct TreeNode { * int val; *

原创 linux學習之進程相關內容

本文只是簡單介紹個人在學習進程中的部分內容,僅具參考意義。 一、進程相關概念 進程的定義:“進程”是操作系統的最基本、最重要的概念之一。但迄今爲止對這一概念還沒有一個確切的統一的描述。下面給出幾種對進程的定義描述。進程是程序的一次執行。進