原创 字節序問題:大端還是小端

1. 大端字節序和小端字節序 大端字節序:地址低位存儲值的高位,地址高位存儲值的低位; 小端字節序:地址低位存儲值的低位,地址高位存儲值的高位; 以數字:0x12345678爲例,地址用相對地址,表示由低到高。 big-Endia

原创 快速排序的穩定化實現

穩定排序的概念: 保證排序前2個相等的數其在序列的前後位置順序和排序後它們兩個的前後位置順序相同。 例如:a[i]==a[j]&&i 通常的快速排序爲什麼不穩定? 快速排序初始的版本: int partition(vector<int

原创 約瑟夫問題解答

問題: 編號爲1,2,····n的n個人按順時針做成一圈,一開始任選一個正整數作爲報數的上限值m,從第一個人開始按順時針方向自1開始順時針報數,報到m時停止,這個人出列。從他在順時針方向上的下一個人開始重新報數,如此下去,直至所有人出列

原创 有序數組和無序數組的二分查找

1. 有序數組的二分查找 這種情況下,也是最經常的二分查找。 已知一個已經按遞增(或遞減)排好序的數組,想找到某個數值爲k的元素。 根據下標idx查找 #include <iostream> #include <vector> #inc

原创 Array Nesting

A zero-indexed array A consisting of N different integers is given. The array contains all integers in the range [0, N

原创 排序總結

1. 直接插入排序 //直接插入排序 void insert_sort(int a[], int n) { int i, j, temp; for (i = 1; i < n; i++) { //暫

原创 STL 中list的常用接口

鏈表的接口: #include <iostream> #include <list> #include <algorithm> using namespace std; int main() { list<int> ilist; c

原创 TCP連接的握手和揮手

TCP握手: 客戶端發送一個SYN報文段(即一個在TCP頭部的SYN位字段置位的TCP/IP數據包),並 指明自己想要連接的端口號和它的客戶端初始序列號(記爲x)。客戶端發送的這個SYN報文段稱爲段1。 服務器發送自己的SYN報文段

原创 字典序全排列遞歸總結:值傳遞與引用傳遞

問題: 給定一個具有n個元素的集合(n>=1),要求輸出這個集合中元素的所有可能的排列。 Given a collection of distinct numbers, return all possible permutations.

原创 Longest Line of Consecutive One in Matrix

Given a 01 matrix M, find the longest line of consecutive one in the matrix. The line could be horizontal, vertical, di

原创 自定義String類

//一個自建的MyString類 #include <iostream> #include <cstring> using namespace std; class String{ private: char *

原创 AVL樹的插入操作

AVL tree (Adelson-Velskii-Landis tree) 一顆AVL樹是其每個節點的左子樹和右子樹的高度最多差1的二叉查找樹。加了額外的平衡條件是爲了確保整棵樹的深度爲O(logN) 在高度爲h的AVL樹,最少節點數S

原创 360筆試遇到的博弈問題(DP)

昨天,第一次參加找工作的筆試,最後一道編程題,總覺得很熟悉,但是沒有做出來。以後,有時間記錄下遇到的問題,便於以後看看。 題目是360公司的,大概講的是兩隊海盜分金子,每次只能從一端取(左或者右),假設每隊都按照最優的策略,問最後各取多

原创 單鏈表總結

#include <iostream> #include <vector> #include <string> using namespace std; void print(int a[], int n) { for (int

原创 linux 命令: ps 和 top

ps命令提供進程的一次性查看,結果不是動態的;top對命令實時監控。 1. ps ps命令只會顯示運行在當前控制檯下的屬於當前用戶的進程。 UNIX風格 參數 描述 -A 顯示所有進程 -a 顯示除控制進程和終端進