原创 求【1...N】的全排列

#include #include using namespace std; class Solution { public: vector<vector> permute(vector nums) { vector<vector

原创 Mysql查詢優化

Mysql查詢優化最常見方法是索引 一. 索引 對於不同的MySql存儲引擎,索引實現細節不同,這裏不展開了。 1).索引的優缺點 優點: 可以在查詢時避免全表掃描,加快查詢速度。不僅可以加快單表查詢速度,對多表查詢加速更加明顯 缺點

原创 單鏈表排序

單鏈表排序 初始化: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> //節點結構 struct node { int val; struct

原创 leetcode: 刪除鏈表中的冗餘結點

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the orig

原创 劍指offer:找出數組中只出現一次的兩個數字

一個整型數組裏除了兩個數字之外,其他的數字都出現了偶數次。請寫程序找出這兩個只出現一次的數字。 #include<unordered_map> class Solution { public: //num1和num2分別保存這兩個只出

原创 部分有序數組中利用二叉查找尋找最大值

對於部分有序數組,想要尋找最大值,最簡單的方法是遍歷,時間複雜度爲O(n),但我們可以由有序性想到利用二叉查找,比如:對於一個先升後降數組,尋找其中最大值 for example: input:1 2 3 4 5 6 6 1 out

原创 聊聊C++關鍵字const

面試的時候被問到const關鍵字,我只說出了幾條,沒說全,感覺面試官很不滿意,回去就惡補了一下,現在跟大家分享一下: (1)const變量和對象一旦定義就不能改變,故必須初始化 (2)默認狀況下,const對象只在文件內有效。如果

原创 利用隊列同步器構建獨佔鎖

隊列同步器是構建鎖和其他同步組件的基礎框架,他使用一個int型成員變量表示同步狀態,通過內置FIFO隊列來完成資源獲取線程的排隊工作。 同步器AbstractQueuedSynchonizer是一個抽象類,他的使用方式是繼承,子類通過繼

原创 利用隊列同步器AbstractQueuedSynchronizer構建TwinsLock

TwinsLock在同一時刻最多支持兩個線程訪問,超過兩個線程的訪問將被阻塞,這是共享式的訪問 package twinslock; import java.util.concurrent.TimeUnit; import java.ut

原创 利用隊列同步器構建ReentrantLock

ReentrantLock即重入鎖,支持一個線程對資源重複加鎖。除此之外,該鎖還支持獲取鎖時公平性和非公平性選擇。 前面我的博客中實現的Mutex不支持重入。Synchronized關鍵字隱式支持重進入。 對於ReentrantLoc

原创 leetcode原題--將字符串切割爲若干迴文子串的最小切割次數

leetcode題目:Given a string s, partition s such that every substring of the partition is a palindrome. Return the minimum

原创 Kruskal算法求最小生成樹(圖是連通的)

Kruskal算法求圖的最小生成樹: Kruskal算法本質上上是貪心算法,即每次從圖中選取權重最小的安全邊(安全邊就是加入最小生成樹中不會形成迴路的邊)加入最小生成樹(剛開始爲空集)中,然後把改邊從原圖中剔除,繼續重複前面的步驟,直到從

原创 Parlindrome-Partitioning

class Solution { public: vector<vector<string>> partition(string s) { vector<vector<string>> res;

原创 TCP三次握手和四次揮手

這是一個很有意思的問題~   首先,我們要知道TCP是全雙工的,即客戶端在給服務器端發送信息的同時,服務器端也可以給客戶端發送信息。而半雙工的意思是A可以給B發,B也可以給A發,但是A在給B發的時候,B不能給A發,即不同時,爲半雙工。

原创 快速排序

源代碼: import java.util.Scanner; /** * * @author liuzhenzhao */ public class MyQuickSort { /** * @param arg