原创 char 型字符串更加安全的拷貝函數 strlcpy 實現方式

strlcpy 是一個類似 strcpy 的字符串拷貝函數,它的目的是保證拷貝過程中緩衝區不會溢出,並且最後緩衝區內是一個有效的C字符串。它的定義如下: size_t strlcpy(char * dest, const char * s

原创 尋找1~n之間的質數

尋找1~n之間的質數 #include<iostream> #include<vector> using namespace std; int main() { int n; cin >> n; vector<i

原创 C++實現選擇排序算法

選擇排序算法的基本思想:每一輪找到最小(升序)的元素放在當前序列的最前面。 特點:先找到最小元素,記錄下標,最後交換。 時間複雜度:O(n^2)。以下爲實現代碼: #include <iostream> using namespace

原创 常見的C++關鍵字簡介

asm     用於在C++源碼中內嵌彙編語言。 alignas(C++11起)     用來設置內存中的對齊方式,最小是8字節對齊,也可以是16,32,64,128等。 alignof(C++11起)     用於返回指定類型的對齊方式

原创 STL中的容器和算法簡述

STL的特點:數據結構與算法分離,使其變得非常通用。 順序容器:vector(向量)、list(雙向鏈表)、deque(雙端隊列)。 關聯容器:set(集合)、multiset(多重集合)、map(映射)、multimap(多重映射)。

原创 查找一個字符串中另一個字符串的個數(動態規劃)

輸入一個較長的字符串S和一個較短的字符串T,計算在S每個字符之前(包括當前字符)T出現的次數,並將其輸出。 輸入用例:ababac 輸出用例:011222 解題思想:動態規劃 #include<iostream> #include<ve

原创 面試題——全排列問題

問題描述:輸入一個整型數字N,求1~n組成數組的全排列 輸入用例:3 輸出用例: 1 2 3 1 2 3 2 1 3 2 3 1 3 1 2 3 2 1 解題思想:將當前元素與後面元素交換,交換過程中並進行遞歸,以下爲實現代碼: #in

原创 面試題:尋找峯值

題目描述:峯值元素是指其值大於左右相鄰值的元素。 給定一個輸入數組 nums,其中 nums[i] ≠ nums[i+1],找到峯值元素並返回其索引。 數組可能包含多個峯值,在這種情況下,返回任何一個峯值所在位置即可。 你可以假設 num

原创 字符串中單詞翻轉並大小寫轉換

輸入一行字符串,包括大小寫英文字母、空格、點,對每個word進行翻轉,並且將大寫字母轉化爲小寫字母,小寫字母轉化爲大寫字母。 輸入用例:I am a GOOD student. 輸出用例:i MA A doog TNEDUTS. #in

原创 尋找字符串的最長迴文子串

題目描述:給定一個字符串 s,找到 s 中最長的迴文子串。 示例 : 輸入: "babad" 輸出: "bab" 注意: "aba" 也是一個有效答案。 解題思路:利用中心擴展算法,一個子串一共(2n-1)箇中心,因爲兩個相鄰字母之間還有

原创 實現一種數據結構,支持 push(),pop(),findMin() 三種操作

一道經典的面試題,讓實現一種數據結構,支持 push(),pop(),findMin() 三種操作,並且時間複雜度不能超過O(logN) class MyStack { public: //通過構造函數進行初始化 MyStack(

原创 尋找1~n之間的質數,複雜度小於O(n*n)

尋找1~n之間的質數,複雜度小於O(n*n) #include<iostream> #include<vector> using namespace std; int main() { int n; cin >> n;

原创 爲什麼要三次握手?爲什麼要四次揮手?爲什麼有TIME_WAIT?

爲什麼要三次握手? 如果是兩次握手就會出現服務器處於連接狀態,而客戶端並沒有與其建立連接。 假設是兩次握手,當Client需要建立連接,向Server1發送SYN請求後,但是遲遲得不到迴應,這時Client就可能去和其他Server2建立

原创 推到吧骨牌,編程題

題目描述 輸入描述: 輸入爲一個長度不超過1000的,僅包含‘L’,‘R’,‘.’的字符串 輸出描述: 根據輸入,輸出一個僅由‘L’,‘R’,‘.’組成的結果字符串 示例1 輸入 .L.R...LR....L. 輸出 LL.RR

原创 什麼是Redis?爲什麼要用redis?redis的應用場景有哪些?redis的數據類型有哪些?

1、什麼是Redis? Redis是一款內存高速緩存數據庫,一種支持Key-Value的存儲系統。 2、爲什麼要用redis? redis以內存作爲數據存儲介質,讀取數據的效率極高,遠遠超過一般數據庫。 redis與memcache不同點