原创 linux驚羣效應

轉載自:https://blog.csdn.net/lyztyycode/article/details/78648798 linux驚羣效應 詳細的介紹什麼是驚羣,驚羣在線程和進程中的具體表現,驚羣的系統消耗和驚羣的處理方法

原创 Leetcode 543.二叉樹的直徑

給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過根結點。 示例 : 給定二叉樹 1 / \ 2 3 / \ 4

原创 LeetCode 146.LRU緩存機制

運用你所掌握的數據結構,設計和實現一個 LRU (最近最少使用) 緩存機制。它應該支持以下操作: 獲取數據 get 和 寫入數據 put 。 獲取數據 get(key) - 如果密鑰 (key) 存在於緩存中,則獲取密鑰的值(總

原创 Leetcode 42.接雨水

給定 n 個非負整數表示每個寬度爲 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。 上面是由數組 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度圖,在這種情況下,可以接 6 個單位的雨水(藍色部分

原创 C++ 實現atoi,memcpy, strcpy

C++ 實現atoi,memcpy, strcpy 是C++ 常見面試題 atoi,要考慮開頭有空格,有正負號,以及溢出的情況。 int myAtoi(char * str) { if(str==NULL) {

原创 Leetcode 518. 零錢兌換 II

給定不同面額的硬幣和一個總金額。寫出函數來計算可以湊成總金額的硬幣組合數。假設每一種面額的硬幣有無限個。 示例 1: 輸入: amount = 5, coins = [1, 2, 5] 輸出: 4 解釋: 有四種方式可以湊成總金額

原创 C++ 面試題——實現String類

需要實現:構造函數, 拷貝構造函數,複製運算符,析構函數,size函數等等。 主要思路:用cstring的一些庫函數來實現。 底層的數據結構char* 會用到 strlen, strcpy等庫函數 #include <iost

原创 LeetCode 31. 下一個排列

實現獲取下一個排列的函數,算法需要將給定數字序列重新排列成字典序中下一個更大的排列。 如果不存在下一個更大的排列,則將數字重新排列成最小的排列(即升序排列)。 必須原地修改,只允許使用額外常數空間。 以下是一些例子,輸入位於左側列

原创 LeetCode 24.兩兩交換鏈表中的節點

給定一個鏈表,兩兩交換其中相鄰的節點,並返回交換後的鏈表。 你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。 示例: 給定 1->2->3->4, 你應該返回 2->1->4->3. tips : 原地交換,時間複雜

原创 LeetCode 673.最長遞增子序列的個數

給定一個未排序的整數數組,找到最長遞增子序列的個數。 示例 1: 輸入: [1,3,5,4,7] 輸出: 2 解釋: 有兩個最長遞增子序列,分別是 [1, 3, 4, 7] 和[1, 3, 5, 7]。 示例 2: 輸入: [2,

原创 常見排序算法C++實現

快速排序: void recursive(vector<int>& vec,int start,int end) { if(start>=end) { return ; } int spl

原创 LeetCode 611. 有效三角形的個數

給定一個包含非負整數的數組,你的任務是統計其中可以組成三角形三條邊的三元組個數。 示例 1: 輸入: [2,2,3,4] 輸出: 3 解釋: 有效的組合是: 2,3,4 (使用第一個 2) 2,3,4 (使用第二個 2) 2,2,

原创 劍指offer 面試題2:實現單例模式

參考鏈接: https://www.cnblogs.com/sunchaothu/p/10389842.html 版本1:使用靜態局部變量,缺點只能在C++11以上環境中運行 class Singleton{ public: ~

原创 LeetCode 328. 奇偶鏈表

給定一個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裏的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。 請嘗試使用原地算法完成。你的算法的空間複雜度應爲 O(1),時間複雜度應爲 O(nodes)

原创 LeetCode 54.二叉搜索樹的第k大節點

給定一棵二叉搜索樹,請找出其中第k大的節點。 示例 1: 輸入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2 輸出: 4 示例 2: 輸入: root = [5,3,6,2,4,nul