黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

微軟面試100題2010年版全部答案集錦(含下載地

系統 1938 0

微軟等數據結構+算法面試100題全部答案集錦


作者:July、阿財。
時間:二零一一年十月十三日。

  • 引言

無私分享造就開源的輝煌。

今是二零一一年十月十三日,明日14日即是本人剛好開博一周年。在一周年之際,特此分享出微軟面試全部100題答案的完整版,以作為對本博客所有讀者的回饋。

一年之前的10月14日,一個名叫July (頭像為手冢國光)的人在一個叫csdn的論壇上開帖分享微軟等公司數據結構+算法面試100題,自此,與上千網友一起做,一起思考,一起解答這些面試題目,最終成就了一個名為: 結構之法算法之道 編程面試 算法研究 并重的博客,如今,此博客影響力逐步滲透到海外,及至到整個互聯網。

在此之前,由于本人笨拙,這微軟面試100題的答案只整理到了前60題( 第1-60題答案 可到本人資源下載處下載: http://v_july_v.download.csdn.net/ ),故此,常有朋友留言或來信詢問后面40題的答案。只是因個人認為: 、答案只是作為一個參考,不可太過依賴; 、常常因一些事情耽擱(如在整理最新的今年九月、十月份的面試題: 九月騰訊,創新工場,淘寶等公司最新面試十三題 十月百度,阿里巴巴,迅雷搜狗最新面試十一題 ); 、個人正在針對那100題一題一題的寫文章,多種思路,不斷優化 即成 程序員編程藝術系列 (詳情,參見文末)。自此,后面40題的答案遲遲未得整理。且個人已經整理的前60題的答案,在我看來,是有諸多問題與弊端的,甚至很多答案都是錯誤的。

(微軟10題永久討論地址: http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9_9.html )

互聯網總是能給人帶來驚喜。前幾日,一位現居美國加州的名叫阿財的朋友發來一封郵件,并把他自己做的全部100題的答案一并發予給我,自此,便似遇見了知己。十分感謝。
任何東西只有分享出來才更顯其價值。本只需貼出后面40題的答案,因為前60題的答案本人早已整理上傳至網上,但多一種思路多一種參考亦未嘗不可。特此,把阿財的答案再稍加整理番,然后把全部100題的答案現今都貼出來。若有任何問題,歡迎不吝指正。謝謝。

上千上萬的人都關注過此100題,且大都都各自貢獻了自己的思路,或回復于 微軟100題維護地址 上,或回復于本博客內,人數眾多,無法一一標明,特此向他們諸位表示敬意和感謝。謝謝大家,諸君的努力足以影響整個互聯網,咱們已經迎來一個分享互利的新時代。

  • 微軟面試100題全部答案

最新整理的全部100題的答案參見如下(重復的,以及一些無關緊要的題目跳過。且因尊重阿財,未作過多修改。因此, 有些答案是還有問題的 ,最靠譜的答案以 程序員編程藝術系列 為準,亦可參考個人之前整理的前60題的答案:

更新 :有朋友反應,以下的答案中思路過于簡略,還是這句話,一切以 程序員編程藝術系列 (多種思路,多種比較,細細讀之自曉其理)為準( 我沒怎么看阿財的這些答案,因為編程藝術系列已經說得足夠清晰了。 之所以把阿財的這份答案分享出來, 一者 ,編程藝術系列目前還只寫到了第二十二章,即100題之中還只詳細闡述了近30道題; 二者 ,他給的答案全部是用英文寫的,這恰好方便國外的一些朋友參考; 三者 是為了給那一些急功近利的、浮躁的人一份速成的答案罷了 )。July、二零一一年十月二十四日更新。

當然,讀者朋友有任何問題,你也可以跟阿財聯系,他的郵箱地址是: kevinn9#gmail.com (把#改成@)。

1.把二元查找樹轉變成排序的雙向鏈表
題目:
輸入一棵二元查找樹,將該二元查找樹轉換成一個排序的雙向鏈表。
要求不能創建任何新的結點,只調整指針的指向。
10
/ \
6 14
/ \ / \
4 8 12 16
轉換成雙向鏈表
4=6=8=10=12=14=16。
首先我們定義的二元查找樹節點的數據結構如下:
struct BSTreeNode
{
int m_nValue; // value of node
BSTreeNode *m_pLeft; // left child of node
BSTreeNode *m_pRight; // right child of node
};
ANSWER:
This is a traditional problem that can be solved using recursion.
For each node, connect the double linked lists created from left and right child node to form a full list.

/**
* @param root The root node of the tree
* @return The head node of the converted list.
*/
BSTreeNode * treeToLinkedList(BSTreeNode * root) {
BSTreeNode * head, * tail;
helper(head, tail, root);
return head;
}

void helper(BSTreeNode *& head, BSTreeNode *& tail, BSTreeNode *root) {
BSTreeNode *lt, *rh;
if (root == NULL) {
head = NULL, tail = NULL;
return;
}
helper(head, lt, root->m_pLeft);
helper(rh, tail, root->m_pRight);
if (lt!=NULL) {
lt->m_pRight = root;
root->m_pLeft = lt;
} else {
head = root;
}
if (rh!=NULL) {
root->m_pRight=rh;
rh->m_pLeft = root;
} else {
tail = root;
}
}

2.設計包含min 函數的棧。
定義棧的數據結構,要求添加一個min 函數,能夠得到棧的最小元素。
要求函數min、push 以及pop 的時間復雜度都是O(1)。
ANSWER:
Stack is a LIFO data structure. When some element is popped from the stack, the status will recover to the original status as before that element was pushed. So we can recover the minimum element, too.

struct MinStackElement {
int data;
int min;
};

struct MinStack {
MinStackElement * data;
int size;
int top;
}

MinStack MinStackInit(int maxSize) {
MinStack stack;
stack.size = maxSize;
stack.data = (MinStackElement*) malloc(sizeof(MinStackElement)*maxSize);
stack.top = 0;
return stack;
}
void MinStackFree(MinStack stack) {
free(stack.data);
}
void MinStackPush(MinStack stack, int d) {
if (stack.top == stack.size) error(“out of stack space.”);
MinStackElement* p = stack.data[stack.top];
p->data = d;
p->min = (stack.top==0?d : stack.data[top-1]);
if (p->min > d) p->min = d;
top ++;
}
int MinStackPop(MinStack stack) {
if (stack.top == 0) error(“stack is empty!”);
return stack.data[--stack.top].data;
}
int MinStackMin(MinStack stack) {
if (stack.top == 0) error(“stack is empty!”);
return stack.data[stack.top-1].min;
}


3.求子數組的最大和
題目:
輸入一個整形數組,數組里有正數也有負數。
數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。
求所有子數組的和的最大值。要求時間復雜度為O(n)。
例如輸入的數組為1, -2, 3, 10, -4, 7, 2, -5,和最大的子數組為3, 10, -4, 7, 2,
因此輸出為該子數組的和18。
ANSWER:
A traditional greedy approach.
Keep current sum, slide from left to right, when sum < 0, reset sum to 0.

int maxSubarray(int a[], int size) {
if (size<=0) error(“error array size”);
int sum = 0;
int max = - (1 << 31);
int cur = 0;
while (cur < size) {
sum += a[cur++];
if (sum > max) {
max = sum;
} else if (sum < 0) {
sum = 0;
}
}
return max;
}

4.在二元樹中找出和為某一值的所有路徑
題目:輸入一個整數和一棵二元樹。
從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。
打印出和與輸入整數相等的所有路徑。
例如輸入整數22 和如下二元樹
10
/ \
5 12
/ \
4 7
則打印出兩條路徑:10, 12 和10, 5, 7。
二元樹節點的數據結構定義為:
struct BinaryTreeNode // a node in the binary tree
{
int m_nValue; // value of node
BinaryTreeNode *m_pLeft; // left child of node
BinaryTreeNode *m_pRight; // right child of node
};
ANSWER:
Use backtracking and recurison. We need a stack to help backtracking the path.
struct TreeNode {
int data;
TreeNode * left;
TreeNode * right;
};

void printPaths(TreeNode * root, int sum) {
int path[MAX_HEIGHT];
helper(root, sum, path, 0);
}

void helper(TreeNode * root, int sum, int path[], int top) {
path[top++] = root.data;
sum -= root.data;
if (root->left == NULL && root->right==NULL) {
if (sum == 0) printPath(path, top);
} else {
if (root->left != NULL) helper(root->left, sum, path, top);
if (root->right!=NULL) helper(root->right, sum, path, top);
}
top --;
sum += root.data; //....
}


5.查找最小的k 個元素
題目:輸入n 個整數,輸出其中最小的k 個。
例如輸入1,2,3,4,5,6,7 和8 這8 個數字,則最小的4 個數字為1,2,3 和4。
ANSWER:
This is a very traditional question...
O(nlogn): cat I_FILE | sort -n | head -n K
O(kn): do insertion sort until k elements are retrieved.
O(n+klogn): Take O(n) time to bottom-up build a min-heap. Then sift-down k-1 times.
So traditional that I don’t want to write the codes...
Only gives the siftup and siftdown function.

/**
*@param i the index of the element in heap a[0...n-1] to be sifted up
void siftup(int a[], int i, int n) {
while (i>0) {
int j=(i&1==0 ? i-1 : i+1);
int p=(i-1)>>1;
if (j<n && a[j]<a[i]) i = j;
if (a[i] < a[p]) swap(a, i, p);
i = p;
}
}
void siftdown(int a[], int i, int n) {
while (2*i+1<n){
int l=2*i+1;
if (l+1<n && a[l+1] < a[l]) l++;
if (a[l] < a[i]) swap(a, i, l);
i=l;
}
}

第6 題
騰訊面試題:
給你10 分鐘時間,根據上排給出十個數,在其下排填出對應的十個數
要求下排每個數都是先前上排那十個數在下排出現的次數。
上排的十個數如下:
【0,1,2,3,4,5,6,7,8,9】
舉一個例子,
數值: 0,1,2,3,4,5,6,7,8,9
分配: 6,2,1,0,0,0,1,0,0,0
0 在下排出現了6 次,1 在下排出現了2 次,
2 在下排出現了1 次,3 在下排出現了0 次....
以此類推..
ANSWER:
I don’t like brain teasers. Will skip most of them...

第7 題
微軟亞院之編程判斷倆個鏈表是否相交
給出倆個單向鏈表的頭指針,比如h1,h2,判斷這倆個鏈表是否相交。
為了簡化問題,我們假設倆個鏈表均不帶環。
問題擴展:
1.如果鏈表可能有環列?
2.如果需要求出倆個鏈表相交的第一個節點列?
ANSWER:
struct Node {
int data;
int Node *next;
};
// if there is no cycle.
int isJoinedSimple(Node * h1, Node * h2) {
while (h1->next != NULL) {
h1 = h1->next;
}
while (h2->next != NULL) {
h2 = h2-> next;
}
return h1 == h2;
}

// if there could exist cycle
int isJoined(Node *h1, Node * h2) {
Node* cylic1 = testCylic(h1);
Node* cylic2 = testCylic(h2);
if (cylic1+cylic2==0) return isJoinedSimple(h1, h2);
if (cylic1==0 && cylic2!=0 || cylic1!=0 &&cylic2==0) return 0;
Node *p = cylic1;
while (1) {
if (p==cylic2 || p->next == cylic2) return 1;
p=p->next->next;
cylic1 = cylic1->next;
if (p==cylic1) return 0;
}
}

Node* testCylic(Node * h1) {
Node * p1 = h1, *p2 = h1;
while (p2!=NULL && p2->next!=NULL) {
p1 = p1->next;
p2 = p2->next->next;
if (p1 == p2) {
return p1;
}
}
return NULL;
}

第8 題
此貼選一些比較怪的題,,由于其中題目本身與算法關系不大,僅考考思維。特此并作一題。
1.有兩個房間,一間房里有三盞燈,另一間房有控制著三盞燈的三個開關,
這兩個房間是分割開的,從一間里不能看到另一間的情況。
現在要求受訓者分別進這兩房間一次,然后判斷出這三盞燈分別是由哪個開關控制的。
有什么辦法呢?
ANSWER:
Skip.

2.你讓一些人為你工作了七天,你要用一根金條作為報酬。金條被分成七小塊,每天給出一
塊。
如果你只能將金條切割兩次,你怎樣分給這些工人?
ANSWER:
1+2+4;

3. ★用一種算法來顛倒一個鏈接表的順序。現在在不用遞歸式的情況下做一遍。
ANSWER:
Node * reverse(Node * head) {
if (head == NULL) return head;
if (head->next == NULL) return head;
Node * ph = reverse(head->next);
head->next->next = head;
head->next = NULL;
return ph;
}
Node * reverseNonrecurisve(Node * head) {
if (head == NULL) return head;
Node * p = head;
Node * previous = NULL;
while (p->next != NULL) {
p->next = previous;
previous = p;
p = p->next;
}
p->next = previous;
return p;
}
★用一種算法在一個循環的鏈接表里插入一個節點,但不得穿越鏈接表。
ANSWER:
I don’t understand what is “Chuanyue”.
★用一種算法整理一個數組。你為什么選擇這種方法?
ANSWER:
What is “Zhengli?”
★用一種算法使通用字符串相匹配。
ANSWER:
What is “Tongyongzifuchuan”... a string with “*” and “?”? If so, here is the code.
int match(char * str, char * ptn) {
if (*ptn == ‘\0’) return 1;
if (*ptn == ‘*’) {
do {
if (match(str++, ptn+1)) return 1;
} while (*str != ‘\0’);
return 0;
}
if (*str == ‘\0’) return 0;
if (*str == *ptn || *ptn == ‘?’) {
return match(str+1, ptn+1);
}
return 0;
}

★顛倒一個字符串。優化速度。優化空間。
void reverse(char *str) {
reverseFixlen(str, strlen(str));
}
void reverseFixlen(char *str, int n) {
char* p = str+n-1;
while (str < p) {
char c = *str;
*str = *p; *p=c;
}
}
★顛倒一個句子中的詞的順序,比如將“我叫克麗絲”轉換為“克麗絲叫我”,
實現速度最快,移動最少。
ANSWER:
Reverse the whole string, then reverse each word. Using the reverseFixlen() above.
void reverseWordsInSentence(char * sen) {
int len = strlen(sen);
reverseFixlen(sen, len);
char * p = str;
while (*p!=’\0’) {
while (*p == ‘ ‘ && *p!=’\0’) p++;
str = p;
while (p!= ‘ ‘ && *p!=’\0’) p++;
reverseFixlen(str, p-str);
}
}
★找到一個子字符串。優化速度。優化空間。
ANSWER:
KMP? BM? Sunday? Using BM or sunday, if it’s ASCII string, then it’s easy to fast access the auxiliary array. Otherwise an hashmap or bst may be needed. Lets assume it’s an ASCII string.
int bm_strstr(char *str, char *sub) {
int len = strlen(sub);
int i;
int aux[256];
memset(aux, sizeof(int), 256, len+1);
for (i=0; i<len; i++) {
aux[sub[i]] = len - i;
}
int n = strlen(str);
i=len-1;
while (i<n) {
int j=i, k=len-1;
while (k>=0 && str[j--] == sub[k--])
;
if (k<0) return j+1;
if (i+1<n)
i+=aux[str[i+1]];
else
return -1;
}
}
However, this algorithm, as well as BM, KMP algorithms use O(|sub|) space. If this is not acceptable, Rabin-carp algorithm can do it. Using hashing to fast filter out most false matchings.
#define HBASE 127
int rc_strstr(char * str, char * sub) {
int dest= 0;
char * p = sub;
int len = 0;
int TO_REDUCE = 1;
while (*p!=’\0’) {
dest = HBASE * dest + (int)(*p);
TO_REDUCE *= HBASE;
len ++;
}
int hash = 0;
p = str;
int i=0;
while (*p != ‘\0’) {
if (i++<len) hash = HBASE * dest + (int)(*p);
else hash = (hash - (TO_REDUCE * (int)(*(p-len))))*HBASE + (int)(*p);
if (hash == dest && i>=len && strncmp(sub, p-len+1, len) == 0) return i-len;
p++;
}
return -1;
}
★比較兩個字符串,用O(n)時間和恒量空間。
ANSWER:
What is “comparing two strings”? Just normal string comparison? The natural way use O(n) time and O(1) space.
int strcmp(char * p1, char * p2) {
while (*p1 != ‘\0’ && *p2 != ‘\0’ && *p1 == *p2) {
p1++, p2++;
}
if (*p1 == ‘\0’ && *p2 == ‘\0’) return 0;
if (*p1 == ‘\0’) return -1;
if (*p2 == ‘\0’) return 1;
return (*p1 - *p2); // it can be negotiated whether the above 3 if’s are necessary, I don’t like to omit them.
}
★假設你有一個用1001 個整數組成的數組,這些整數是任意排列的,但是你知道所有的整數都在1 到1000(包括1000)之間。此外,除一個數字出現兩次外,其他所有數字只出現一次。假設你只能對這個數組做一次處理,用一種算法找出重復的那個數字。如果你在運算中使用了輔助的存儲方式,那么你能找到不用這種方式的算法嗎?
ANSWER:
Sum up all the numbers, then subtract the sum from 1001*1002/2.
Another way, use A XOR A XOR B = B:
int findX(int a[]) {
int k = a[0];
for (int i=1; i<=1000;i++)
k ~= a[i]~i;
}
return k;
}

★不用乘法或加法增加8 倍。現在用同樣的方法增加7 倍。
ANSWER:
n<<3;
(n<<3)-n;

第9 題
判斷整數序列是不是二元查找樹的后序遍歷結果
題目:輸入一個整數數組,判斷該數組是不是某二元查找樹的后序遍歷的結果。
如果是返回true,否則返回false。
例如輸入5、7、6、9、11、10、8,由于這一整數序列是如下樹的后序遍歷結果:
8
/ \
6 10
/ \ / \
5 7 9 11
因此返回true。
如果輸入7、4、6、5,沒有哪棵樹的后序遍歷的結果是這個序列,因此返回false。
ANSWER:
This is an interesting one. There is a traditional question that requires the binary tree to be re-constructed from mid/post/pre order results. This seems similar. For the problems related to (binary) trees, recursion is the first choice.
In this problem, we know in post-order results, the last number should be the root. So we have known the root of the BST is 8 in the example. So we can split the array by the root.
int isPostorderResult(int a[], int n) {
return helper(a, 0, n-1);
}
int helper(int a[], int s, int e) {
if (e==s) return 1;
int i=e-1;
while (a[e]>a[i] && i>=s) i--;
if (!helper(a, i+1, e-1))
return 0;
int k = l;
while (a[e]<a[i] && i>=s) i--;
return helper(a, s, l);
}

第10 題
翻轉句子中單詞的順序。
題目:輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。
句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。
例如輸入“I am a student.”,則輸出“student. a am I”。
Answer:
Already done this. Skipped.

第11 題
求二叉樹中節點的最大距離...
如果我們把二叉樹看成一個圖,父子節點之間的連線看成是雙向的,
我們姑且定義"距離"為兩節點之間邊的個數。
寫一個程序,
求一棵二叉樹中相距最遠的兩個節點之間的距離。
ANSWER:
This is interesting... Also recursively, the longest distance between two nodes must be either from root to one leaf, or between two leafs. For the former case, it’s the tree height. For the latter case, it should be the sum of the heights of left and right subtrees of the two leaves’ most least ancestor.
The first case is also the sum the heights of subtrees, just the height + 0.

int maxDistance(Node * root) {
int depth;
return helper(root, depth);
}
int helper(Node * root, int &depth) {
if (root == NULL) {
depth = 0; return 0;
}
int ld, rd;
int maxleft = helper(root->left, ld);
int maxright = helper(root->right, rd);
depth = max(ld, rd)+1;
return max(maxleft, max(maxright, ld+rd));
}

第12 題
題目:求1+2+…+n,
要求不能使用乘除法、for、while、if、else、switch、case 等關鍵字以及條件判斷語句
(A?B:C)。
ANSWER:
1+..+n=n*(n+1)/2=(n^2+n)/2
it is easy to get x/2, so the problem is to get n^2
though no if/else is allowed, we can easilly go around using short-pass.
using macro to make it fancier:

#define T(X, Y, i) (Y & (1<<i)) && X+=(Y<<i)

int foo(int n){
int r=n;
T(r, n, 0); T(r, n,1); T(r, n, 2); … T(r, n, 31);
return r >> 1;
}

第13 題:
題目:輸入一個單向鏈表,輸出該鏈表中倒數第k 個結點。鏈表的倒數第0 個結點為鏈表的尾指針。
鏈表結點定義如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
Answer:
Two ways. 1: record the length of the linked list, then go n-k steps. 2: use two cursors.
Time complexities are exactly the same.
Node * lastK(Node * head, int k) {
if (k<0) error(“k < 0”);
Node *p=head, *pk=head;
for (;k>0;k--) {
if (pk->next!=NULL) pk = pk->next;
else return NULL;
}
while (pk->next!=NULL) {
p=p->next, pk=pk->next;
}
return p;
}


第14 題:
題目:輸入一個已經按升序排序過的數組和一個數字,
在數組中查找兩個數,使得它們的和正好是輸入的那個數字。
要求時間復雜度是O(n)。如果有多對數字的和等于輸入的數字,輸出任意一對即可。
例如輸入數組1、2、4、7、11、15 和數字15。由于4+11=15,因此輸出4 和11。
ANSWER:
Use two cursors. One at front and the other at the end. Keep track of the sum by moving the cursors.
void find2Number(int a[], int n, int dest) {
int *f = a, *e=a+n-1;
int sum = *f + *e;
while (sum != dest && f < e) {
if (sum < dest) sum = *(++f);
else sum = *(--e);
}
if (sum == dest) printf(“%d, %d\n”, *f, *e);
}

第15 題:
題目:輸入一顆二元查找樹,將該樹轉換為它的鏡像,
即在轉換后的二元查找樹中,左子樹的結點都大于右子樹的結點。
用遞歸和循環兩種方法完成樹的鏡像轉換。
例如輸入:
8
/ \
6 10
/\ /\
5 7 9 11
輸出:
8
/ \
10 6
/\ /\
11 9 7 5
定義二元查找樹的結點為:
struct BSTreeNode // a node in the binary search tree (BST)
{
int m_nValue; // value of node
BSTreeNode *m_pLeft; // left child of node
BSTreeNode *m_pRight; // right child of node
};
ANSWER:
This is the basic application of recursion.
PS: I don’t like the m_xx naming convension.
void swap(Node ** l, Node ** r) {
Node * p = *l;
*l = *r;
*r = p;
}

void mirror(Node * root) {
if (root == NULL) return;
swap(&(root->left), &(root->right));
mirror(root->left);
mirror(root->right);
}

void mirrorIteratively(Node * root) {
if (root == NULL) return;
stack<Node*> buf;
buf.push(root);
while (!stack.empty()) {
Node * n = stack.pop();
swap(&(root->left), &(root->right));
if (root->left != NULL) buf.push(root->left);
if (root->right != NULL) buf.push(root->right);
}
}

第16 題:
題目(微軟):
輸入一顆二元樹,從上往下按層打印樹的每個結點,同一層中按照從左往右的順序打印。
例如輸入
7
8
/ \
6 10
/ \ / \
5 7 9 11
輸出8 6 10 5 7 9 11。
ANSWER:
The nodes in the levels are printed in the similar manner their parents were printed. So it should be an FIFO queue to hold the level. I really don’t remember the function name of the stl queue, so I will write it in Java...
void printByLevel(Node root) {
Node sentinel = new Node();
LinkedList<Node> q=new LinkedList<Node>();
q.addFirst(root); q.addFirst(sentinel);
while (!q.isEmpty()) {
Node n = q.removeLast();
if (n==sentinel) {
System.out.println(“\n”);
q.addFirst(sentinel);
} else {
System.out.println(n);
if (n.left() != null) q.addFirst(n.left());
if (n.right()!=null) q.addFirst(n.right());
}
}
}

第17 題:
題目:在一個字符串中找到第一個只出現一次的字符。如輸入abaccdeff,則輸出b。
分析:這道題是2006 年google 的一道筆試題。
ANSWER:
Again, this depends on what is “char”. Let’s assume it as ASCII.
char firstSingle(char * str) {
int a[255];
memset(a, 0, 255*sizeof(int));
char *p=str;
while (*p!=’\0’) {
a[*p] ++;
p++;
}
p = str;
while (*p!=’\0’) {
if (a[*p] == 1) return *p;
}
return ‘\0’; // this must the one that occurs exact 1 time.
}

第18 題:
題目:n 個數字(0,1,…,n-1)形成一個圓圈,從數字0 開始,
每次從這個圓圈中刪除第m 個數字(第一個為當前數字本身,第二個為當前數字的下一個數
字)。
當一個數字刪除后,從被刪除數字的下一個繼續刪除第m 個數字。
求出在這個圓圈中剩下的最后一個數字。
July:我想,這個題目,不少人已經見識過了。
ANSWER:
Actually, although this is a so traditional problem, I was always to lazy to think about this or even to search for the answer.(What a shame...). Finally, by google I found the elegant solution for it.
The keys are:
1) if we shift the ids by k, namely, start from k instead of 0, we should add the result by k%n
2) after the first round, we start from k+1 ( possibly % n) with n-1 elements, that is equal to an (n-1) problem while start from (k+1)th element instead of 0, so the answer is (f(n-1, m)+k+1)%n
3) k = m-1, so f(n,m)=(f(n-1,m)+m)%n.
finally, f(1, m) = 0;
Now this is a O(n) solution.
int joseph(int n, int m) {
int fn=0;
for (int i=2; i<=n; i++) {
fn = (fn+m)%i; }
return fn;
}
hu...長出一口氣。。。

第19 題:
題目:定義Fibonacci 數列如下:
/ 0 n=0
f(n)= 1 n=1
\ f(n-1)+f(n-2) n=2
輸入n,用最快的方法求該數列的第n 項。
分析:在很多C 語言教科書中講到遞歸函數的時候,都會用Fibonacci 作為例子。
因此很多程序員對這道題的遞歸解法非常熟悉,但....呵呵,你知道的。。
ANSWER:
This is the traditional problem of application of mathematics...
let A=
{1 1}
{1 0}
f(n) = A^(n-1)[0,0]
this gives a O(log n) solution.
int f(int n) {
int A[4] = {1,1,1,0};
int result[4];
power(A, n, result);
return result[0];
}

void multiply(int[] A, int[] B, int _r) {
_r[0] = A[0]*B[0] + A[1]*B[2];
_r[1] = A[0]*B[1] + A[1]*B[3];
_r[2] = A[2]*B[0] + A[3]*B[2];
_r[3] = A[2]*B[1] + A[3]*B[3];
}

void power(int[] A, int n, int _r) {
if (n==1) { memcpy(A, _r, 4*sizeof(int)); return; }
int tmp[4];
power(A, n>>1, _r);
multiply(_r, _r, tmp);
if (n & 1 == 1) {
multiply(tmp, A, _r);
} else {
memcpy(_r, tmp, 4*sizeof(int));
}
}

第20 題:
題目:輸入一個表示整數的字符串,把該字符串轉換成整數并輸出。
例如輸入字符串"345",則輸出整數345。
ANSWER:
This question checks how the interviewee is familiar with C/C++? I’m so bad at C/C++...

int atoi(char * str) {
int neg = 0;
char * p = str;
if (*p == ‘-’) {
p++; neg = 1;
} else if (*p == ‘+’) {
p++;
}
int num = 0;
while (*p != ‘\0’) {
if (*p>=0 && *p <= 9) {
num = num * 10 + (*p-’0’);
} else {
error(“illegal number”);
}
p++;
}
return num;
}
PS: I didn’t figure out how to tell a overflow problem easily.


第21 題
2010 年中興面試題
編程求解:
輸入兩個整數n 和m,從數列1,2,3.......n 中隨意取幾個數,
使其和等于m ,要求將其中所有的可能組合列出來.
ANSWER
This is a combination generation problem.
void findCombination(int n, int m) {
if (n>m) findCombination(m, m);
int aux[n];
memset(aux, 0, n*sizeof(int));
helper(m, 0, aux);
}
void helper(int dest, int idx, int aux[], int n) {
if (dest == 0)
dump(aux, n);
if (dest <= 0 || idx==n) return;
helper(dest, idx+1, aux, n);
aux[idx] = 1;
helper(dest-idx-1, idx+1, aux, n);
aux[idx] = 0;
}
void dump(int aux[], int n) {
for (int i=0; i<n; i++)
if (aux[i]) printf(“%3d”, i+1);
printf(“\n”);
}
PS: this is not an elegant implementation, however, it is not necessary to use gray code or other techniques for such a problem, right?

第22 題:
有4 張紅色的牌和4 張藍色的牌,主持人先拿任意兩張,再分別在A、B、C 三人額頭上貼任意兩張牌,A、B、C 三人都可以看見其余兩人額頭上的牌,看完后讓他們猜自己額頭上是什么顏色的牌,A 說不知道,B 說不知道,C 說不知道,然后A 說知道了。
請教如何推理,A 是怎么知道的。如果用程序,又怎么實現呢?
ANSWER
I dont’ like brain teaser. As an AI problem, it seems impossible to write the solution in 20 min...

It seems that a brute-force edge cutting strategy could do. Enumerate all possibilities, then for each guy delete the permutation that could be reduced if failed (for A, B, C at 1st round), Then there should be only one or one group of choices left.

But who uses this as an interview question?

第23 題:
用最簡單,最快速的方法計算出下面這個圓形是否和正方形相交。"
3D 坐標系原點(0.0,0.0,0.0)
圓形:
半徑r = 3.0
圓心o = (*.*, 0.0, *.*)
正方形:
4 個角坐標;
1:(*.*, 0.0, *.*)
2:(*.*, 0.0, *.*)
3:(*.*, 0.0, *.*)
4:(*.*, 0.0, *.*)
ANSWER
Crap... I totally cannot understand this problem... Does the *.* represent any possible number?


第24 題:
鏈表操作,
(1).單鏈表就地逆置,
(2)合并鏈表
ANSWER
Reversing a linked list. Already done.

What do you mean by merge? Are the original lists sorted and need to be kept sorted? If not, are there any special requirements?
I will only do the sorted merging.

Node * merge(Node * h1, Node * h2) {
if (h1 == NULL) return h2;
if (h2 == NULL) return h1;
Node * head;
if (h1->data>h2->data) {
head = h2; h2=h2->next;
} else {
head = h1; h1=h1->next;
}
Node * current = head;
while (h1 != NULL && h2 != NULL) {
if (h1 == NULL || (h2!=NULL && h1->data>h2->data)) {
current->next = h2; h2=h2->next; current = current->next;
} else {
current->next = h1; h1=h1->next; current = current->next;
}
}
current->next = NULL;
return head;
}

第25 題:
寫一個函數,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出連續最長的數字串,并把這個串的長度返回,
并把這個最長數字串付給其中一個函數參數outputstr 所指內存。
例如:"abcd12345ed125ss123456789"的首地址傳給intputstr 后,函數將返回9,
outputstr 所指的值為123456789
ANSWER:

int continumax(char *outputstr, char *inputstr) {
int len = 0;
char * pstart = NULL;
int max = 0;
while (1) {
if (*inputstr >= ‘0’ && *inputstr <=’9’) {
len ++;
} else {
if (len > max) pstart = inputstr-len;
len = 0;
}
if (*inputstr++==’\0’) break;
}
for (int i=0; i<len; i++)
*outputstr++ = pstart++;
*outputstr = ‘\0’;
return max;
}
26.左旋轉字符串
題目:
定義字符串的左旋轉操作:把字符串前面的若干個字符移動到字符串的尾部。
如把字符串abcdef 左旋轉2 位得到字符串cdefab。請實現字符串左旋轉的函數。
要求時間對長度為n 的字符串操作的復雜度為O(n),輔助內存為O(1)。
ANSWER
Have done it. Using reverse word function above.

27.跳臺階問題
題目:一個臺階總共有n 級,如果一次可以跳1 級,也可以跳2 級。
求總共有多少總跳法,并分析算法的時間復雜度。
這道題最近經常出現,包括MicroStrategy 等比較重視算法的公司
都曾先后選用過個這道題作為面試題或者筆試題。
ANSWER
f(n)=f(n-1)+f(n-2), f(1)=1, f(2)=2, let f(0) = 1, then f(n) = fibo(n-1);

28.整數的二進制表示中1 的個數
題目:輸入一個整數,求該整數的二進制表達中有多少個1。
例如輸入10,由于其二進制表示為1010,有兩個1,因此輸出2。
分析:
這是一道很基本的考查位運算的面試題。
包括微軟在內的很多公司都曾采用過這道題。
ANSWER
Traditional question. Use the equation xxxxxx10000 & (xxxxxx10000-1) = xxxxxx00000
Note: for negative numbers, this also hold, even with 100000000 where the “-1” leading to an underflow.
int countOf1(int n) {
int c=0;
while (n!=0) {
n=n & (n-1);
c++;
}
return c;
}
another solution is to lookup table. O(k), k is sizeof(int);

int countOf1(int n) {
int c = 0;
if (n<0) { c++; n = n & (1<<(sizeof(int)*8-1)); }
while (n!=0) {
c+=tab[n&0xff];
n >>= 8;
}
return c;
}

29.棧的push、pop 序列
題目:輸入兩個整數序列。其中一個序列表示棧的push 順序,
判斷另一個序列有沒有可能是對應的pop 順序。
為了簡單起見,我們假設push 序列的任意兩個整數都是不相等的。
比如輸入的push 序列是1、2、3、4、5,那么4、5、3、2、1 就有可能是一個pop 系列。
因為可以有如下的push 和pop 序列:
push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop,
這樣得到的pop 序列就是4、5、3、2、1。
但序列4、3、5、1、2 就不可能是push 序列1、2、3、4、5 的pop 序列。
ANSWER
This seems interesting. However, a quite straightforward and promising way is to actually build the stack and check whether the pop action can be achieved.

int isPopSeries(int push[], int pop[], int n) {
stack<int> helper;
int i1=0, i2=0;
while (i2 < n) {
while (stack.empty() || stack.peek() != pop[i2])
if (i1<n)
stack.push(push[i1++]);
else
return 0;
while (!stack.empty() && stack.peek() == pop[i2]) {
stack.pop(); i2++;
}
}
return 1;
}

30.在從1 到n 的正數中1 出現的次數
題目:輸入一個整數n,求從1 到n 這n 個整數的十進制表示中1 出現的次數。
例如輸入12,從1 到12 這些整數中包含1 的數字有1,10,11 和12,1 一共出現了5 次。
分析:這是一道廣為流傳的google 面試題。
ANSWER
This is complicated... I hate it...
Suppose we have N=ABCDEFG.
if G<1, # of 1’s in the units digits is ABCDEF, else ABCDEF+1
if F<1, # of 1’s in the digit of tens is (ABCDE)*10, else if F==1: (ABCDE)*10+G+1, else (ABCDE+1)*10
if E<1, # of 1’s in 3rd digit is (ABCD)*100, else if E==1: (ABCD)*100+FG+1, else (ABCD+1)*100
… so on.
if A=1, # of 1 in this digit is BCDEFG+1, else it’s 1*1000000;
so to fast access the digits and helper numbers, we need to build the fast access table of prefixes and suffixes.

int countOf1s(int n) {
int prefix[10], suffix[10], digits[10]; //10 is enough for 32bit integers
int i=0;
int base = 1;
while (base < n) {
suffix[i] = n % base;
digit[i] = (n % (base * 10)) - suffix[i];
prefix[i] = (n - suffix[i] - digit[i]*base)/10;
i++, base*=10;
}
int count = 0;
base = 1;
for (int j=0; j<i; j++) {
if (digit[j] < 1) count += prefix;
else if (digit[j]==1) count += prefix + suffix + 1;
else count += prefix+base;
base *= 10;
}
return count;
}

31.華為面試題:
一類似于蜂窩的結構的圖,進行搜索最短路徑(要求5 分鐘)
ANSWER
Not clear problem. Skipped. Seems a Dijkstra could do.

int dij

32.
有兩個序列a,b,大小都為n,序列元素的值任意整數,無序;
要求:通過交換a,b 中的元素,使[序列a 元素的和]與[序列b 元素的和]之間的差最小。
例如:
var a=[100,99,98,1,2, 3];
var b=[1, 2, 3, 4,5,40];
ANSWER
If only one swap can be taken, it is a O(n^2) searching problem, which can be reduced to O(nlogn) by sorting the arrays and doing binary search.
If any times of swaps can be performed, this is a double combinatorial problem.
In the book <<beauty of codes>>, a similar problem splits an array to halves as even as possible. It is possible to take binary search, when SUM of the array is not too high. Else this is a quite time consuming brute force problem. I cannot figure out a reasonable solution.

33.
實現一個挺高級的字符匹配算法:
給一串很長字符串,要求找到符合要求的字符串,例如目的串:123
1******3***2 ,12*****3 這些都要找出來
其實就是類似一些和諧系統。。。。。
ANSWER
Not a clear problem. Seems a bitset can do.

34.
實現一個隊列。
隊列的應用場景為:
一個生產者線程將int 類型的數入列,一個消費者線程將int 類型的數出列
ANSWER
I don’t know multithread programming at all....

35.
求一個矩陣中最大的二維矩陣(元素和最大).如:
1 2 0 3 4
2 3 4 5 1
1 1 5 3 0
中最大的是:
4 5
5 3
要求:(1)寫出算法;(2)分析時間復雜度;(3)用C 寫出關鍵代碼
ANSWER
This is the traditional problem in Programming Pearls. However, the best result is too complicated to achieve. So lets do the suboptimal one. O(n^3) solution.
1) We have know that the similar problem for 1 dim array can be done in O(n) time. However, this cannot be done in both directions in the same time. We can only calculate the accumulations for all the sublist from i to j, (0<=i<=j<n) for each array in one dimension, which takes O(n^2) time. Then in the other dimension, do the tradtional greedy search.
3) To achieve O(n^2) for accumulation for each column, accumulate 0 to i (i=0,n-1) first, then calcuate the result by acc(i, j) = acc(0, j)-acc(0,i-1)

//acc[i*n+j] => acc(i,j)
void accumulate(int a[], int n, int acc[]) {
int i=0;
acc[i] = a[i];
for (i=1;i<n; i++) {
acc[i] = acc[i-1]+a[i];
}
for (i=1; i<n; i++) {
for (j=i; j<n; j++) {
acc[i*n+j] = acc[j] - acc[i-1];
}
}
}

第36 題-40 題(有些題目搜集于CSDN 上的網友,已標明):
36.引用自網友:longzuo
谷歌筆試:
n 支隊伍比賽,分別編號為0,1,2。。。。n-1,已知它們之間的實力對比關系,
存儲在一個二維數組w[n][n]中,w[i][j] 的值代表編號為i,j 的隊伍中更強的一支。
所以w[i][j]=i 或者j,現在給出它們的出場順序,并存儲在數組order[n]中,
比如order[n] = {4,3,5,8,1......},那么第一輪比賽就是4 對3, 5 對8。.......
勝者晉級,敗者淘汰,同一輪淘汰的所有隊伍排名不再細分,即可以隨便排,
下一輪由上一輪的勝者按照順序,再依次兩兩比,比如可能是4 對5,直至出現第一名
編程實現,給出二維數組w,一維數組order 和用于輸出比賽名次的數組result[n],
求出result。
ANSWER
This question is like no-copying merge, or in place matrix rotation.
* No-copying merge: merge order to result, then merge the first half from order, and so on.
* in place matrix rotation: rotate 01, 23, .. , 2k/2k+1 to 02...2k, 1,3,...2k+1...
The two approaches are both complicated. However, notice one special feature that the losers’ order doesn’t matter. Thus a half-way merge is much simpler and easier:

void knockOut(int **w, int order[], int result[], int n) {
int round = n;
memcpy(result, order, n*sizeof(int));
while (round>1) {
int i,j;
for (i=0,j=0; i<round; i+=2) {
int win= (i==round-1) ? i : w[i][i+1];
swap(result, j, win);
j++;
}
}
}

37.
有n 個長為m+1 的字符串,
如果某個字符串的最后m 個字符與某個字符串的前m 個字符匹配,則兩個字符串可以聯接,
問這n 個字符串最多可以連成一個多長的字符串,如果出現循環,則返回錯誤。
ANSWER
This is identical to the problem to find the longest acylic path in a directed graph. If there is a cycle, return false.
Firstly, build the graph. Then search the graph for the longest path.

#define MAX_NUM 201
int inDegree[MAX_NUM];
int longestConcat(char ** strs, int m, int n) {
int graph[MAX_NUM][MAX_NUM];
int prefixHash[MAX_NUM];
int suffixHash[MAX_NUM];
int i,j;
for (i=0; i<n; i++) {
calcHash(strs[i], prefixHash[i], suffixHash[i]);
graph[i][0] = 0;
}
memset(inDegree, 0, sizeof(int)*n);
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
if (suffixHash[i]==prefixHash[j] && strncmp(strs[i]+1, strs[j], m) == 0) {
if (i==j) return 0; // there is a self loop, return false.
graph[i][0] ++;
graph[i][graph[i*n]] = j;
inDegree[j] ++;
}
}
}
return longestPath(graph, n);
}

/**
* 1. do topological sort, record index[i] in topological order.
* 2. for all 0-in-degree vertexes, set all path length to -1, do relaxation in topological order to find single source shortest path.
*/

int visit[MAX_NUM];
int parent[MAX_NUM];
// -1 path weight, so 0 is enough.
#define MAX_PATH 0
int d[MAX_NUM];

int longestPath(int graph[], int n) {
memset(visit, 0, n*sizeof(int));
if (topSort(graph) == 0) return -1; //topological sort failed, there is cycle.

int min = 0;

for (int i=0; i<n; i++) {
if (inDegree[i] != 0) continue;
memset(parent, -1, n*sizeof(int));
memset(d, MAX_PATH, n*sizeof(int));
d[i] = 0;
for (int j=0; j<n; j++) {
for (int k=1; k<=graph[top[j]][0]; k++) {
if (d[top[j]] - 1 < d[graph[top[j]][k]]) { // relax with path weight -1
d[graph[top[j]][k]] = d[top[j]] - 1;
parent[graph[top[j]][k]] = top[j];
if (d[graph[top[j]][k]] < min) min = d[graph[top[j]][k]];
}
}
}
}
return -min;
}

int top[MAX_NUM];
int finished[MAX_NUM];
int cnt = 0;
int topSort(int graph[]){
memset(visit, 0, n*sizeof(int));
memset(finished, 0, n*sizeof(int));
for (int i=0; i<n; i++) {
if (topdfs(graph, i) == 0) return 0;
}
return 1;
}
int topdfs(int graph[], int s) {
if (visited[s] != 0) return 1;
for (int i=1; i<=graph[s][0]; i++) {
if (visited[graph[s][i]]!=0 && finished[graph[s][i]]==0) {
return 0; //gray node, a back edge;
}
if (visited[graph[s][i]] == 0) {
visited[graph[s][i]] = 1;
dfs(graph, graph[s][i]);
}
}
finished[s] = 1;
top[cnt++] = s;
return 1;
}

Time complexity analysis:

Hash calculation: O(nm)
Graph construction: O(n*n)
Toplogical sort: as dfs, O(V+E)
All source longest path: O(kE), k is 0-in-degree vetexes number, E is edge number.
As a total, it’s a O(n*n+n*m) solution.
A very good problem. But I really doubt it as a solve-in-20-min interview question.

38.
百度面試:
1.用天平(只能比較,不能稱重)從一堆小球中找出其中唯一一個較輕的,使用x 次天平,
最多可以從y 個小球中找出較輕的那個,求y 與x 的關系式。
ANSWER:
x=1, y=3: if a=b, c is the lighter, else the lighter is the lighter...
do this recursively. so y=3^x;

2.有一個很大很大的輸入流,大到沒有存儲器可以將其存儲下來,
而且只輸入一次,如何從這個輸入流中隨機取得m 個記錄。
ANSWER

That is, keep total number count N. If N<=m, just keep it.
For N>m, generate a random number R=rand(N) in [0, N), replace a[R] with new number if R falls in [0, m).


3.大量的URL 字符串,如何從中去除重復的,優化時間空間復雜度
ANSWER
1. Use hash map if there is enough memory.
2. If there is no enough memory, use hash to put urls to bins, and do it until we can fit the bin into memory.

39.
網易有道筆試:
(1).
求一個二叉樹中任意兩個節點間的最大距離,
兩個節點的距離的定義是這兩個節點間邊的個數,
比如某個孩子節點和父節點間的距離是1,和相鄰兄弟節點間的距離是2,優化時間空間復
雜度。
ANSWER
Have done this.
(2).
求一個有向連通圖的割點,割點的定義是,如果除去此節點和與其相關的邊,
有向圖不再連通,描述算法。
ANSWER
Do dfs, record low[i] as the lowest vertex that can be reached from i and i’s successor nodes. For each edge i, if low[i] = i and i is not a leaf in dfs tree, then i is a cut point. The other case is the root of dfs, if root has two or more children ,it is a cut point.


/**
* g is defined as: g[i][] is the out edges, g[i][0] is the edge count, g[i][1...g[i][0]] are the other end points.
*/
int cnt = 0;
int visited[MAX_NUM];
int lowest[MAX_NUM];
void getCutPoints(int *g[], int cuts[], int n) {
memset(cuts, 0, sizeof(int)*n);
memset(visited, 0, sizeof(int)*n);
memset(lowest, 0, sizeof(int)*n);
for (int i=0; i<n; i++) {
if (visited[i] == 0) {
visited[i] = ++cnt;
dfs(g, cuts, n, i, i);
}
}

int dfs(int *g[], int cuts[], int n, int s, int root) {
int out = 0;
int low = visit[s];
for (int i=1; i<=g[s][0]; i++) {
if (visited[g[s][i]] == 0) {
out++;
visited[g[s][i]] = ++cnt;
int clow = dfs(g, cuts, n, g[s][i], root);
if (clow < low) low = clow;
} else {
if (low > visit[g[s][i]]) {
low = visit[g[s][i]];
}
}
}
lowest[s] = low;
if (s == root && out > 1) {
cuts[s] = 1;
}
return low;
}


40.百度研發筆試題
引用自:zp155334877
1)設計一個棧結構,滿足一下條件:min,push,pop 操作的時間復雜度為O(1)。
ANSWER
Have done this.

2)一串首尾相連的珠子(m 個),有N 種顏色(N<=10),
設計一個算法,取出其中一段,要求包含所有N 中顏色,并使長度最短。
并分析時間復雜度與空間復雜度。
ANSWER
Use a sliding window and a counting array, plus a counter which monitors the num of zero slots in counting array. When there is still zero slot(s), advance the window head, until there is no zero slot. Then shrink the window until a slot comes zero. Then one candidate segment of (window_size + 1) is achieved. Repeat this. It is O(n) algorithm since each item is swallowed and left behind only once, and either operation is in constant time.
int shortestFullcolor(int a[], int n, int m) {
int c[m], ctr = m;
int h=0, t=0;
int min=n;
while (1) {
while (ctr > 0 && h<n) {
if (c[a[h]] == 0) ctr --;
c[a[h]] ++;
h++;
}
if (h>=n) return min;
while (1) {
c[a[t]] --;
if (c[a[t]] == 0) break;
t++;
}
if (min > h-t) min = h-t;
t++; ctr++;
}
}

3)設計一個系統處理詞語搭配問題,比如說中國和人民可以搭配,
則中國人民人民中國都有效。要求:
*系統每秒的查詢數量可能上千次;
*詞語的數量級為10W;
*每個詞至多可以與1W 個詞搭配
當用戶輸入中國人民的時候,要求返回與這個搭配詞組相關的信息。
ANSWER
This problem can be solved in three steps:
1. identify the words
2. recognize the phrase
3. retrieve the information
Solution of 1: The most trivial way to efficiently identify the words is hash table or BST. A balanced BST with 100 words is about 17 levels high. Considering that 100k is not a big number, hashing is enough.
Solution of 2: Since the phrase in this problem consists of only 2 words, it is easy to split the words. There won’t be a lot of candidates. To find a legal combination, we need the “matching” information. So for each word, we need some data structure to tell whether a word can co-occur with it. 100k is a bad number -- cannot fit into a 16bit digit. However, 10k*100k is not too big, so we can simply use array of sorted array to do this. 1G integers, or 4G bytes is not a big number, We can also use something like VInt to save a lot of space. To find an index in a 10k sorted array, 14 comparisons are enough.
Above operation can be done in any reasonable work-station's memory very fast, which should be the result of execution of about a few thousands of simple statements.
Solution of 3: The information could be to big to fit in the memory. So a B-tree may be adopted to index the contents. Caching techniques is also helpful. Considering there are at most 10^9 entries, a 3 or 4 level of B-tree is okay, so it will be at most 5 disk access. However, there are thousands of requests and we can only do hundreds of disk seeking per second. It could be necessary to dispatch the information to several workstations.

41.求固晶機的晶元查找程序
晶元盤由數目不詳的大小一樣的晶元組成,晶元并不一定全布滿晶元盤,
照相機每次這能匹配一個晶元,如匹配過,則拾取該晶元,
若匹配不過,照相機則按測好的晶元間距移到下一個位置。
求遍歷晶元盤的算法求思路。
ANSWER
Dont understand.

42.請修改append 函數,利用這個函數實現:
兩個非降序鏈表的并集,1->2->3 和2->3->5 并為1->2->3->5
另外只能輸出結果,不能修改兩個鏈表的數據。
ANSWER
I don’t quite understand what it means by “not modifying linked list’s data”. If some nodes will be given up, it is weird for this requirement.

Node * head(Node *h1, Node * h2) {
if (h1==NULL) return h2;
if (h2==NULL) return h1;
Node * head;
if (h1->data < h2->data) {
head =h1; h1=h1->next;
} else {
head = h2; h2=h2->next;
}
Node * p = head;
while (h1!=NULL || h2!=NULL) {
Node * candi;
if (h1!=NULL && h2 != NULL && h1->data < h2->data || h2==NULL) {
candi = h1; h1=h1->next;
} else {
candi = h2; h2=h2->next;
}
}
if (candi->data == p->data) delete(candi);
else {
p->next = candi; p=candi;
}
}
return head;
}

43.遞歸和非遞歸倆種方法實現二叉樹的前序遍歷。
ANSWER
void preorderRecursive(TreeNode * node) {
if (node == NULL) return;
visit(node);
preorderRecursive(node->left);
preorderRecursive(node->right);
}

For non-recursive traversals, a stack must be adopted to replace the implicit program stack in recursive programs.

void preorderNonrecursive(TreeNode * node) {
stack<TreeNode *> s;
s.push(node);
while (!s.empty()) {
TreeNode * n = s.pop();
visit(n);
if (n->right!=NULL) s.push(n->right);
if (n->left!=NULL) s.push(n->left);
}
}

void inorderNonrecursive(TreeNode * node) {
stack<TreeNode *> s;
TreeNode * current = node;
while (!s.empty() || current != NULL) {
if (current != NULL) {
s.push(current);
current = current->left;
} else {
current = s.pop();
visit(current);
current = current->right;
}
}
}

Postorder nonrecursive traversal is the hardest one. However, a simple observation helps that the node first traversed is the node last visited. This recalls the feature of stack. So we could use a stack to store all the nodes then pop them out altogether.
This is a very elegant solution, while takes O(n) space.
Other very smart methods also work, but this is the one I like the most.

void postorderNonrecursive(TreeNode * node) {
// visiting occurs only when current has no right child or last visited is his right child
stack<TreeNode *> sTraverse, sVisit;
sTraverse.push(node);
while (!sTraverse.empty()) {
TreeNode * p = sTraverse.pop();
sVisit.push(p);
if (p->left != NULL) sTraverse.push(p->left);
if (p->right != NULL) sTraverse.push(p->right);
}
while (!sVisit.empty()) {
visit(sVisit.pop);
}
}

44.騰訊面試題:
1.設計一個魔方(六面)的程序。
ANSWER
This is a problem to test OOP.
The object MagicCube must have following features
1) holds current status
2) easily doing transform
3) judge whether the final status is achieved
4) to test, it can be initialized
5) output current status

public class MagicCube {
// 6 faces, 9 chips each face
private byte chips[54];
static final int X = 0;
static final int Y = 1;
static final int Z = 1;
void transform(int direction, int level) {
switch direction: {
X : { transformX(level); break; }
Y : { transformY(level); break; }
Z : { transformZ(level); break; }
default: throw new RuntimeException(“what direction?”);
}
void transformX(int level) { … }
}
}
// really tired of making this...
}

2.有一千萬條短信,有重復,以文本文件的形式保存,一行一條,有重復。
請用5 分鐘時間,找出重復出現最多的前10 條。
ANSWER
10M msgs, each at most 140 chars, that’s 1.4G, which can fit to memory.
So use hash map to accumulate occurrence counts.
Then use a heap to pick maximum 10.

3.收藏了1 萬條url,現在給你一條url,如何找出相似的url。(面試官不解釋何為相似)
ANSWER
What a SB interviewer... The company name should be claimed and if I met such a interviewer, I will contest to HR. The purpose of interview is to see the ability of communication. This is kind of single side shutdown of information exchange.
My first answer will be doing edit distance to the url and every candidate. Then it depends on what interviewer will react. Other options includes: fingerprints, tries...

45.雅虎:
1.對于一個整數矩陣,存在一種運算,對矩陣中任意元素加一時,需要其相鄰(上下左右)
某一個元素也加一,現給出一正數矩陣,判斷其是否能夠由一個全零矩陣經過上述運算得到。
ANSWER
A assignment problem. Two ways to solve. 1: duplicate each cell to as many as its value, do Hungarian algorithm. Denote the sum of the matrix as M, the edge number is 2M, so the complexity is 2*M*M; 2: standard maximum flow. If the size of matrix is NxN, then the algorithm using Ford Fulkerson algorithm is M*N*N.
too complex... I will do this when I have time...

2.一個整數數組,長度為n,將其分為m 份,使各份的和相等,求m 的最大值
比如{3,2,4,3,6} 可以分成{3,2,4,3,6} m=1;
{3,6}{2,4,3} m=2
{3,3}{2,4}{6} m=3 所以m 的最大值為3
ANSWER
Two restrictions on m, 1) 1 <= m <= n; 2) Sum(array) mod m = 0
NOTE: no hint that a[i]>0, so m could be larger than sum/max;
So firstly prepare the candidates, then do a brute force search on possible m’s.
In the search , a DP is available, since if f(array, m) = OR_i( f(array-subset(i), m) ), where Sum(subset(i)) = m.

int maxShares(int a[], int n) {
int sum = 0;
int i, m;
for (i=0; i<n; i++) sum += a[i];
for (m=n; m>=2; m--) {
if (sum mod m != 0) continue;
int aux[n]; for (i=0; i<n; i++) aux[i] = 0;
if (testShares(a, n, m, sum, sum/m, aux, sum/m, 1)) return m;
}
return 1;
}

int testShares(int a[], int n, int m, int sum, int groupsum, int[] aux, int goal, int groupId) {
if (goal == 0) {
groupId++;
if (groupId == m+1) return 1;
}
for (int i=0; i<n; i++) {
if (aux[i] != 0) continue;
aux[i] = groupId;
if (testShares(a, n, m, sum, groupsum, aux, goal-a[i], groupId)) {
return 1;
}
aux[i] = 0;
}
}

Please do edge cutting yourself, I’m quite enough of this...


46.搜狐:
四對括號可以有多少種匹配排列方式?比如兩對括號可以有兩種:()()和(())
ANSWER:
Suppose k parenthesis has f(k) permutations, k is large enough. Check the first parenthesis, if there are i parenthesis in it then, the number of permutations inside it and out of it are f(i) and f(k-i-1), respectively. That is
f(k) = Sum_i=[0,k-1]_(f(i)*f(k-i-1));
which leads to the k’th Catalan number.

47.創新工場:
求一個數組的最長遞減子序列比如{9,4,3,2,5,4,3,2}的最長遞減子序列為{9,5,
4,3,2}
ANSWER:
Scan from left to right, maintain a decreasing sequence. For each number, binary search in the decreasing sequence to see whether it can be substituted.

int[] findDecreasing(int[] a) {
int[] ds = new int[a.length];
Arrays.fill(ds, 0);
int dsl = 0;
int lastdsl = 0;
for (int i=0; i<a.length; i++) {
// binary search in ds to find the first element ds[j] smaller than a[i]. set ds[j] = a[i], or append a[i] at the end of ds
int s=0, t=dsl-1;
while (s<=t) {
int m = s+(t-s)/2;
if (ds[m] < a[i]) {
t = m - 1;
} else {
s = m + 1;
}
}
// now s must be at the first ds[j]<a[i], or at the end of ds[]
ds[s] = a[i];
if (s > dsl) { dsl = s; lastdsl = i; }
}
// now trace back.
for (int i=lastdsl-1, j=dsl-1; i>=0 && j >= 0; i--) {
if (a[i] == ds[j]) { j --; }
else if (a[i] < ds[j]) { ds[j--] = a[i]; }
}
return Arrays.copyOfRange(ds, 0, dsl+1);
}

48.微軟:
一個數組是由一個遞減數列左移若干位形成的,比如{4,3,2,1,6,5}
是由{6,5,4,3,2,1}左移兩位形成的,在這種數組中查找某一個數。
ANSWER:
The key is that, from the middle point of the array, half of the array is sorted, and the other half is a half-size shifted sorted array. So this can also be done recursively like a binary search.

int shiftedBinarySearch(int a[], int k) {
return helper(a, k, 0, n-1);
}

int helper(int a[], int k, int s, int t) {
if (s>t) return -1;
int m = s + (t-s)/2;
if (a[m] == k) return m;
else if (a[s] >= k && k > a[m]) return helper(a, k, s, m-1);
else return helper(a, k, m+1, e);
}


49.一道看上去很嚇人的算法面試題:
如何對n 個數進行排序,要求時間復雜度O(n),空間復雜度O(1)
ANSWER:
So a comparison sort is not allowed. Counting sort’s space complexity is O(n).
More ideas must be exchanged to find more conditions, else this is a crap.

50.網易有道筆試:
1.求一個二叉樹中任意兩個節點間的最大距離,兩個節點的距離的定義是這兩個節點間邊
的個數,
比如某個孩子節點和父節點間的距離是1,和相鄰兄弟節點間的距離是2,優化時間空間復
雜度。
ANSWER:
Have done this before.

2.求一個有向連通圖的割點,割點的定義是,
如果除去此節點和與其相關的邊,有向圖不再連通,描述算法。
ANSWER:
Have done this before.
-------------------------------------------------------------------
51.和為n 連續正數序列。
題目:輸入一個正數n,輸出所有和為n 連續正數序列。
例如輸入15,由于1+2+3+4+5=4+5+6=7+8=15,所以輸出3 個連續序列1-5、4-6 和7-8。
分析:這是網易的一道面試題。
ANSWER:
It seems that this can be solved by factorization. However, factorization of large n is impractical!

Suppose n=i+(i+1)+...+(j-1)+j, then n = (i+j)(j-i+1)/2 = (j*j - i*i + i + j)/2
=> j^2 + j + (i-i^2-2n) = 0 => j=sqrt(i^2-i+1/4+2n) - 1/2
We know 1 <= i < j <= n/2 + 1
So for each i in [1, n/2], do this arithmetic to check if there is a integer answer.

int findConsecutiveSequence(int n) {
count = 0;
for (int i=1; i<=n/2; i++) {
int sqroot = calcSqrt(4*i*i+8*n-4*i+1);
if (sqroot == -1) continue;
if ((sqroot & 1) == 1) {
System.out.println(i+”-” + ((sqroot-1)/2));
count ++;
}
}
return count;
}
Use binary search to calculate sqrt, or just use math functions.


52.二元樹的深度。
題目:輸入一棵二元樹的根結點,求該樹的深度。
從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為
樹的深度。

例如:輸入二元樹:
10
/ \
6 14
/ / \
4 12 16
輸出該樹的深度3。
二元樹的結點定義如下:
struct SBinaryTreeNode // a node of the binary tree
{
int m_nValue; // value of node
SBinaryTreeNode *m_pLeft; // left child of node
SBinaryTreeNode *m_pRight; // right child of node
};
分析:這道題本質上還是考查二元樹的遍歷。

ANSWER:
Have done this.

53.字符串的排列。
題目:輸入一個字符串,打印出該字符串中字符的所有排列。
例如輸入字符串abc,則輸出由字符a、b、c 所能排列出來的所有字符串
abc、acb、bac、bca、cab 和cba。
分析:這是一道很好的考查對遞歸理解的編程題,
因此在過去一年中頻繁出現在各大公司的面試、筆試題中。
ANSWER:
Full permutation generation. I will use another technique that swap two neighboring characters each time. It seems that all the characters are different. I need to think about how to do it when duplications is allowed. Maybe simple recursion is better for that.

void generatePermutation(char s[], int n) {
if (n>20) { error(“are you crazy?”); }
byte d[n];
int pos[n], dpos[n]; // pos[i], the position of i’th number, dpos[i] the number in s[i] is the dpos[i]’th smallest
qsort(s); // I cannot remember the form of qsort in C...
memset(d, -1, sizeof(byte)*n);
for (int i=0; i<n; i++) pos[i]=i, dpos[i]=i;

int r;
while (r = findFirstAvailable(s, d, pos, n)) {
if (r== -1) return;
swap(s, pos, dpos, d, r, r+d[r]);
for (int i=n-1; i>dpos[r]; i--)
d[i] = -d[i];
}
}
int findFirstAvailable(char s[], byte d[], int pos[], int n) {
for (int i=n-1; i>1; i--) {
if (s[pos[i]] > s[pos[i]+d[pos[i]]]) return pos[i];
}
return -1;
}

#define aswap(ARR, X, Y) {int t=ARR[X]; ARR[X]=ARR[y]; ARR[Y]=t;}
void swap(char s[], int pos[], int dpos[], byte d[], int r, int s) {
aswap(s, r, s);
aswap(d, r, s);
aswap(pos, dpos[r], dpos[s]);
aswap(dpos, r, s);
}

Maybe full of bugs. Please refer to algorithm manual for explansion.
Pros: Amotized O(1) time for each move. Only two characters change position for each move.
Cons: as you can see, very complicated. Extra space needed.

54.調整數組順序使奇數位于偶數前面。
題目:輸入一個整數數組,調整數組中數字的順序,使得所有奇數位于數組的前半部分,
所有偶數位于數組的后半部分。要求時間復雜度為O(n)。
ANSWER:
This problem makes me recall the process of partition in quick sort.

void partition(int a[], int n) {
int i=j=0;
while (i < n && (a[i] & 1)==0) i++;
if (i==n) return;
swap(a, i++, j++);
while (i<n) {
if ((a[i] & 1) == 1) {
swap(a, i, j++);
}
i++;
}
}


55. 題目:類CMyString 的聲明如下:
class CMyString
{
public:
CMyString(char* pData = NULL);
CMyString(const CMyString& str);
~CMyString(void);
CMyString& operator = (const CMyString& str);
private:
char* m_pData;
};
請實現其賦值運算符的重載函數,要求異常安全,即當對一個對象進行賦值時發生異常,對
象的狀態不能改變。
ANSWER
Pass...

56.最長公共字串。
題目:如果字符串一的所有字符按其在字符串中的順序出現在另外一個字符串二中,
則字符串一稱之為字符串二的子串。
注意,并不要求子串(字符串一)的字符必須連續出現在字符串二中。
請編寫一個函數,輸入兩個字符串,求它們的最長公共子串,并打印出最長公共子串。
例如:輸入兩個字符串BDCABA 和ABCBDAB,字符串BCBA 和BDAB 都是是它們的最長公共子串,則輸出它們的長度4,并打印任意一個子串。
分析:求最長公共子串(Longest Common Subsequence, LCS)是一道非常經典的動態規劃
題,因此一些重視算法的公司像MicroStrategy 都把它當作面試題。
ANSWER:
Standard DP...
lcs(ap1, bp2) = max{ lcs(p1,p2)+1, lcs(p1, bp2), lcs(ap1, p2)}

int LCS(char *p1, char *p2) {
int l1= strlen(p1)+1, l2=strlen(p2)+1;
int a[l1*l2];
for (int i=0; i<l1; i++) a[i*l2] = 0;
for (int i=0; i<l2; i++) a[i] = 0;
for (int i=1; i<l1; i++) {
for (int j=1; j<l2; j++) {
int max = MAX(a[(i-1)*l2+l1], a[i*l2+l1-1]);
if (p1[i-1] == p2[j-1]) {
max = (max > 1 + a[(i-1)*l2+j-1]) ? max : 1+a[(i-1)*l2+j-1];
}
}
}
return a[l1*l2-1];
}

57.用倆個棧實現隊列。
題目:某隊列的聲明如下:
template<typename T> class CQueue
{
public:
CQueue() {}
~CQueue() {}
void appendTail(const T& node); // append a element to tail
void deleteHead(); // remove a element from head
private:
Stack<T> m_stack1;
Stack<T> m_stack2;
};
分析:從上面的類的聲明中,我們發現在隊列中有兩個棧。
因此這道題實質上是要求我們用兩個棧來實現一個隊列。
相信大家對棧和隊列的基本性質都非常了解了:棧是一種后入先出的數據容器,
因此對隊列進行的插入和刪除操作都是在棧頂上進行;隊列是一種先入先出的數據容器,
我們總是把新元素插入到隊列的尾部,而從隊列的頭部刪除元素。
ANSWER
Traditional problem in CLRS.
void appendTail(const T& node) {
m_stack1.push(node);
}
T getHead() {
if (!m_stack2.isEmpty()) {
return m_stack2.pop();
}
if (m_stack1.isEmpty()) error(“delete from empty queue”);
while (!m_stack1.isEmpty()) {
m_stack2.push(m_stack1.pop());
}
return m_stack2.pop();
}


58.從尾到頭輸出鏈表。
題目:輸入一個鏈表的頭結點,從尾到頭反過來輸出每個結點的值。鏈表結點定義如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
分析:這是一道很有意思的面試題。
該題以及它的變體經常出現在各大公司的面試、筆試題中。
ANSWER
Have answered this...


59.不能被繼承的類。
題目:用C++設計一個不能被繼承的類。
分析:這是Adobe 公司2007 年校園招聘的最新筆試題。
這道題除了考察應聘者的C++基本功底外,還能考察反應能力,是一道很好的題目。
ANSWER:
I don’t know c++.
Maybe it can be done by implement an empty private default constructor.

60.在O(1)時間內刪除鏈表結點。
題目:給定鏈表的頭指針和一個結點指針,在O(1)時間刪除該結點。鏈表結點的定義如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
函數的聲明如下:
void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted);
分析:這是一道廣為流傳的Google 面試題,能有效考察我們的編程基本功,還能考察我們
的反應速度,
更重要的是,還能考察我們對時間復雜度的理解。
ANSWER:
Copy the data from tobedeleted’s next to tobedeleted. then delete tobedeleted. The special case is tobedelete is the tail, then we must iterate to find its predecessor.
The amortized time complexity is O(1).

-------------------------------------------------------------------------
61.找出數組中兩個只出現一次的數字
題目:一個整型數組里除了兩個數字之外,其他的數字都出現了兩次。
請寫程序找出這兩個只出現一次的數字。要求時間復雜度是O(n),空間復雜度是O(1)。
分析:這是一道很新穎的關于位運算的面試題。
ANSWER:
XOR.

62.找出鏈表的第一個公共結點。
題目:兩個單向鏈表,找出它們的第一個公共結點。
鏈表的結點定義為:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
分析:這是一道微軟的面試題。微軟非常喜歡與鏈表相關的題目,
因此在微軟的面試題中,鏈表出現的概率相當高。
ANSWER:
Have done this.

63.在字符串中刪除特定的字符。
題目:輸入兩個字符串,從第一字符串中刪除第二個字符串中所有的字符。例如,輸入”They are students.”和”aeiou”, 則刪除之后的第一個字符串變成”Thy r stdnts.”。
分析:這是一道微軟面試題。在微軟的常見面試題中,與字符串相關的題目占了很大的一部
分,因為寫程序操作字符串能很好的反映我們的編程基本功。
ANSWER:
Have done this? Use a byte array / character hash to record second string. then use two pointers to shrink the 1st string.

64. 尋找丑數。
題目:我們把只包含因子2、3 和5 的數稱作丑數(Ugly Number)。例如6、8 都是丑數,
但14 不是,因為它包含因子7。習慣上我們把1 當做是第一個丑數。求按從小到大的順序的第1500 個丑數。
分析:這是一道在網絡上廣為流傳的面試題,據說google 曾經采用過這道題。
ANSWER:
TRADITIONAL.

Use heap/priority queue.
int no1500() {
int heap[4500];
heap[0] = 2; heap[1] = 3; heap[2] = 5;
int size = 3;
for (int i=1; i<1500; i++) {
int s = heap[0];
heap[0] = s*2; siftDown(heap, 0, size);
heap[size] = s*3; siftUp(heap, size, size+1);
heap[size+1] = s*5; siftUp(heap, size+1, size+2);
size+=2;
}
}

void siftDown(int heap[], int from, int size) {
int c = from * 2 + 1;
while (c < size) {
if (c+1<size && heap[c+1] < heap[c]) c++;
if (heap[c] < heap[from]) swap(heap, c, from);
from = c; c=from*2+1;
}
}
void siftUp(int heap[], int from, int size) {
while (from > 0) {
int p = (from - 1) / 2;
if (heap[p] > heap[from]) swap(heap, p, from);
from = p;
}
}

65.輸出1 到最大的N 位數
題目:輸入數字n,按順序輸出從1 最大的n 位10 進制數。比如輸入3,則輸出1、2、3 一直到最大的3 位數即999。
分析:這是一道很有意思的題目。看起來很簡單,其實里面卻有不少的玄機。
ANSWER:
So maybe n could exceed i32? I cannot tell where is the trick...
Who will output 2*10^9 numbers...


66.顛倒棧。
題目:用遞歸顛倒一個棧。例如輸入棧{1, 2, 3, 4, 5},1 在棧頂。
顛倒之后的棧為{5, 4, 3, 2, 1},5 處在棧頂。
ANSWER:
Interesting...

void reverse(Stack stack) {
if (stack.size() == 1) return;
Object o = stack.pop();
reverse(stack);
putToBottom(stack, o);
}

void putToBottom(Stack stack, Object o) {
if (stack.isEmpty()) {
stack.push(o);
return;
}
Object o2 = stack.pop();
putToBottom(stack, o);
stack.push(o2);
}

67.倆個閑玩娛樂。
1.撲克牌的順子
從撲克牌中隨機抽5 張牌,判斷是不是一個順子,即這5 張牌是不是連續的。2-10 為數字本身,A 為1,J 為11,Q 為12,K 為13,而大小王可以看成任意數字。
ANSWER:
// make king = 0
boolean isStraight(int a[]) {
Arrays.sort(a);
if (a[0] > 0) return checkGaps(a, 0, 4, 0);
if (a[0] == 0 && a[1] != 0) return checkGaps(a, 1, 4, 1);
return checkGaps(a, 2, 4, 2);
}

boolean checkGaps(int []a, int s, int e, int allowGaps) {
int i=s;
while (i<e) {
allowGaps -= a[i+1] - a[i] - 1;
if (allowGaps < 0) return false;
i++;
}
return true;
}

2.n 個骰子的點數。把n 個骰子扔在地上,所有骰子朝上一面的點數之和為S。輸入n,
打印出S 的所有可能的值出現的概率。
ANSWER:
All the possible values includes n to 6n. All the event number is 6^n.
For n<=S<=6n, the number of events is f(S, n)
f(S,n) = f(S-6, n-1) + f(S-5, n-1) + … + f(S-1, n-1)
number of events that all dices are 1s is only 1, and thus f(k, k) = 1, f(1-6, 1) = 1, f(x, 1)=0 where x<1 or x>6, f(m, n)=0 where m<n
Can do it in DP.

void listAllProbabilities(int n) {
int[][] f = new int[6*n+1][];
for (int i=0; i<=6*n; i++) {
f[i] = new int[n+1];
}
for (int i=1; i<=6; i++) {
f[i][1] = 1;
}
for (int i=1; i<=n; i++) {
f[i][i] = 1;
}
for (int i=2; i<=n; i++) {
for (int j=i+1; j<=6*i; j++) {
for (int k=(j-6<i-1)?i-1:j-6; k<j-1; k++)
f[j][i] += f[k][i-1];
}
}
double p6 = Math.power(6, n);
for (int i=n; i<=6*n; i++) {
System.out.println(“P(S=”+i+”)=”+((double)f[i][n] / p6));
}
}

68.把數組排成最小的數。
題目:輸入一個正整數數組,將它們連接起來排成一個數,輸出能排出的所有數字中最小的
一個。
例如輸入數組{32, 321},則輸出這兩個能排成的最小數字32132。
請給出解決問題的算法,并證明該算法。
分析:這是09 年6 月份百度的一道面試題,
從這道題我們可以看出百度對應聘者在算法方面有很高的要求。
ANSWER:
Actually this problem has little to do with algorithm...
The concern is, you must figure out how to arrange to achieve a smaller figure.
The answer is, if ab < ba, then a < b, and this is a total order.

String smallestDigit(int a[]) {
Integer aux[] = new Integer[a.length];
for (int i=0; i<a.length; a++) aux[i] = a[i];
Arrays.sort(aux, new Comparator<Integer>(){
int compareTo(Integer i1, Integer i2) {
return (“”+i1+i2).compare(“”+i2+i1);
}
});
StringBuffer sb = new StringBuffer();
for (int i=0; i<aux.length, i++) {
sb.append(aux[i]);
}
return sb.toString();
}

69.旋轉數組中的最小元素。
題目:把一個數組最開始的若干個元素搬到數組的末尾,我們稱之為數組的旋轉。輸入一個
排好序的數組的一個旋轉,
輸出旋轉數組的最小元素。例如數組{3, 4, 5, 1, 2}為{1, 2, 3, 4, 5}的一個旋轉,該數
組的最小值為1。
分析:這道題最直觀的解法并不難。從頭到尾遍歷數組一次,就能找出最小的元素,時間復雜度顯然是O(N)。但這個思路沒有利用輸入數組的特性,我們應該能找到更好的解法。
ANSWER
This is like the shifted array binary search problem. One blind point is that you may miss the part that the array is shifted by 0(or kN), that is not shifted.

int shiftedMinimum(int a[], int n) {
return helper(a, 0, n-1);
}

int helper(int a[], int s, int t) {
if (s == t || a[s] < a[t]) return a[s];
int m = s + (t-s)/2;
if (a[s]>a[m]) return helper(a, s, m);
else return helper(a, m+1, t);
}


70.給出一個函數來輸出一個字符串的所有排列。
ANSWER 簡單的回溯就可以實現了。當然排列的產生也有很多種算法,去看看組合數學,
還有逆序生成排列和一些不需要遞歸生成排列的方法。
印象中Knuth 的<TAOCP>第一卷里面深入講了排列的生成。這些算法的理解需要一定的數學功底,也需要一定的靈感,有興趣最好看看。
ANSWER:
Have done this.

71.數值的整數次方。
題目:實現函數double Power(double base, int exponent),求base 的exponent 次方。
不需要考慮溢出。
分析:這是一道看起來很簡單的問題。可能有不少的人在看到題目后30 秒寫出如下的代碼:
double Power(double base, int exponent)
{
double result = 1.0;
for(int i = 1; i <= exponent; ++i)
result *= base;
return result;
}
ANSWER

double power(double base, int exp) {
if (exp == 1) return base;
double half = power(base, exp >> 1);
return (((exp & 1) == 1) ? base : 1.0) * half * half;
}

72. 題目:設計一個類,我們只能生成該類的一個實例。
分析:只能生成一個實例的類是實現了Singleton 模式的類型。
ANSWER
I’m not good at multithread programming... But if we set a lazy initialization, the “if” condition could be interrupted thus multiple constructor could be called, so we must add synchronized to the if judgements, which is a loss of efficiency. Putting it to the static initialization will guarantee that the constructor only be executed once by the java class loader.
public class Singleton {
private static Singleton instance = new Singleton();
private synchronized Singleton() {
}
public Singleton getInstance() {
return instance();
}
}
This may not be correct. I’m quite bad at this...

73.對策字符串的最大長度。
題目:輸入一個字符串,輸出該字符串中對稱的子字符串的最大長度。比如輸入字符串“google”,由于該字符串里最長的對稱子字符串是“goog”,因此輸出4。
分析:可能很多人都寫過判斷一個字符串是不是對稱的函數,這個題目可以看成是該函數的
加強版。
ANSWER
Build a suffix tree of x and inverse(x), the longest anagram is naturally found.
Suffix tree can be built in O(n) time so this is a linear time solution.

74.數組中超過出現次數超過一半的數字
題目:數組中有一個數字出現的次數超過了數組長度的一半,找出這個數字。
分析:這是一道廣為流傳的面試題,包括百度、微軟和Google 在內的多家公司都
曾經采用過這個題目。要幾十分鐘的時間里很好地解答這道題,
除了較好的編程能力之外,還需要較快的反應和較強的邏輯思維能力。
ANSWER
Delete every two different digits. The last one that left is the one.
int getMajor(int a[], int n) {
int x, cnt=0;
for (int i=0; i<n; i++) {
if (cnt == 0) {
x = a[i]; cnt++;
} else if (a[i]==x) {
cnt ++;
} else {
cnt --;
}
}
return x;
}

75.二叉樹兩個結點的最低共同父結點
題目:二叉樹的結點定義如下:
struct TreeNode
{
int m_nvalue;
TreeNode* m_pLeft;
TreeNode* m_pRight;
};
輸入二叉樹中的兩個結點,輸出這兩個結點在數中最低的共同父結點。
分析:求數中兩個結點的最低共同結點是面試中經常出現的一個問題。這個問題至少有兩個
變種。
ANSWER
Have done this. Do it again for memory...
TreeNode* getLCA(TreeNode* root, TreeNode* X, TreeNode *Y) {
if (root == NULL) return NULL;
if (X == root || Y == root) return root;
TreeNode * left = getLCA(root->m_pLeft, X, Y);
TreeNode * right = getLCA(root->m_pRight, X, Y);
if (left == NULL) return right;
else if (right == NULL) return left;
else return root;
}


76.復雜鏈表的復制
題目:有一個復雜鏈表,其結點除了有一個m_pNext 指針指向下一個結點外,還有一個m_pSibling 指向鏈表中的任一結點或者NULL。其結點的C++定義如下:
struct ComplexNode
{
int m_nValue;
ComplexNode* m_pNext;
ComplexNode* m_pSibling;
};
下圖是一個含有5 個結點的該類型復雜鏈表。


微軟面試100題2010年版全部答案集錦(含下載地址)

圖中實線箭頭表示m_pNext 指針,虛線箭頭表示m_pSibling 指針。為簡單起見,指向NULL 的指針沒有畫出。請完成函數ComplexNode* Clone(ComplexNode* pHead),以復制一個復雜鏈表。
分析:在常見的數據結構上稍加變化,這是一種很新穎的面試題。
要在不到一個小時的時間里解決這種類型的題目,我們需要較快的反應能力,
對數據結構透徹的理解以及扎實的編程功底。
ANSWER
Have heard this before, never seriously thought it.

The trick is like this: take use of the old pSibling, make it points to the new created cloned node, while make the new cloned node’s pNext backup the old pSibling.

ComplexNode * Clone(ComplexNode* pHead) {
if (pHead == NULL) return NULL;
preClone(pHead);
inClone(pHead);
return postClone(pHead);
}

void preClone(ComplexNode* pHead) {
ComplexNode * p = new ComplexNode();
p->m_pNext = pHead->m_pSibling;
pHead->m_pSibling = p;
if (pHead->m_pNext != NULL) preClone(pHead->m_pNext);
}

void inClone(ComplexNode * pHead) {
ComplexNode * pSib = pNew->m_pNext;
if (pSib == NULL) { pNew->m_pSibling = NULL; }
else { pNew->m_pSibling = pSib->m_pSibling; }
if (pHead->m_pNext != NULL) inClone(pHead->m_pNext);
}

ComplexNode * postClone(ComplexNode * pHead) {
ComplexNode * pNew = pHead->m_pSibling;
ComplexNode * pSib = pNew->m_pNext;
if (pHead->m_pNext != NULL) {
pNew->m_pNext = pHead->m_pNext->m_pSibling;
pHead->m_pSibling = pSib;
postClone(pHead->m_pNext);
} else {
pNew->pNext = NULL;
pHead->m_pSibling = NULL;
}
return pNew;
}


77.關于鏈表問題的面試題目如下:
1.給定單鏈表,檢測是否有環。
使用兩個指針p1,p2 從鏈表頭開始遍歷,p1 每次前進一步,p2 每次前進兩步。如果p2 到
達鏈表尾部,說明無環,否則p1、p2 必然會在某個時刻相遇(p1==p2),從而檢測到鏈表中有環。
2.給定兩個單鏈表(head1, head2),檢測兩個鏈表是否有交點,如果有返回第一個交點。如果head1==head2,那么顯然相交,直接返回head1。否則,分別從head1,head2 開始遍歷兩個鏈表獲得其長度len1 與len2,假設len1>=len2,那么指針p1 由head1 開始向后移動len1-len2 步,指針p2=head2,下面p1、p2 每次向后前進一步并比較p1p2 是否相等,如果相等即返回該結點,否則說明兩個鏈表沒有交點。
3.給定單鏈表(head),如果有環的話請返回從頭結點進入環的第一個節點。
運用題一,我們可以檢查鏈表中是否有環。如果有環,那么p1p2 重合點p 必然在環中。從p 點斷開環,方法為:p1=p, p2=p->next, p->next=NULL。此時,原單鏈表可以看作兩條單鏈表,一條從head 開始,另一條從p2 開始,于是運用題二的方法,我們找到它們的第一個交點即為所求。
4.只給定單鏈表中某個結點p(并非最后一個結點,即p->next!=NULL)指針,刪除該結點。辦法很簡單,首先是放p 中數據,然后將p->next 的數據copy 入p 中,接下來刪除p->next即可。
5.只給定單鏈表中某個結點p(非空結點),在p 前面插入一個結點。辦法與前者類似,首先分配一個結點q,將q 插入在p 后,接下來將p 中的數據copy 入q中,然后再將要插入的數據記錄在p 中。


78.鏈表和數組的區別在哪里?
分析:主要在基本概念上的理解。
但是最好能考慮的全面一點,現在公司招人的競爭可能就在細節上產生,誰比較仔細,誰獲勝的機會就大。
ANSWER
1. Besides the common staff, linked list is more abstract and array is usually a basic real world object. When mentioning “linked list”, it doesn’t matter how it is implemented, that is, as long as it supports “get data” and “get next”, it is a linked list. But almost all programming languages provides array as a basic data structure.
2. So array is more basic. You can implement a linked list in an array, but cannot in the other direction.


79.
1.編寫實現鏈表排序的一種算法。說明為什么你會選擇用這樣的方法?
ANSWER
For linked list sorting, usually mergesort is the best choice. Pros: O(1) auxilary space, compared to array merge sort. No node creation, just pointer operations.
Node * linkedListMergeSort(Node * pHead) {
int len = getLen(pHead);
return mergeSort(pHead, len);
}

Node * mergeSort(Node * p, int len) {
if (len == 1) { p->next = NULL; return p; }
Node * pmid = p;
for (int i=0; i<len/2; i++) {
pmid = pmid->next;
}
Node * p1 = mergeSort(p, len/2);
Node * p2 = mergeSort(pmid, len - len/2);
return merge(p1, p2);
}
Node * merge(Node * p1, Node * p2) {
Node * p = NULL, * ph = NULL;
while (p1!=NULL && p2!=NULL) {
if (p1->data<p2->data) {
if (ph == NULL) {ph = p = p1;}
else { p->next = p1; p1 = p1->next; p = p->next;}
} else {
if (ph == NULL) {ph = p = p2;}
else { p->next = p2; p2 = p2->next; p = p->next;}
}
}
p->next = (p1==NULL) ? p2 : p1;
return ph;
}

2.編寫實現數組排序的一種算法。說明為什么你會選擇用這樣的方法?
ANSWER
Actually, it depends on the data. If arbitrary data is given in the array, I would choose quick sort. It is asy to implement, fast.

3.請編寫能直接實現strstr()函數功能的代碼。
ANSWER
Substring test? Have done this.

80.阿里巴巴一道筆試題
問題描述:
12 個高矮不同的人,排成兩排,每排必須是從矮到高排列,而且第二排比對應的第一排的人
高,問排列方式有多少種?
這個筆試題,很YD,因為把某個遞歸關系隱藏得很深。
ANSWER
Must be
1 a b … …
c d e … …
c could be 2th to 7th ( has to be smaller than d, e... those 5 numbers),
so f(12) = 6 f(10) = 6* 5 f(8) = 30 * 4f(6) = 120*3f(4) = 360*2f(2) = 720

81.第1 組百度面試題
1.一個int 數組,里面數據無任何限制,要求求出所有這樣的數a[i],其左邊的數都小于等于它,右邊的數都大于等于它。能否只用一個額外數組和少量其它空間實現。
ANSWER
Sort the array to another array, compare it with the original array, all a[i] = b[i] are answers.

2.一個文件,內含一千萬行字符串,每個字符串在1K 以內,要求找出所有相反的串對,如abc 和cba。
ANSWER
So we have ~10G data. It is unlikely to put them all into main memory. Anyway, calculate the hash of each line in the first round, at the second round calculate the hash of the reverse of the line and remembers only the line number pairs that the hashes of the two directions collides. The last round only test those lines.

3.STL 的set 用什么實現的?為什么不用hash?
ANSWER
I don’t quite know. Only heard of that map in stl is implemented with red-black tree. One good thing over hash is that you don’t need to re-hash when data size grows.

82.第2 組百度面試題
1.給出兩個集合A 和B,其中集合A={name},
集合B={age、sex、scholarship、address、...},
要求:
問題1、根據集合A 中的name 查詢出集合B 中對應的屬性信息;
問題2、根據集合B 中的屬性信息(單個屬性,如age<20 等),查詢出集合A 中對應的name。
ANSWER
SQL? Not a good defined question.

2.給出一個文件,里面包含兩個字段{url、size},即url 為網址,size 為對應網址訪問的次數
要求:
問題1、利用Linux Shell 命令或自己設計算法,查詢出url 字符串中包含“baidu”子字符串對應的size 字段值;
問題2、根據問題1 的查詢結果,對其按照size 由大到小的排列。
(說明:url 數據量很大,100 億級以上)
ANSWER
1. shell: gawk ‘ /baidu/ { print $2 } ’ FILE
2. shell: gawk ‘ /baidu/ {print $2}’ FILE | sort -n -r

83.第3 組百度面試題
1.今年百度的一道題目
百度筆試:給定一個存放整數的數組,重新排列數組使得數組左邊為奇數,右邊為偶數。
要求:空間復雜度O(1),時間復雜度為O(n)。
ANSWER
Have done this.
2.百度筆試題
用C 語言實現函數void * memmove(void *dest, const void *src, size_t n)。memmove 函數的功能是拷貝src 所指的內存內容前n 個字節到dest 所指的地址上。
分析:
由于可以把任何類型的指針賦給void 類型的指針, 這個函數主要是實現各種數據類型的拷貝。
ANSWER
//To my memory, usually memcpy doesn’t check overlap, memmove do
void * memmove(void * dest, const void * src, size_t n) {
if (dest==NULL || src == NULL) error(“NULL pointers”);
byte * psrc = (byte*)src;
byte * pdest = (byte*)dest;
int step = 1;
if (dest < src + n) {
psrc = (byte*)(src+n-1);
pdest = (byte*)(dest+n-1);
step = -1;
}
for (int i=0; i<n; i++) {
pdest = psrc;
pdest += step; psrc += step;
}
}

84.第4 組百度面試題
2010 年3 道百度面試題[相信,你懂其中的含金量]
1.a~z 包括大小寫與0~9 組成的N 個數, 用最快的方式把其中重復的元素挑出來。
ANSWER
By fastest, so memory is not the problem, hash is the first choice. Or trie will do.
Both run in O(Size) time, where size is the total size of the imput.

2.已知一隨機發生器,產生0 的概率是p,產生1 的概率是1-p,現在要你構造一個發生器,使得它構造0 和1 的概率均為1/2;構造一個發生器,使得它構造1、2、3 的概率均為1/3;...,構造一個發生器,使得它構造1、2、3、...n 的概率均為1/n,要求復雜度最低。
ANSWER
Run rand() twice, we got 00, 01, 10 or 11. If it’s 00 or 11, discard it, else output 0 for 01, 1 for 10.

Similarly, assume C(M, 2) >= n and C(M-1, 2) < n. Do M rand()’s and get a binary string of M length. Assign 1100...0 to 1, 1010...0 to 2, ...


3.有10 個文件,每個文件1G,
每個文件的每一行都存放的是用戶的query,每個文件的query 都可能重復。
要求按照query 的頻度排序.
ANSWER
If there is no enough memory, do bucketing first. For each bucket calculate the frequency of each query and sort. Then combine all the frequencies with multiway mergesort.

85.又見字符串的問題
1.給出一個函數來復制兩個字符串A 和B。字符串A 的后幾個字節和字符串B 的前幾個字節重疊。分析:記住,這種題目往往就是考你對邊界的考慮情況。
ANSWER
Special case of memmove.

2.已知一個字符串,比如asderwsde,尋找其中的一個子字符串比如sde 的個數,如果沒有返回0,有的話返回子字符串的個數。
ANSWER
ANSWER
int count_of_substr(const char* str, const char * sub) {
int count = 0;
char * p = str;
int n = strlen(sub);
while ( *p != ‘\0’ ) {
if (strncmp(p, sub, n) == 0) count ++;
p++;
}
return count;
}

Also recursive way works. Possible optimizations like Sunday algorithm or Rabin-Karp algorithm will do.

86.
怎樣編寫一個程序,把一個有序整數數組放到二叉樹中?
分析:本題考察二叉搜索樹的建樹方法,簡單的遞歸結構。關于樹的算法設計一定要聯想到遞歸,因為樹本身就是遞歸的定義。而,學會把遞歸改稱非遞歸也是一種必要的技術。畢竟,遞歸會造成棧溢出,關于系統底層的程序中不到非不得以最好不要用。但是對某些數學問題,就一定要學會用遞歸去解決。
ANSWER
This is the first question I’m given in a google interview.

Node * array2Tree(int[] array) {
return helper(array, 0, n-1);
}

Node * helper(int[] array, int start, int end) {
if (start > end) return NULL;
int m = start + (end-start)/2;
Node * root = new Node(array[m]);
root->left = helper(array, start, m-1);
root->right = helper(array, m+1, end);
return root;
}

87.
1.大整數數相乘的問題。(這是2002 年在一考研班上遇到的算法題)
ANSWER
Do overflow manually.
final static long mask = (1 << 31) - 1;
ArrayList<Integer> multiply(ArrayList <Integer> a, ArrayList<Integer> b) {
ArrayList<Integer> result = new ArrayList<Integer>(a.size()*b.size()+1);
for (int i=0; i<a.size(); i++) {
multiply(b, a.get(i), i, result);
}
return result;
}
void multiply(ArrayList<Integer> x, int a, int base, ArrayList<Integer> result) {
if (a == 0) return;
long overflow = 0;
int i;
for (i=0; i<x.size(); i++) {
long tmp = x.get(i) * a + result.get(base+i) + overflow;
result.set(base+i, (int)(mask & tmp));
overflow = (tmp >> 31);
}
while (overflow != 0) {
long tmp = result.get(base+i) + overflow;
result.set(base+i, (int) (mask & tmp));
overflow = (tmp >> 31);
}
}


2.求最大連續遞增數字串(如“ads3sl456789DF3456ld345AA”中的“456789”)
ANSWER
Have done this.

3.實現strstr 功能,即在父串中尋找子串首次出現的位置。
(筆試中常讓面試者實現標準庫中的一些函數)
ANSWER
Have done this.

88.2005 年11 月金山筆試題。編碼完成下面的處理函數。
函數將字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改變非'*'字符的先后順序,函數返回串中字符'*'的數量。如原始串為:ab**cd**e*12,處理后為*****abcde12,函數并返回值為5。(要求使用盡量少的時間和輔助空間)
ANSWER
It’s like partition in quick sort. Just keep the non-* part stable.

int partitionStar(char a[]) {
int count = 0;
int i = a.length-1, j=a.length-1; // i for the cursor, j for the first non-* char
while (i >= 0) {
if (a[i] != ‘*’) {
swap(a, i--, j--);
} else {
i--; count ++;
}
}
return count;
}


89.神州數碼、華為、東軟筆試題
1.2005 年11 月15 日華為軟件研發筆試題。實現一單鏈表的逆轉。
ANSWER
Have done this.

2.編碼實現字符串轉整型的函數(實現函數atoi 的功能),據說是神州數碼筆試題。如將字符串”+123”123, ”-0123”-123, “123CS45”123, “123.45CS”123, “CS123.45”0
ANSWER
int atoi(const char * a) {
if (*a==’+’) return atoi(a+1);
else if (*a==’-’) return - atoi(a+1);
char *p = a;
int c = 0;
while (*p >= ‘0’ && *p <= ‘9’) {
c = c*10 + (*p - ‘0’);
}
return c;
}

3.快速排序(東軟喜歡考類似的算法填空題,又如堆排序的算法等)
ANSWER
Standard solution. Skip.

4.刪除字符串中的數字并壓縮字符串。如字符串”abc123de4fg56”處理后變為”abcdefg”。注意空間和效率。(下面的算法只需要一次遍歷,不需要開辟新空間,時間復雜度為O(N))
ANSWER
Also partition, keep non-digit stable.
char * partition(const char * str) {
char * i = str; // i for cursor, j for the first digit char;
char * j = str;
while (*i != ‘\0’) {
if (*i > ‘9’ || *i < ‘0’) {
*j++ = *i++;
} else {
*i++;
}
}
*j = ‘\0’;
return str;
}

5.求兩個串中的第一個最長子串(神州數碼以前試題)。
如"abractyeyt","dgdsaeactyey"的最大子串為"actyet"。
ANSWER
Use suffix tree. The longest common substring is the longest prefix of the suffixes.
O(n) to build suffix tree. O(n) to find the lcs.

90.
1.不開辟用于交換數據的臨時空間,如何完成字符串的逆序
(在技術一輪面試中,有些面試官會這樣問)。
ANSWER
Two cursors.

2.刪除串中指定的字符
(做此題時,千萬不要開辟新空間,否則面試官可能認為你不適合做嵌入式開發)
ANSWER
Have done this.

3.判斷單鏈表中是否存在環。
ANSWER
Have done this.

91
1.一道著名的毒酒問題
有1000 桶酒,其中1 桶有毒。而一旦吃了,毒性會在1 周后發作。現在我們用小老鼠做實驗,要在1 周內找出那桶毒酒,問最少需要多少老鼠。
ANSWER
Have done this. 10 mices.

2.有趣的石頭問題
有一堆1 萬個石頭和1 萬個木頭,對于每個石頭都有1 個木頭和它重量一樣,
把配對的石頭和木頭找出來。
ANSWER
Quick sort.

92.
1.多人排成一個隊列,我們認為從低到高是正確的序列,但是總有部分人不遵守秩序。如果說,前面的人比后面的人高(兩人身高一樣認為是合適的), 那么我們就認為這兩個人是一對“搗亂分子”,比如說,現在存在一個序列:
176, 178, 180, 170, 171
這些搗亂分子對為
<176, 170>, <176, 171>, <178, 170>, <178, 171>, <180, 170>, <180, 171>,
那么,現在給出一個整型序列,請找出這些搗亂分子對的個數(僅給出搗亂分子對的數目即可,不用具體的對)
要求:
輸入:
為一個文件(in),文件的每一行為一個序列。序列全為數字,數字間用”,”分隔。
輸出:
為一個文件(out),每行為一個數字,表示搗亂分子的對數。
詳細說明自己的解題思路,說明自己實現的一些關鍵點。
并給出實現的代碼,并分析時間復雜度。
限制:
輸入每行的最大數字個數為100000 個,數字最長為6 位。程序無內存使用限制。
ANSWER
The answer is the swap number of insertion sort. The straightforward method is to do insertion sort and accumulate the swap numbers, which is slow: O(n^2)

A sub-quadratic solution can be done by DP.

f(n) = f(n-1) + Index(n)
Index(n), which is to determine how many numbers is smaller than a[n] in a[0..n-1], can be done in log(n) time using BST with subtree size.


93.在一個int 數組里查找這樣的數,它大于等于左側所有數,小于等于右側所有數。直觀想法是用兩個數組a、b。a[i]、b[i]分別保存從前到i 的最大的數和從后到i 的最小的數,一個解答:這需要兩次遍歷,然后再遍歷一次原數組,將所有data[i]>=a[i-1]&&data[i]<=b[i]的data[i]找出即可。給出這個解答后,面試官有要求只能用一個輔助數組,且要求少遍歷一次。
ANSWER
It is natural to improve the hint... just during the second traversal, do the range minimum and picking together. There is no need to store the range minimums.


94.微軟筆試題
求隨機數構成的數組中找到長度大于=3 的最長的等差數列, 輸出等差數列由小到大:
如果沒有符合條件的就輸出
格式:
輸入[1,3,0,5,-1,6]
輸出[-1,1,3,5]
要求時間復雜度,空間復雜度盡量小
ANSWER
Firstly sort the array. Then do DP: for each a[i], update the length of the arithmetic sequences. That’s a O(n^3) solution. Each arithmetic sequence can be determined by the last item and the step size.


95.華為面試題
1 判斷一字符串是不是對稱的,如:abccba
ANSWER
Two cursors.

2.用遞歸的方法判斷整數組a[N]是不是升序排列
ANSWER
boolean isAscending(int a[]) {
return isAscending(a, 0);
}
boolean isAscending(int a[], int start) {
return start == a.length - 1 || isAscending(a, start+1);
}

96.08 年中興校園招聘筆試題
1.編寫strcpy 函數
已知strcpy 函數的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。不調用C++/C 的字符串庫函數,請編寫函數strcpy
ANSWER
char *strcpy(char *strDest, const char *strSrc) {
if (strSrc == NULL) return NULL;
char *i = strSrc, *j = strDest;
while (*i != ‘\0’) {
*j++ = *i++;
}
*j = ‘\0’;
return strDest;
}
Maybe you need to check if src and dest overlaps, then decide whether to copy from tail to head.


最后壓軸之戲,終結此微軟等100 題系列V0.1 版。
那就,
連續來幾組微軟公司的面試題,讓你一次爽個夠:
======================
97.第1 組微軟較簡單的算法面試題
1.編寫反轉字符串的程序,要求優化速度、優化空間。
ANSWER
Have done this.

2.在鏈表里如何發現循環鏈接?
ANSWER
Have done this.

3.編寫反轉字符串的程序,要求優化速度、優化空間。
ANSWER
Have done this.

4.給出洗牌的一個算法,并將洗好的牌存儲在一個整形數組里。
ANSWER
Have done this.

5.寫一個函數,檢查字符是否是整數,如果是,返回其整數值。
(或者:怎樣只用4 行代碼編寫出一個從字符串到長整形的函數?)
ANSWER
Char or string?
have done atoi;

98.第2 組微軟面試題
1.給出一個函數來輸出一個字符串的所有排列。
ANSWER
Have done this...

2.請編寫實現malloc()內存分配函數功能一樣的代碼。
ANSWER
Way too hard as an interview question...
Please check wikipedia for solutions...

3.給出一個函數來復制兩個字符串A 和B。字符串A 的后幾個字節和字符串B 的前幾個字節重疊。
ANSWER
Copy from tail to head.

4.怎樣編寫一個程序,把一個有序整數數組放到二叉樹中?
ANSWER
Have done this.

5.怎樣從頂部開始逐層打印二叉樹結點數據?請編程。
ANSWER
Have done this...

6.怎樣把一個鏈表掉個順序(也就是反序,注意鏈表的邊界條件并考慮空鏈表)?
ANSWER
Have done this...

99.第3 組微軟面試題
1.燒一根不均勻的繩,從頭燒到尾總共需要1 個小時。現在有若干條材質相同的繩子,問如何用燒繩的方法來計時一個小時十五分鐘呢?
ANSWER
May have done this... burn from both side gives ? hour.

2.你有一桶果凍,其中有黃色、綠色、紅色三種,閉上眼睛抓取同種顏色的兩個。抓取多少個就可以確定你肯定有兩個同一顏色的果凍?(5 秒-1 分鐘)
ANSWER
4.

3.如果你有無窮多的水,一個3 公升的提捅,一個5 公升的提捅,兩只提捅形狀上下都不均
勻,問你如何才能準確稱出4 公升的水?(40 秒-3 分鐘)
ANSWER
5 to 3 => 2
2 to 3, remaining 1
5 to remaining 1 => 4

一個岔路口分別通向誠實國和說謊國。
來了兩個人,已知一個是誠實國的,另一個是說謊國的。
誠實國永遠說實話,說謊國永遠說謊話。現在你要去說謊國,
但不知道應該走哪條路,需要問這兩個人。請問應該怎么問?(20 秒-2 分鐘)
ANSWER
Seems there are too many answers.
I will pick anyone to ask: how to get to your country? Then pick the other way.

100.第4 組微軟面試題,挑戰思維極限
1.12 個球一個天平,現知道只有一個和其它的重量不同,問怎樣稱才能用三次就找到那個
球。13 個呢?(注意此題并未說明那個球的重量是輕是重,所以需要仔細考慮)(5 分鐘-1 小時)
ANSWER
Too complicated. Go find brain teaser answers by yourself.

2.在9 個點上畫10 條直線,要求每條直線上至少有三個點?(3 分鐘-20 分鐘)


3.在一天的24 小時之中,時鐘的時針、分針和秒針完全重合在一起的時候有幾次?都分別是什么時間?你怎樣算出來的?(5 分鐘-15 分鐘)


30
終結附加題:
微軟面試題,挑戰你的智商
==========
說明:如果你是第一次看到這種題,并且以前從來沒有見過類似的題型,
并且能夠在半個小時之內做出答案,說明你的智力超常..)
1.第一題. 五個海盜搶到了100 顆寶石,每一顆都一樣大小和價值連城。他們決定這么分:
抽簽決定自己的號碼(1、2、3、4、5)
首先,由1 號提出分配方案,然后大家表決,當且僅當超過半數的人同意時,
按照他的方案進行分配,否則將被扔進大海喂鯊魚
如果1 號死后,再由2 號提出分配方案,然后剩下的4 人進行表決,
當且僅當超過半數的人同意時,按照他的方案進行分配,否則將被扔入大海喂鯊魚。
依此類推
條件:每個海盜都是很聰明的人,都能很理智地做出判斷,從而做出選擇。
問題:第一個海盜提出怎樣的分配方案才能使自己的收益最大化?
Answer:
A traditional brain teaser.
Consider #5, whatever #4 proposes, he won’t agree, so #4 must agree whatever #3 proposes. So if there are only #3-5, #3 should propose (100, 0, 0). So the expected income of #3 is 100, and #4 and #5 is 0 for 3 guy problem. So whatever #2 proposes, #3 won’t agree, but if #2 give #4 and #5 $1, they can get more than 3-guy subproblem. So #2 will propose (98, 0, 1, 1). So for #1, if give #2 less than $98, #2 won’t agree. But he can give #3 $1 and #4 or #5 $2, so this is a (97, 0, 1, 2, 0) solution.

2.一道關于飛機加油的問題,已知:
每個飛機只有一個油箱,
飛機之間可以相互加油(注意是相互,沒有加油機)
一箱油可供一架飛機繞地球飛半圈,
問題:
為使至少一架飛機繞地球一圈回到起飛時的飛機場,至少需要出動幾架飛機?
(所有飛機從同一機場起飛,而且必須安全返回機場,不允許中途降落,中間沒有飛機場)

Pass。ok,微軟面試全部100題答案至此完。

-------------------------------------------------------------------------------------------------------------------------------

  • 后記

2010已過,如今個人早已在整理2011最新的面試題,參見如下:

一切的詳情,可看此文: 橫空出世,席卷Csdn--評微軟等數據結構+算法面試100題 (在此文中,你能找到與微軟100題所有一切相關的東西)。資源下載和維護地址分別如下所示:

歡迎,任何人,就以上任何內容,題目與答案思路,或其它任何問題、與我聯系。本人郵箱: zhoulei0907@yahoo.cn

更新:本微軟公司面試 100題的全部答案日前已經上傳 資源,所有讀者可到此處下載: http://download.csdn.net/detail/v_JULY_v/3685306 。2011.10.15。

程序員編程藝術第一~二十七章集錦與總結

作者聲明:本人July 對以上所有任何內容和資料享有版權,轉載請注明作者本人July 及出處。
向你的厚道致敬。謝謝。二零一一年十月十三日、以諸君為傲。

微軟面試100題2010年版全部答案集錦(含下載地址)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产伦精品一区二区三区视频黑人 | 精品人妻伦一二三区久久aaa片 | 人禽无码视频在线观看 | 色呦呦av| 91成人综合 | 精品国产成人国产在线视 | 粗了大了 整进去好爽视频 91香蕉影院 | 欧美日韩色图片 | 男女性潮高清免费网站 | 免费国产在线一区二区 | 成人无码av一区二区 | 亚洲风情av| 裸体精品bbbbbbbbb | 天天摸夜夜摸夜夜狠狠添 | 十八禁午夜私人在线影院 | 男人综合网| 国产精品美女一区 | 天天碰免费上传视频 | 日韩精品成人一区二区三区视频 | 久久欧美与黑人双交男男 | 午夜av一区二区 | 在线播放国产一区二区三区 | 亚洲最大国产成人综合网站 | 无码中文字幕在线播放2 | 狠狠色狠狠色综合日日92 | 美女网色站 | 丰满多毛的陰户视频 | 成人性生交天码免费看 | 欧美大片c片免费看视频 | 一二三四日本高清社区5 | 欧美肥老妇视频九色 | 国产欧美日韩综合精品一 | 被c到高潮疯狂喷水国产 | 日本三级吃奶头添泬 | 国产又粗又黄又爽又硬一区二区 | 亚洲精品av一区午夜福利 | 永久免费看视频 | 国产无遮挡18禁无码免费 | 搞黄网站在线观看 | 国产精品无码av天天爽 | 操操操操操网 | 国产精品女人呻吟在线观看 | 欧美牲交黑粗硬大 | 九色tv| 伊人日韩 | 亚洲精品成 | 久久一日本综合色鬼综合色 | 亚洲成人综合在线 | 在线黄色免费网站 | 无码免费v片在线观看 | 最新国产成人av网站网址 | 亚洲欧美精品一中文字幕 | 一区二区三区视频免费 | 午夜天堂精品久久久久 | 国产日韩精品视频 | 久久99精品久久久秒播 | 午夜影院视频 | 青青操网站 | 亚洲国产一区二区视频 | 99re66久久在热青草 | 国产稚嫩高中生呻吟激情在线视频 | 瑜伽裤国产一区二区三区 | 国产精品亚洲αv天堂 | 欧洲美一区二区三区亚洲 | 免费啪啪小视频 | 亚洲精品一区二区三区影院 | 国产激情视频在线观看的 | 伊人影院在线播放 | 丁香婷婷色综合激情五月 | 成人综合激情 | 亚洲影音| 91亚洲人人在字幕国产 | 国产激情精品视频 | 巴西极品性猛交 | 国产亚洲无日韩乱码 | 久久久亚洲精品一区二区三区浴池 | 91在线免费观看网站 | 欧美在线影院 | 国产性xxxx18免费观看视频 | 在线观看你懂的网址 | 国产成人在线一区二区 | 在线欧美 精品 第1页 | 欧美色一区二区三区在线观看 | 香蕉视频在线精品视频 | 老子影院午夜伦不卡无码 | 日本欧美精91品成人久久久 | 午夜在线小视频 | 国产网站视频 | av短片| 爆乳熟妇一区二区三区霸乳 | www.久久爱白液流出h好爽 | 日本涩涩网 | 国产精品美女久久久久久麻豆 | 午夜三级a三级三点自慰 | 黑人巨大猛烈捣出白浆 | 亚洲国产一区二区在线 | 久久久精品影院 | 警花系列乱肉辣文小说 | 亚洲成人一级 | 亚洲鲁丝片av无码多人 | 成人影院yy111111在线观看 | 欧美日本色 | 四虎2019 | 亚洲日韩av在线观看 | 国产中文字字幕乱码无限 | 色欲网天天无码av | 国产美女性生活视频 | 嫩呦国产一区二区三区av | 亚洲欧美日韩系列 | 欧美裸体xxxx极品少妇 | 国产成人精品久久二区二区91 | 亚洲天堂自拍 | 天堂久久爱资源站www | 日本少妇翘臀啪啪无遮挡软件 | 亚洲日韩欧美一区、二区 | 国产精品丝袜综合区旗袍 | 国产亚洲精品久久综合阿香 | 欧美呻吟 | 天天干网站 | 深夜福利免费在线观看 | 91精品麻豆 | 色婷婷亚洲婷婷7月 | 日韩成人一区 | 91视频www| 九九久久久 | 精品卡1卡2卡三卡免费网站 | 久久久久在线观看 | 亚洲精品久久久久一区二区三区 | 国产福利视频在线 | 日韩一级片网站 | 亚洲一区波多野结衣在线app | 911久久 | 欧美人与禽性性生活 | 欧美xxxxbbb | 亚洲国产成人精品久久久 | 国产精品美女 | 四影虎院永久免 | 日韩精品无码一本二本三本色 | 青青草在久久免费久久免费 | а√天堂8资源最新版 | 亚洲一区无码中文字幕乱码 | 97久久精品无码一区二区天美 | 一本之道乱码区 | 中国黄色一级毛片 | 亚洲综合色88综合天堂 | 伊人99| 免费无遮挡在线观看网站 | 老熟妇乱子交视频一区 | www.久久久久.com | 伊人第一页 | 91社区影院 | 午夜日韩 | 日日夜夜狠 | 婷婷五月综合国产激情 | 色小妹一二三区 | 国产色情又大又粗又黄的电影 | 男女扒开双腿猛进入免费看污 | 奶头好大狂揉60分钟视频 | 日韩在线观看高清 | 韩国精品一区二区三区无码视频 | 手机看片中文字幕 | 久久久一级片 | 亚洲成色999久久网站 | 国产精品成人网 | 久久影视久久午夜 | 国产一级桃视频播放 | 日韩av手机在线观看 | 不卡的av片 | 精品乱码一区二区三四区视频 | aⅴ中文字幕不卡在线无码 亚洲国产天堂一区二区三区 | 亚洲国产成人精品激情姿源 | 白白色毛片 | 97欧美精品系列一区二区 | 99精品视频一区二区三区 | 噜噜噜噜狠狠狠7777视频 | 欧美jizzhd精品欧美丰满 | 国产精品久久久久久久天堂 | 久久精品日产第一区二区 | 风间由美乳巨码无在线 | 黄色一级免费看 | 热久久中文字幕 | 中国白嫩丰满少妇xxxxx明星 | 精品久久久久久中文字幕2017 | 久久www免费人咸_看片 | 亚洲欧美偷拍另类 | 超碰精品在线观看 | 欧美成人第一页 | 天天操天天操天天操天天 | 亚洲精品国产拍在线 | 在线精品一区 | 黄网站色成年片在线观看 | 久久密av| 欧美精品日韩在线 | 成人午夜av | 色综合无码av网站 | 中日韩精品在线 | 亚洲男人第一无码av网站 | 7mav视频| 开心激情站 | 成人精品久久久 | 99热8| 成人高潮片免费视 | 无码福利写真片视频在线播放 | 日日操夜夜操天天操 | 国产成人美女视频 | 欧美日韩在线一 | 国产又色又刺激高潮视频 | 亚洲卡一卡二卡三乱草莓 | 超碰在线资源站 | 97久久久综合亚洲久久88 | 日本内射精品一区二区视频 | 免费一级片网址 | 亚洲伦理在线 | 尤物毛片| 色狗av| 在线免费色视频 | 国产在线视频一区二区三区欧美图片 | 男人扒开女人内裤强吻桶进去 | 天堂中文在线8最新版精品版软件 | 欧美日韩一区二区三区视频免费观看 | 国产欧美中文字幕 | 国产福利观看 | 好爽好舒服要高潮了视频 | 狠狠五月深爱婷婷网 | 97精品国产97久久久久久免费 | 福利片一区| 亚洲精品久久久久国色天香 | 欧美一级免费片 | 婷婷深爱五月 | 国产成人片一区在线观看 | 欧美大胆作爱视频欣赏人体 | 4hu四虎最新地址 | 狠狠操91| 亚洲人成网站18禁止大app | 国产精品久人妻精品老妇 | 亚洲 欧美 偷拍 卡通 变态 | 性欧美18一19性猛交 | 99久热re在线精品99 6热视频 | 亚洲一区二区三区无码国产 | 女人被躁到高潮嗷嗷叫免费 | 久久熟妇人妻午夜寂寞影院 | 中文字幕a片视频一区二区 成年无码av片在线 丝袜国产一区av在线观看 | 少妇爆乳无码专区av无码 | 中文字幕一区在线 | 中文字幕不卡乱偷在线观看 | 另类小说激情 | 精品少妇无码av无码专区 | 久久综合九色综合欧美就去吻 | 国产成人精品一区二区仙踪林 | 国产极品久久久久极品 | 92午夜少妇极品福利无码电影 | 法国白嫩大屁股xxxx | 91伊人久久大香线蕉蜜芽人口 | 五月婷婷开心网 | 国产 日韩 欧美 自拍 | 国产亚洲精品a在线 | 久久99国产精品久久 | 国内精品久久久久影院亚瑟 | 蕾丝av无码专区在线观看 | 国产福利三区 | 亚洲精品中文字幕 | 日日夜夜干| 亚洲三级视频网站 | 做爰xxxⅹ性生交 | 国产∨亚洲v天堂无码久久久 | 伊人天堂av | 91中文字幕在线视频 | 天天爽天天干 | 国产亚洲综合视频在线 | 国产精品久久久久久亚洲影视 | 久久国产人妻一区二区 | 五月天丁香综合久久国产 | 麻豆黄色影院 | 日本啪啪网站永久免费 | 亚洲乱妇老熟女爽到高潮的片 | 纯爱无遮挡h肉动漫在线播放 | 国产色a∨在线看免费 | 毛片视 | 免费看黄av| 99成人国产综合久久精品 | av网站在线免费观看 | 国产精品欧美一区二区 | 一级免费看 | 深夜福利av | 国产91丝袜在线播放九色 | 国产精品户外野外 | 可以在线观看的av网站 | 99久久精品6在线播放 | 日韩手机在线观看 | 精品一卡二卡三卡四卡兔 | 国内精品少妇 | 国产偷窥熟妇高潮呻吟 | 女人张开腿让男桶喷水高潮 | 欧美激情久久久久 | 久久午夜福利无码1000合集 | 久久国产视频网站 | 人人妻人人澡人人爽秒播 | 四虎av在线播放 | 亚洲欧美日韩综合在线丁香 | 亚洲午夜精品久久久久久 | 久久成人一区二区三区 | 精品国产乱码久久久久久蜜柚 | 在线观看片a免费不卡观看 日韩性猛交ⅹxxx乱大交 | 国产乱子伦无码精品小说 | 嫩草影院片 | 丁香五月激情综合亚洲 | 国产偷国产偷亚洲高清app | 国产毛片欧美毛片久久久 | 狠狠色狠狠色综合久久蜜芽 | 日本狂喷奶水在线播放212 | 国产精选在线观看 | 国产真实乱对白精彩久久老熟妇女 | 天天干天天添 | 啪啪五月天 | 婷婷开心中文字幕 | 99久久婷婷国产综合精品 | 亚洲自偷自拍另类12p | 亚洲国产成人精品无码区在线秒播 | 1024香蕉视频 | 日本高清二区 | 国产一区二区三区怡红院 | 色九区| 日韩精品毛片 | 2022一本久道久久综合狂躁 | wwwxxx.日本 | 日韩理论影院 | 天堂网2018 | 精品成人免费自拍视频 | 亚洲色图15p | 国产一卡2卡3卡四卡精品app | 和黑人邻居中文字幕在线 | 久久久国产精品免费 | 天天热天天干 | 人人模人人爽人人喊久久 | 高h公妇烈火 | 欧美国产乱视频 | 欧美日韩123区 | 91久久夜色精品国产网站 | 一本色道久久东京热 | 色婷婷综合五月 | 久久免费精彩视频 | 免费福利视频导航 | 亚洲精品久久久久久中文字幕 | 丰满岳乱妇一区二区 | 新sss欧美整片在线播放 | 国产精品久久99综合免费观看尤物 | 中文字幕一区二区不卡 | v11av在线播放 | 五月情网 | 性囗交免费视频观看 | 精品日本一区二区三区在线观看 | 久久福利影视 | 超碰人人擦 | 尤物网站在线播放 | 久久国产亚洲欧美久久 | 西西人体大胆无码视频 | 久久综合色老色 | 人人爽人人射 | 久久婷婷五月综合色和啪 | 91秒拍国产福利一区 | 国产极品久久久久极品 | 特级做a爰片毛片免费看108 | 高潮又爽又无遮挡又免费 | 中国浓毛少妇毛茸茸 | 爱情岛aqdlt国产论坛 | 国产在线a视频 | 四虎首页 | 亚洲日韩一中文字暮av | 日韩在线精品成人av | 亚洲乱码精品久久久久.. | 在线精品91| av高清无码 在线播放 | 欧美精品久久一区 | 欧美群妇大交乱淫xx | 美日韩一级大片 | 日韩av片网站 | 欧美人喂奶吃大乳哺乳 | 亚洲精品久久av无码麻 | 国产小受呻吟gv视频在线观看 | 久久精品国自产拍天天拍最新章节 | 亚洲欧洲自拍 | 色吊丝永久性观看网站 | 性猛交xxxx乱大交3 | 亚洲国产日韩精品二三四区竹菊 | 久久中文字幕高清 | 99一区二区 | 国产一区黄色 | 狠狠色噜噜狠狠狠狠7777米奇 | av色蜜桃一区二区三区 | 婷婷狠狠久久久一本精品 | 亚洲av片毛片成人观看兔费 | 一本色道久久加勒比88综合 | 无人区乱码一区二区三区 | 日本啪啪网站永久免费 | 青草福利 | 大香伊蕉在人线国产最新75 | 亚洲国产成人综合一区二区三区 | 国产成人免费无码视频在线观看 | 日韩网红少妇无码视频香港 | 日韩精品国产一区二区三区久久 | 亚洲伊人久久大香线蕉综合图片 | 成人爽a毛片在线视频 | 97国产精品人妻无码久久久 | 日韩精品亚洲一区在线综合 | 丰满的少妇邻居中文bd | 九九99re热线精品视频 | 久久精品国产第一区二区三区 | 成年人黄色在线观看 | 精品九九久久 | www.日日日.com | 98色精品视频在线 | 青青草99久久精品国产综合 | 国产精品白浆在线观看免费 | 亚洲妇女水蜜桃av网网站 | 日本va在线| 在线观看黄色小视频 | 毛片的网址| 熟女俱乐部五十路二区av | 蜜芽tv国产在线精品三区 | 宅男噜噜99国产精品麻豆精品 | 首页 国产 欧美 日韩 丝袜 | 日韩不卡在线视频 | 国精产品一区一区三区免费视频 | 在线中文字幕av | 精品蜜桃av | 狠狠色噜噜狠狠狠狠999米奇 | 丰满尤物白嫩啪啪少妇 | 久久久麻豆精品一区二区 | 欧美不卡在线视频 | 消息称老熟妇乱视频一区二区 | 国产亚洲无线码一区二区 | 国产欧美一区二区三区不卡视频 | 亚洲日本中文字幕在线四区 | 91网址在线观看 | 欧美成人一区免费视频 | 亚洲午夜一区二区 | 欧美在线观看视频 | 牛牛免费在线视频 | 日韩av在线播放观看 | 日韩欧美a级片 | 国产精品无遮挡 | 国模小黎自慰gogo人体 | 最近日韩中文字幕中文 | av一二区| 国产乱国产乱300精品 | 可以免费观看av毛片 | 狠狠色狠狠色狠狠五月 | 亚洲综合色婷婷六月丁香宅男大增 | 国产精品xxxxxx | 精品国产自在现线看久久 | 一区二区三区日韩在线观看 | 久久国产热精品波多野结衣av | 国产精品美女久久久久久久久 | 四虎国产精品亚洲一区久久特色 | 国产精品久久久区三区天天噜 | 黄色毛片视频在线观看 | 99噜噜噜在线播放 | 欧美无乱码久久久免费午夜一区 | 精品久久伊人 | 向日葵视频在线播放 | 情趣蕾丝内衣少妇啪啪av | 文中字幕一区二区三区视频播放 | 国产伦子系列沙发午睡 | 夜夜橹 | 国产婷婷一区二区三区久久 | 综合国产一区 | 无码超乳爆乳中文字幕 | 天天爽天天干 | 又长又硬又粗一区二区三区 | 亚洲成人免费在线播放 | 超碰牛牛 | 真人祼交二十三式视频 | 色人阁婷婷 | 秋霞二区| 国产乱码一卡二卡三卡免费 | 亚洲精品日本无v一区 | 天天色综合2 | 久99视频精品免费观看福利 | 免费午夜无码片在线观看影院 | 日韩精品免费视频 | 国产成人一区二区三区 | 天天狠天天操 | 日本大尺度吃奶做爰久久久绯色 | 中本亚洲欧美国产日韩 | 欧美日韩综合一区二区 | 日本精品人妻无码77777 | 午夜妇女aaaa区片 | av免费无码天堂在线 | 国产人免费人成免费视频 | 醉酒后少妇被疯狂内射视频 | 久视频在线| 国产永久免费高清在线观看 | 亚洲熟妇丰满大屁股熟妇 | 亚洲色综合 | 精品久久久久久无码中文字幕漫画 | 色多多福利网站免费破解 | 国产真实乱对白精彩 | 成人国内精品久久久久一区 | 国产精品扒开腿做爽爽爽视频 | 成人性生交免费大片2 | 亚洲图片日本视频免费 | 国产成人青青久久大片 | 中国少妇初尝黑人巨大 | 午夜福利av无码一区二区 | 成人综合婷婷国产精品久久蜜臀 | 在线一区观看 | 亚洲国产成人精品无码区99 | 中文字幕你懂的 | 99在线热播| 国产亚洲3p无码一区二区 | 国产成人亚洲综合青青 | 久久久99精品免费观看 | 日韩成人专区 | 91porny丨首页入口在线 | 色婷婷色综合激情国产日韩 | 天堂网在线视频 | 国产成人三级在线视频 | 成人亚洲a片v一区二区三区日本 | 少妇高潮不断出白浆av | 久久无码中文字幕东京热 | 天天躁日日摸久久久精品 | 久草中文在线观看 | 青青青国产精品国产精品美女 | 欧美日韩一区二区三区视频免费观看 | 伊人色爱| 黄网站在线免费看 | 日本不卡免费在线 | 少妇高潮大片免费观看 | 999一区二区三区 | onlytease欧美丝袜福利 | 欧美日韩成人在线播放 | 日韩精品无码免费一区二区三区 | 久久久久五月 | 国产日韩综合av在线观看一区 | 成人在线免费视频 | 久久伊人网视频 | 乱子真实露脸刺激对白 | 热热99| 国产一区二区三区四区 | 2020国产成人精品视频 | 中文字幕一区二区精品区 | 视频在线观看91 | 婷婷成人在线 | 久久综合久色欧美综合狠狠 | 日产久久久久久 | а√天堂资源地址在线8观看 | 91桃色成人wangxhab | 狠狠色色综合网站 | 亚洲精品乱码久久久久久黑人 | 国内精品美女视频免费直播 | 欧洲精品视频在线 | 青草一区二区 | 欧美在线观看不卡 | 午夜成人理论福利片 | 熟妇人妻中文字幕无码老熟妇 | 国产一级手机毛片 | 亚洲色欲久久久综合网东京热 | 13女裸体慰在线观看 | 学生妹无套内射正在播放 | 少妇交换做爰中文字幕 | 亚洲精品第一国产综合野 | 欧美 日韩 视频 | 欧美最爽乱婬视频免费看 | 91免费看大片 | 99视频网 | 欧美激情1区2区3区 亚洲一区二区色图 | 在线观看日韩欧美 | 成人依人| 亚洲精品无码伊人久久 | 亚洲国产精品人人爽夜夜爽 | 亚洲综合无码精品一区二区 | 西西人体44www大胆无码 | 午夜激情成人 | 国产乡下妇女做爰视频 | 亚洲成vr人片在线观看天堂无码 | 国产成人午夜在线视频a站 尤物毛片 | 99国产精品久久99久久久 | 成人男男视频拍拍拍在线观看 | 欧美日韩免费一区 | 在线观看视频www | 自拍色图 | 日韩中文字幕免费在线观看 | 亚洲午夜无码久久久久软件 | 国产亚洲精品无码专区 | 国产一区二区三四区 | 国产不卡视频在线播放 | а√中文在线8 | 18禁女裸乳扒开免费视频 | 国产10000部拍拍拍免费视频 | 久久久久久久久久久久网站 | 国产丰满老熟妇乱xxx1区 | 成人午夜亚洲精品无码网站 | 男女性爽大片视频免费看 | 亚洲无遮挡 | 怡红院免费的全部视频 | 亚洲影视在线 | 欧美色图888| 视频在线观看91 | 国产又黄又粗又爽 | 精品无码日韩一区二区三区不卡 | 性欧美video高清丰满 | 在线高清亚洲精品二区 | 免费视频爱爱太爽了网站 | 中文字幕一区二区人妻 | 亚洲伊人色综合www962 | 久久精品aⅴ无码中文字字幕不卡 | 少妇被粗大的猛烈进出动视频 | 乌克兰aaaaa裸体 | 任你干在线精品视频网2 | 伊人久久成综合久久影院 | 国产麻豆亚洲精品一区二区 | 国精品无码一区二区三区在线蜜臀 | 久久久久久久久久久久久女国产乱 | 色婷婷综合五月天 | 99久热在线精品996热是什么 | 亚洲一卡2卡3卡4卡精品 | 中国国产免费毛卡片 | 综合色在线观看 | 亚洲成a人v | 人妻夜夜爽天天爽欧美色院 | 精品无码国产不卡在线观看 | 精品日产1区2卡三卡麻豆 | 色综合天天综合网天天看片 | 国内精品久久久久影院中文字幕 | 日本被黑人强伦姧人妻完整版 | 国产午夜福利在线机视频 | 欧美另类一区二区三区 | 精品无码一区二区三区爱欲 | 亚洲片在线观看 | 欧美精品乱码视频一二专区 | 国产小视频在线看 | 久99久在线 | 波多野结衣视频网址 | 开心激情站 | 日韩无 | 成年人免费小视频 | www.99cao| 深爱激情五月婷婷 | 99精品久久久久久久久久综合 | 欧美日在线观看 | 亚洲中文字幕日本在线观看 | 91草视频 | 精品人妻一区二区三区四区 | 欧美混交群体交 | 久久视频在线播放 | 中文字幕久久精品波多野结百度 | 国产色欲av一区二区三区 | 国产综合久久久久久鬼色 | 丰满熟女人妻中文字幕免费 | 狠狠色婷婷丁香综合久久 | 国产不卡视频一区二区三区 | 日本一级大片 | 中文av无码人妻一区二区三区 | 丰满少妇乱子伦精品看片 | 色欲av无码一区二区人妻 | 国产v在线播放 | 99这里| 中文字幕一区二区三区四区五区 | 亚洲精品专区成人网站 | 天天插天天色 | 亚洲日韩av无码中文字幕美国 | 四虎影视永久在线精品 | 亚洲综合色视频 | 牛av在线 | 337p粉嫩日本欧洲噜噜 | 激情av无码后入 | 国产精品videosex性欧美 | 日韩xxxx视频 | 国产乱色国产精品播放视频 | 手机在线日韩av | 日韩精品二区在线观看 | 亚洲第五页| 色欲天天天无码视频 | 久久无码高潮喷水抽搐 | 亚洲国产视频一区 | 久久综合亚洲鲁鲁九月天 | 中文字幕免费高清在线观看 | 猫咪av.com | 一区二区三区av波多野结衣 | av成人在线看 | av天堂亚洲狼人在线 | 99久久人妻无码精品系列 | 国产一级一级国产 | 亚洲色偷偷偷网站色偷一区 | 黄页网站在线观看免费视频 | 偷拍25位美女撒尿视频在线观看 | 日本va欧美va | 日本爽爽爽 | 国产精品入口香蕉 | 国产精品爽爽久久久久久竹菊 | 精品成人在线视频 | 成人男男视频拍拍拍在线观看 | www.亚洲 | 国产成人综合美国十次 | 成·人免费午夜无码视频 | 蜜臀av 国内精品久久久 | 国产成人三级在线视频网站观看 | 狠狠精品久久久无码中文字幕 | av中文无码乱人伦在线观看 | 永久免费精品影视网站 | 精品国产一区二区三区在线 | 无码人妻丰满熟妇区免费 | 亚洲真人无码永久在线观看 | 亚洲日韩中文字幕在线不卡最新 | 亚洲精品六区 | 日韩午夜小视频 | 波多野结衣先锋影音 | 精品伊人久久久大香线蕉天堂 | 性欧美精品 | 一区高清 | 国产性色av | 少妇日韩 | 无码专区一va亚洲v专区在线 | 欧美福利网址 | 日本特黄aaaaaa片在线观看 | 亚洲国产精品久久久久秋霞影院 | 99re热精品视频| 欧美一区二区三区性视频 | 8x8ⅹ在线永久免费入口 | 六月成人网| 久久久久国产精品无码免费看 | 黑人粗长大战亚洲女 | 中文成人精品久久一区 | 国产成人丝袜视频在线观看 | 天天干干干干 | 国产精品亚洲αv天堂无码 成人免费av片 | 伊人久久大香线焦av综合影院 | 亚洲91影院 | 激情亚洲天堂 | 日本少妇高潮xxxxⅹ | 欧美亚洲精品天堂 | 欧美日韩午夜精品 | ww欧日韩视频高清在线 | 免费在线视频一区 | 在阳台上玩弄人妻的乳球 | 日日天干夜夜人人添 | 猫咪www免费人成人入口 | 激情内射人妻1区2区3区 | 亚洲s色大片 | 亚洲国产v高清在线观看 | 国产精成人 | 日本精品一区二区三区无码 | 亚洲另类一二三区 | 国产精品无码无卡在线观看久 | 激情播播网 | 国产成人无码综合亚洲日韩 | 日本欧美色十大禁片毛片 | 性生交生活大片免费看 | 亚洲精品无码久久一线 | 992tv成人免费视频 | 黑人操白妞 | 天天看片天天干 | 波多野结av在线无码中文 | 蜜臀av网站在线 | 99干99| 欧美三区在线 | 中文字幕乱码一区二区免费 | 久久成人麻豆午夜电影 | 樱花草在线社区www日本影院 | 亚洲国产成人久久久网站 | 五月婷网| 中文字幕乱码免费专区 | 欧美一区1区三区3区公司 | 国产女人高潮叫床视频 | av无码天堂一区二区三区 | 成年人国产精品 | 国产伦理五月av一区二区 | 青青青国产精品国产精品美女 | 亚洲精品一区二区中文字幕 | av无码免费无禁网站 | 殴美一区二区 | 欧美日韩精品免费观看 | 久久婷婷一区二区三区 | 青草精品国产福利在线视频 | 久久资源av | 中文字幕第10页码 | 日韩短视频| 毛片视频观看 | 日本一本二本三区免费 | 国产素人在线观看人成视频 | 欧美日韩高清不卡 | 亚洲 中文 欧美 日韩 在线 | 天堂√在线中文资源网 | 国内揄拍国内精品少妇国语 | 蜜臀久久精品 | av第一福利大全导航 | 亚洲va久久久噜噜噜久久狠狠 | 国产美女自慰在线观看 | 久久成人国产精品免费软件 | 欧美一区二区国产 | 老司机午夜精品视频资源 | 人妻老妇乱子伦精品无码专区 | 国产在线观看码高清视频 | 亚洲成人一 | 高清性欧美暴力猛交 | 91黄色在线视频 | 青青草av一区二区三区 | 韩国一级一片高清免费观看 | 亚洲伊人久久大香线蕉 | 尹人香蕉网 | 亚洲无吗一区二区三区 | 婷婷丁香五月缴情视频 | 天天玩天天干天天操 | 色激情综合网 | 国产精品一区亚洲二区日本三区 | 无遮挡的又色又污又黄的网站 | 日本大片黄| 国产高清吹潮免费视频 | 亚洲v欧美v日韩v国产v | 激情伊人五月天久久综合 | 国产又色 | 亚洲人成无码网站在线观看野花 | 欧美区一区二区 | 无套在线观看 | 福利视频导航大全 | a欧美亚洲日韩在线观看 | 国产精品国一国二在线 | 综合色吧 | av色欲无码人妻中文字幕 | 蜜桃一区二区三区 | 亚洲一卡二卡三卡四卡在线看 | 欧美乱码精品一区二区三区 | 日本中文字幕不卡 | 在线观看日韩av | 久久久久蜜桃精品成人片 | 国产精品特级露脸av毛片 | 日韩国产精品一区二区三区 | 亚洲αⅴ无码乱码在线观看性色 | 色哟哟在线视频精品一区 | 一个人免费观看的www视频 | 四川少妇xxxx内谢欧美 | 不卡视频在线观看免费 | 91久久精品一二三区 | 人妻在厨房被色诱 中文字幕 | 四川50岁熟妇大白屁股真爽 | 精品在线观看一区 | 亚洲日韩精品无码专区网址 | 2019年国产精品看视频 | 亚洲精品久久久久久一区 | 国产成人亚洲综合色婷婷 | 亚洲愉拍自拍欧美精品app | 中文乱码字幕 | 一区二区在线观看免费视频 | 久久久久久久久久久免费 | 欧美性xxxx极品hd欧美风情 | 日本在线免费观看视频 | 国产明星裸体xxxx视频 | 超碰在线观看91 | 色天堂影院 | 久热这里只有精品6 | 国产精品三级国产电影 | 亚洲免费播放 | 三级网站av | 国产成人久久精品 | 久久9视频| 国产在线拍揄自揄视频菠萝 | 思思久久99热久久精品66 | 少妇大战二十8厘米黑人 | 免费女同毛片在线观看 | 男女做爰猛烈啪啪吃奶动 | 国产精品毛片久久久久久久 | 亚洲精品国精品久久99热 | 天天爱天天做天天爽夜夜揉 | 91一区二区 | 四虎影院免费在线 | 久久精品99国产精品日本 | av影片在线 | 亚洲偷偷 | 国产精品第5页 | 给我免费播放毛片 | 97免费公开在线视频 | 亚洲无打码 | 夜鲁夜鲁夜鲁视频在线观看 | 国产破处在线视频 | 亚洲午夜精品久久久久久浪潮 | 日韩av片无码一区二区三区不卡 | 国产丝袜美女一区二区三区 | 中文字幕第一页亚洲 | 中出内射颜射骚妇 | 日韩.com| 青青国产在线视频 | 国产97人人超碰caoprom | 亚洲日韩看片成人无码 | 全黄久久久久a级全毛片 | 在线欧美亚洲 | 丁香一区二区三区 | 日韩免费看片 | 国产麻豆精品传媒av国产 | 亚洲人女同志footjob | 在线观看二区 | 午夜一区二区三区 | 国产精品尤物yw在线观看 | 欧美熟妇性xxxx交潮喷 | 亚洲精品国产成人99久久6 | 天天干天天谢 | 少妇无码av无码专线区大牛影院 | 丁香综合网 | 91国内产香蕉 | 欧美特级特黄aaaaaa在线看 | 国产亚洲精品a在线 | 中文字字幕在线乱码视频 | 国产精品久久99 | 男人天堂综合 | av2014天堂| 日韩精品久久无码中文字幕 | 美女视频黄8视频大全 | 亚洲天堂色| 网友自拍露脸国语对白 | 欧美色图888 | 亚洲三级影院 | 欧洲色影院 | 久草在线观看福利视频 | 亚洲天天做日日做天天欢毛片 | 欧美大杂乱xxxxxx | 性生交大片免费看女人按摩摩 | 韩国所有三级艳星列表 | 国产精品第四页 | 婷婷五月俺也去人妻 | 7777色鬼xxxx欧美色妇 | 国产精品久久久久7777按摩 | 亚洲欧美色综合区11p | 国产十八禁真成了 | 日韩欧美一区二区三区永久免费 | 亚洲精品久久区二区三区蜜桃臀 | 无码人妻出轨黑人中文字幕 | 多人伦交性欧美 | 日韩av手机在线观看 | 高清欧美精品xxxxx在线看 | 亚洲精品国产一区二区 | 久久婷婷五月综合成人d啪 日日干日日射 | 亚洲黄色毛片视频 | 国产成人无码一区二区在线播放 | 国产成人三级视频在线播放 | 中文无码成人免费视频在线观看 | 欧美熟妇另类久久久久久多毛 | 中文字幕资源在线观看 | 丰满少妇高潮惨叫正在播放 | 国产精品黑色丝袜高跟鞋 | 久久久综合精品 | 456亚洲影视 | 中国美女囗交视频免费看 | 欧美一级爱爱 | 日本在线观看免费 | 亚洲欧美日韩国产精品一区 | 亚洲精品视频播放 | 久在线观看福利视频 | 免费人成视频在线观看播放网站 | 久艾草在线精品视频在线观看 | 日韩高清在线免费观看 | av一本久道久久波多野结衣 | 久久久精品免费 | 81精品国产乱码久久久久久 | 丰满少妇毛片97级无遮挡 | 国产 日韩 欧美 一区 | 日本亚洲国产 | 亚洲美女综合网 | 国产精品女人高潮毛片圣水 | 精品无码老熟妇magnet | 欧洲日韩在线 | 日韩美女亚洲99久久二区 | 欧美激情日韩精品久久久 | 国产无限次数成版人视频在线 | 国产理伦天狼影院 | 美女爽到呻吟久久久久 | 日本高清www无色夜在线视频 | 国产高清乱码爆乳女大生av | 日韩va亚洲va欧美va久久 | 蜜桃av成人永久免费 | 久久久久久久黄色 | 久久澡 | 亚洲日韩第一页 | 性生活一区 | 91精品久久久久久粉嫩 | 日本一区二区在线高清观看 | 激情的网站 | 国内av在线播放 | 菠萝菠萝蜜午夜视频在线播放观看 | 激情视频网址 | 玖玖视频在线 | 黄色小视频网 | 无码专区6080yy国产电影 | 久久精品黄aa片一区二区三区 | 国产一区二区色 | 欧美激情精品成人一区 | 成人黄色性视频 | 青草av在线 | 日本韩国野花视频爽3 | 东北女人啪啪对白 | 邻居少妇张开腿让我爽了一夜 | 97久久久久久 | 欧美人与动性xxxxx交性 | 亚洲男人天堂网站 | 在线观看黄色小视频 | 国产精品丝袜美腿一区二区三区 | 久久9999久久免费精品国产 | 天天影视网天天综合色 | 久久香蕉国产线看观看手机 | 日韩 亚洲 中文 图片 小说 | 337p日本大胆噜噜噜噜 | 天天操天天碰 | 激情综合影院 | 亚洲成熟少妇视频在线观看 | 亚州久久久久区1区2少妇 | 黄色一级大片网站 | 日韩精品一区二区三区中文在线 | 曰本无码不卡高清av一二 | 国产午夜精品理论片久久影院 | 国产aaaaa免费大片 | 欧美黑人粗暴多交高潮水最多 | 国产香蕉尹人在线视频你懂的 | 亚洲国产成人欧美在线观看 | 国产精品免费一区二区 | 好爽好紧清纯在线观看 | 亚洲国产精品无码中文lv | 中文字幕高清在线观看 | 亚洲精品福利一区二区三区蜜桃 | 亚洲精品一区二区三区蜜桃久 | 色综合天天无码网站 | 亚洲成a人片在线观看日本 国产成人免费无码视频在线观看 | 欧美日韩午夜激情 | 99精品热视频 | 国产亚洲国际精品福利 | 精品亚洲aⅴ无码一区二区三区 | 暖暖视频在线观看免费观看高清中文 | 国产精品乱码一区二区三区四川人 | 国产精品无码2021在线观看 | 无码av一区二区三区不卡 | 7777欧美大白屁股ass | 亚洲一区二区三区小说 | 丁香花在线观看免费观看图片 | 亚洲欧美日韩专区 | 久草在线新视觉 | 成人啪啪免费网站 | 亚洲乱码无人区卡1卡2卡3 | 国产免费mv大片人人电影播放器 | 国产精品久久福利新婚之夜 | 国产精品熟女人妻 | 西西人体444www高清大胆 | 免费大黄网站 | 国产麻豆精品一区 | 久久精品一品道久久精品 | av中文天堂 | 国产婷婷色一区二区三区四区 | 亚洲精品自在在线观看 | a√天堂网 | 国产a在亚洲线播放 | 久久se精品一区精品二区 | 欧美国产免费 | 日韩在线操 | 亚洲欧美专区 | 伊人天天久大香线蕉av色 | 男人的天堂国产在线视频 | 日本精品αv中文字幕 | 日韩中文字幕不卡 | 一本一道波多野结衣av中文 | 精品一区二区三区无码av久久 | 色偷偷88888欧美精品久久久 | 日韩精品高清视频 | 亚洲国产午夜精品理论片妓女 | 成人午夜福利免费专区无码 | 97午夜理论片影院在线播放 | 特黄特级毛片免费视频 | 成人在线激情网 | 少妇的丰满3中文字幕 | 久久婷婷五月综合97色一本一本 | 亚洲精品理论电影在线观看 | 青青草国产精品亚洲专区无码 | 最新中文字幕在线视频 | 日韩在线视 | 天天干欧美 | 欧美精品第二页 | 亚洲不卡高清 | 久9色| 人人莫人人擦人人看 | 亚洲超清无码制服丝袜无广告 | 亚洲欧美视频网站 | 色与欲影视天天看综合网 | 国产极品久久久久极品 | 粉嫩av久久一区二区三区小说 | 亚洲精品二区国产综合野狼 | 在线播放日韩 | 波多野结衣久久精品 | 国产亚洲香蕉线播放αv38 | 中文字幕无码精品亚洲资源网 | 国产精品日韩高清伦字幕搜索 | 欧美粗大猛烈老熟妇 | 男女做爰猛烈叫床视频动态图 | 欧美亚洲日韩国产综合电影 | 无码福利一区二区三区 | 无码热综合无码色综合 | 成人在线视频免费 | 国产精品一区久久久久 | 欧美黄色成人 | 九九五月天 | 欧美一级淫片免费视频魅影视频 | 99精品视频免费观看 | 欧美激情在线观看 | 自拍偷拍第二页 | 亚洲综合色区另类小说 | 成人精品一区二区三区电影免费 | 国产av无毛| 久国久产久精永久网页 | 色情无码www视频无码区小黄鸭 | 国产aⅴ无码久久丝袜美腿 上司人妻互换hd无码中文 | 在线天堂资源 | 男女无遮挡猛进猛出免费视频国产 | 呻吟揉丰满对白91乃欧美区 | 成人亚洲a片v一区二区三区麻豆 | 最新2020无码中文字幕在线视频 | 夜色资源站www国产在线视频 | 成年人免费av | 中文字幕日韩一区 | 亚洲一区二区三区写真 | 日韩精品一区二区三区在线观看l | 粗了大了 整进去好爽视频 91香蕉影院 | 全部免费a级毛片 | 在线日韩欧美 | 国产综合区 | 女人被男人躁得好爽免费视频 | 亚洲精品高清国产一久久 | 久久久www. | 国产探花系列 | 免费放黄网站在线播放 | 八个少妇沟厕小便漂亮各种大屁股 | 国产美女被遭强高潮网站下载 | 99久久久国产精品免费蜜臀 | 在线观看片免费人成视频无码 | 亚洲成人久久久久 | 免费观看萌白酱一区二区三区 | 精品国产乱码久久久久久闺蜜 | 成人免费视频大全 | 国产无遮挡裸露视频免费 | 亚洲永久精品ww47永久入口 | 久久只有精品 | 欧美黄色www| 免费va国产高清大片在线 | 精品国产福利拍拍拍 | 日本aⅴ网站 | 国产成人精品a视频 | 极品av麻豆国产在线观看 | 性妲己一级淫片免费放 | 少妇嘿咻做爰吃奶摸视频网站 | 男女涩涩视频 | 小说区 亚洲 自拍 另类 | 午夜精品久久久久久久99热额 | 亚洲女同成av人片在线观看 | 6699嫩草久久久精品影院 | 亚洲综合色av | 日本中文视频 | 尤物毛片| 夜夜澡人摸人人添人人看 | 国产成人自拍网 | 国产精品456在线播放 | 天天射日日干 | 性生交大片免费看网站 | 精品人无码一区二区三区 | 天堂v在线视频 | 中文有码第一页 | 免费精品一区二区 | 精品无码av一区二区三区 | 伊人第一页 | 国产免费拔擦拔擦8x在线牛 | 一区二区三区高清av专区 | 久久精品国产精品国产一区 | 越猛烈欧美xx00动态图 | 四虎亚洲精品成人a在线观看 | 久久久久国产一区二区 | 乌克兰xxxxx少妇精品二区 | 乱肉放荡艳妇视频6399 | 国产精品久久久久久久泡妞 | 中文无码乱人伦中文视频在线v | 国产中文字幕视频 | 粉嫩av一区二区三区四区在线观看 | 一本一道波多野结衣一区二区 | 国产一区色 | 欧美在线色图 | 乱人伦中文无码视频 | 国产精品一区二区免费视频 | 无码网站天天爽免费看视频 | 亚洲欧美日韩三级 | 制服肉丝袜亚洲中文字幕 | 精品免费二区三区三区高中清不卡 | 亚洲爆乳无码精品aaa片蜜桃 | 欧美黑人大战白嫩在线 | 天天爱天天做天天做天天吃中文 | 亚洲一卡2卡3卡四卡新区 | 91porny真实丨国产jk | av网站的免费观看 | 日本老太做爰xxxx | 亚洲精品成人a在线观看 | 香蕉av久久一区二区三区 | 黑人巨大精品欧美一区二区小视频 | 美女网站免费福利视频 | 久久精品国产99久久无毒不卡 | 在线天堂新版资源www在线 | 国产精品高清一区二区三区 | 国产做爰xxxⅹ高潮视频12p | 在线一级片| av免费在线观看网址 | 欧美在线观看19 | 粉红女士1979大米 | 亚洲精品国产精品自产a区红杏吧 | 国产成人无码精品久久久免费 | 欧美大尺度裸体床戏 | 挺进邻居丰满少妇的身体 | 日日橹狠狠爱欧美二区免费 | 伊人爱爱网 | 香蕉网站在线观看 | 亚洲欧美成人片在线观看 | 久久撸视频 | 在线天堂www在线 | 免费看男女做好爽好硬视频 | 狠狠做深爱婷婷久久综合一区 | 久久免费看a级毛毛片 | 欧美成人专区 | 亚洲成在人线av中文字幕喷水 | 免播放器在线 | 欧美高清国产 | 成年性午夜无码免费视频 | 久久久久三级 | 久久精品国产精品亚洲38 | av在线免费播放 | 日本中文字幕久久 | 一区二区三区精品视频 | 国产精品久久久久久人妻无 | 天天躁日日躁狠狠很躁2023 | 欧美日韩一区二区综合 | 欧美亚洲第一区 | 99久久久成人国产精品免费 | wwwwww国产 | 午夜福利92国语 | 又大又硬又爽18禁免费看 | 大狠狠大臿蕉香蕉大视频 | 婷婷伊人综合中文字幕 | 九九自拍 | 精品国产品香蕉在线 | 日日噜噜夜夜爽爽 | 777奇米成人狠狠成人影视 | 精品国产成人国产在线观看 | 久久国产色av | 国产精品自在欧美一区 | 色综合天天无码网站 | 亚洲另类激情综合偷自拍图 | 观看在线人视频 | 超碰在线伊人 | 毛片一区二区三区无码蜜臀 | vagaa欧洲色爽免影院 | 影音先锋男人av鲁色资源网 | 伊人久久大香线蕉综合av | 日本猛少妇色xxxxx | 九九热视频免费在线观看 | 成人免费无码精品国产电影 | 人人澡人人澡人人澡 | 最新高清无码专区 | 人与性动交aaaabbbb | 色综合久久蜜芽国产精品 | 欧美另类在线制服丝袜国产 | 亚洲手机在线观看 | 农村少妇无套内谢免费 | 亚洲国产精品va在线看黑人动漫 | 羞羞麻豆国产精品1区2区3区 | 国产乱子乱人伦电影在线观看 | 国产一二 | 伊人久在线观看视频 | 色妹子久久 | 亚洲精品无码av人在线播放 | 国产看黄网站又黄又爽又色 | 精品久久久久久久久久软件 | 一本久久伊人热热精品中文字幕 | 卡一卡2卡3卡精品网站 | 一区二区三区日韩在线 | 老司机在线观看视频 | 激情图片区 | 久久婷婷综合99啪69影院 | 色屁屁www影院免费观看入口 | 成人片黄网站色大片免费观看cn | 小视频在线观看免费 | 国产日韩欧美亚洲精品中字 | 欧美在线二区 | 波多野结衣高清一区二区三区 | 最新日韩视频 | 久久社区 | 久久成人国产精品 | 女人扒开屁股爽桶30分钟 | 中文字幕在线2021 | 99年国精产品一二二区传媒 | 清清草视频 | 精品久久久无码中文字幕 | 怡红院成永久免费人视频新的 | 亚洲成av人无码综合在线 | 伊人久久大香线蕉av不卡 | 超碰碰97 | jizz国产免费 | 裸体美女免费视频网站 | 能看av的网址 | 日本人与黑人做爰的视频 | 国产又色又爽无遮挡免费软件 | 亚洲啪啪网址 | 精品一区二区三区欧美 | 天天拍夜夜爽 | 天天综合网在线观看 | 国产三级一区 | 白峰美羽一区二区三区 | 琪琪无码午夜伦埋影院 | 亚洲久热无码中文字幕人妖 | 日本高清视频在线观看 | 国产 校园 另类 小说区 | 亚洲国产欧美在线成人app | 国产高清在线精品一区小说 | 91国内真实乱 | 97人妻人人做人碰人人爽 | 国产精品欧美一区二区三区喷水 | 扒开双腿被两个男人玩弄视频 | 免费女人裸体视频无遮挡免费网站 | 粗一硬一长一进一爽一a级欧美 | 无码欧亚熟妇人妻av在线外遇 | 秋葵视频成人 | 伦理天堂eeuss | 久久精品tv| 国产又粗又硬又长又爽视频 | 99国产成人综合久久精品欧美 | 中国少妇xxxx淫片老头 | 色又黄又爽18件免费网站 | 日韩精品一区国产偷窥在线 | 日韩不卡高清视频 | 天堂8在线天堂资源在线 | 国产精品久久久久婷婷 | 91av视屏 | av网站一区二区 | 国产福利精品在线 | 久久99精品国产99久久6尤 | 欧美欧洲成本大片免费 | 在线免费中文字日产 | 亚洲国产精品va在线播放 | a成人毛片 | 欧美xxxx做受欧美88bbw | 国产精品特级露脸av毛片 | 国产地址一 | 成人国产欧美大片一区 | 曰本av中文字幕一区二区 | 三级国产三级在线 | 中文字字幕在线中文 | 国产一区内射最近更新 | 久久亚洲精精品中文字幕 | 中文字字幕乱码视频高清 | 香蕉久久夜色精品升级完成 | 久久综合无码中文字幕无码ts | 国产高清av喷水白丝护士 | 国产喷水1区2区3区咪咪爱av | 国产免费看又黄又粗又硬 | www.youjizz.com在线观看 | 亚洲乱码国产乱码精品精 | 国产成人精品午夜视频 | 欧美成人三级在线视频 | 午夜视频一区二区三区 | 精品国产99久久久久久麻豆 | 女女同性女同一区二区三区九色 | 韩国日本三级在线观看 | 亚洲精品久久国产精品浴池 | 欧美在线一区二区视频 | 亚洲国产成人久久综合人 | 国产成人精品一区二区秒拍 | 亚洲日本va午夜中文字幕 | 天天拍夜夜爽 | 国产精品国产精品国产专区不蜜 | 狠狠狠色丁香综合婷婷久久 | 91在线视频精品 | 中文字幕亚洲情99在线 | 97色爱 | 桃花岛亚洲成在人线av | 麻豆画精品传媒2021一二三区 | 久久久人人人婷婷色东京热 | 精品人妻潮喷久久久又裸又黄 | 天天草天天爱 | www国产精品 | 可以观看的av | 国产超级va在线观看视频 | 国产三级在线观看播放视频 | 紧身少妇高跟鞋作爱 | 少妇太爽了在线观看免费视频 | 国产激情91 | 亚洲精品成人无码影院 | 亚洲久久天堂 | 亚洲成人精品在线观看 | 中国丰满少妇xxxxx高潮 | 国产成人亚洲精品无码电影不卡 | 青青草大香焦在线综合视频 | 国产毛片一区二区精品 | 热99re6久精品国产首页青柠 | aa国产精品 | 欧美日韩国产一级片 | 国产精品丝袜美腿一区二区三区 | 果冻传媒色av国产在线播放 | 免费av网址在线 | 毛片午夜 | 久久久一本 | 成人黄色av | 久草91| 一本无码人妻在中文字幕免费 | xvideos.蜜桃一区二区 | 少妇愉情理伦片丰满丰满午夜 | 国产日产欧产美 | 黄色片毛片 | 国产精品xxxxxx | 香蕉啪视频在线观看视频久 | 日本饥渴人妻欲求不满 | 天堂在线最新版资源www | 亚洲精品自拍视频在线观看 | 亚洲黄色第一页 | 在线三级网址 | 日韩免费无砖专区2020狼 | 97精品一区二区三区 | 无码av最新无码av专区 | 一本大道东京热无码视频 | 久热国产在线 | 超caopor在线公开视频 | 欧美一二三四五区 | 亚洲毛片无码专区亚洲a片 午夜精品亚洲一区二区三区嫩草 | 免费人成在线 | www.av网站| 含紧一点h边做边走动免费视频 | 国产香蕉av| 一本色道久久综合亚洲精品婷婷 | 国产杨幂丝袜av在线播放 | 三上悠亚福利一区二区 | 精品厕所偷拍各类美女tp嘘嘘 | 欧美在线观看视频 | 国产精品无码一区二区在线 | 久热这里只有精品视频6 | 少妇高潮惨叫久久久久电影 | 丰满少妇作爱视频免费观看 | 粗大的内捧猛烈进出在线视频 | 中文字幕一区二区在线视频 | 婷婷色香五月综合激激情 | 亚洲精品成人a在线观看 | 台湾午夜a级理论片在线播放 | 九九热这里只有精品6 | 午夜精品在线 | 久久妇女高潮喷水多 | 欧美成人免费观看视频 | 免费无码av片在线观看网址 | a∨变态另类天堂无码专区 亚洲欧美日韩系列 | 2021精品国产自在现线 | 日韩欧美精品一中文字幕 | 欧美影视一区 | 毛片在线看片 | 另类激情综合 | 亚洲a国产 | 国产又粗又猛又爽视频上高潮 | 久久色资源网 | 亚洲制服丝中文字幕 | 欧美一级在线免费 | 国产成人无码免费视频在线 | 狠狠干精品 | 中文字幕在线看片 | 亚洲日韩色欲色欲com | 91夜夜未满十八勿入爽爽影院 | 亚洲欧美在线一区二区 | 欧美丰满熟妇xxxx性ppx人 | 日日操日日插 | 欧美一区二区三区 | 日本黄页网站免费观看 | 成人免费crm一区二区 | 日韩av无码国产精品 | 亚洲激情欧美 | 欧美高潮在线 | 国产性生活毛片 | 日韩欧无码一二三区免费不卡 | 国产12页 | 日韩aⅴ人妻无码一区二区 337p日本欧洲亚洲大胆精品 | 国产男女猛烈无遮挡免费视频动漫 | 国产亚洲精品麻豆一区二区 | 日本免费三区 | 中文字幕有码无码人妻在线 | a级欧美 | 麻豆午夜视频 | 美女啪啪无遮挡免费久久网站 | 久久久人成影片免费观看 | 在线播放免费人成视频在线观看 | 国产成人无码一区二区在线播放 | 99re免费视频国产在线播放 | 日本一区视频在线 | 欧美色欧美亚洲另类二区 | 免费观看黄色小视频 | 午夜影院福利 | 丰满肥臀风间由美357在线 | 美女裸体视频永久免费 | 亚洲熟悉妇女xxx妇女av | 台湾无码av一区二区三区 | 午夜色av| 黄色三级在线视频 | 另类国产精品一区二区 | 亚洲精品一区二区三区精华液 | а√天堂资源国产精品 | 国产乱人对白 | 久久综合国产 | 国产精品久久久久久白浆 | 亚洲色无码中文字幕yy51999 | 欧美一区二区不卡视频 | 日本在线视频二区 | 国精品人妻无码一区二区三区d3 | 视频国产91 | 水蜜桃av导航 | 久久亚洲一区二区 | 免费久久一级欧美特大黄 | 正在播放老肥熟妇露脸 | 国产主播一区二区三区在线观看 | 狼群社区www中文视频 | 色姑娘粽合 | 色偷偷狠狠色综合网 | 国产亚洲一区在线 | 国产日产欧产精品精品推荐免费 | 国产成年片 | 国产刚发育娇小性色xxxxx | 992tv在线 | 精品一区二区三区四区五区六区 | 久久久精品2019中文字幕之3 | 999伊人| 人妻av中文字幕一区二区三区 | 国产亚洲黑人性受xxxx精品 | 亚洲色成人四虎在线观看 | 亚洲第一区欧美国产综合 | 亚洲高潮毛片无遮挡免费 | 99久久国产综合精品成人影院 | 欧美成 人 网 站 免费 | a亚洲精品 | 日本熟妇色一本在线看 | 国产美女自卫慰视频福利 | 好男人日本社区www 男人的天堂伊人 | 日韩av无码精品一二三区 | 日韩av一卡二卡三卡 | 葵司免费一区二区三区四区五区 | 国产精品午睡沙发系列 | 日韩性猛交ⅹxxx乱大交 | 亚洲天堂一区在线 | 欧美福利片在线观看 | 免费国产黄网在线观看 | 新91在线| 天天狠天天透天干天天怕 | 狠狠躁夜夜躁人人爽天天古典 | 免费视频国产 | 欧美bbbbbbbbbbbb片 | 18禁黄网站禁片无遮挡观看 | 草草影院ccyycom | 五月婷婷久久草 | 日本不卡一区在线观看 | 亚洲涩涩在线 | 日产精品久久久 | 欧美激情精品久久久久久大尺度 | 伊人久久综合影院 | 天天色视频 | 国产精品9x捆绑调教视频 | 日日躁夜夜躁xxxxxxx | 91精品国产乱码久久久 | 亚洲人成电影在线观看天堂色 | 蜜桃视频成人在线观看 | 精品人成视频免费国产 | 久久av无码αv高潮αv喷吹 | 日韩精品无码免费一区二区三区 | 男人天堂2018亚洲男人天堂 | 亚洲乱码无码永久不卡在线 | 久久久久久久国产精品毛片 | 国产微拍无码精品一区 | 天天爱天天拍天天插 | 天堂av在线网| 国产老熟女网站 | 久久婷婷五月综合色99啪ak | 青青91视频| 亚洲人成无码区在线观看 | 国产精品_九九99久久精品 | 日韩精人妻无码一区二区三区 | 欧美日一级片 | 亚洲男人的天堂在线观看 | 中文在线a√在线8 | 亚洲日韩成人性av网站 | 久久精品二区三区 | 国产无遮挡18禁网站免费 | 亚洲欧洲另类精品久久综合 | 国产主播大尺度精品福利免费 | 亚洲免费精品网站 | 天天玩天天干天天操 | 日本在线视频免费观看 | 国产无遮挡猛进猛出免费软件 | 超碰97人人人人人蜜桃 | 淫人网| 亚洲最大成人网色 | 四虎永久在线精品国产馆v视影院 | 国产亚洲综合区成人国产 | 中文字幕永久免费视频 | 亚洲精品久久激情国产片 | 在线看毛片的网站 | 4虎在线| 无线乱码一二三区免费看 | 娜娜麻豆国产电影 | 亚洲 小说 欧美 激情 另类 | 88888888国产一区二区 | 97超碰福利 | 国产亚洲精品久久久久的角色 | 激情综合激情五月俺也去 | 亚洲 成人 无码 在线观看 | 伊人蕉影院久亚洲高清 | 91精彩刺激对白露脸偷拍 | 西西人体www大胆高清 | 91精品视频网站 | 亚洲国产精品无码久久久秋霞2 | 亚洲高清无码加勒比 | 欧美福利网站 | 手机在线免费看片 | 天天爱天天做天天av | 日本少妇高潮喷水免费可以看 | 综合三区后入内射国产馆 | 欧美成人亚洲 | 天天爽夜夜爽人人爽88 | 欧美熟妇乱子伦xx视频 | 91免费看片网站 | 日韩国产激情 | 日韩三级视频 | 亚洲图片日本视频免费 | 717影院理论午夜伦八戒 | 最新永久无码av网址亚洲 | 国产精品嫩草影院9 | 国产精品毛片无码 | 黄色在线国产 | 日韩在线视频精品 | 久草在线综合 | 国产一区二区免费在线观看 | 97干干干 | 中文文字幕中文字幕在线中文乱码 | 青草精品在线 | 亚洲精品乱码久久久久久麻豆不卡 | av在线激情| 成人深爱网| av不卡在线看 | 无码aⅴ在线观看 | 国产精品成人99久久久久 | 亚洲视频黄色 | 久久丫精品忘忧草西安产品 | 亚洲天堂 | 夜夜嗨av涩爱av牛牛影视 | 中日韩在线视频 | 婷婷色在线播放 | 九九九精品视频 | 老司机在线免费视频 | 日本中文字幕在线 | 亚洲人人 | 国产精品久久久久久人妻精品动漫 | 少妇三级全黄在线播放 | 超清精品丝袜国产自在线拍 | 国产精品自在拍在线播放 | 99国产欧美久久久精品蜜芽 | 色999在线 | 内射精品无码中文字幕 | 久久九九爱 | 日日夜夜精品视频免费观看 | 久久99热这里只有精品 | 欧美三级一区二区 | 美女下半身无遮挡免费网站 | 日淫bbbbbbbbb| 亚洲成人福利视频 | 国产精品19乱码一区二区三区 | 看全色黄大色大片免费久久 | 亚洲精品第一国产综合野 | 久久人爽人人爽人人片av | 99手机在线视频 | 欧美一性一乱一交一免费视频 | 婷婷五月色综合香五月 | 丰满饥渴老女人hd | 91视频在线观看免费 | 成人品视频观看在线 | 4438xx亚洲最大五色丁香一 | 免费国产成人高清在线观看网站 | 亚洲国产一区二区三区波多野结衣 | 男人a天堂手机在线版 | 胖女人毛片 | 日韩精品久久无码人妻中文字幕 | 久久国产精品成人免费 | 亚洲国产精品97久久无色 | 国产成人喷潮在线观看 | 天天舔天天操 | 日韩视频在线免费看 | 色午夜日本高清视频www | 久久www成人免费直播 | 国产av精国产传媒 | 精品播放 | 欧产日产国产精品 | 精品国产31久久久久久 | 色婷婷五月综合激情中文字幕 | 国产色婷婷久久99精品91 | 97久久综合区小说区图片区 | 天天摸天天做天天爽婷婷 | 夜夜夜躁高潮天天爽 | 视频一区亚洲 | 亚洲综合免费视频 | 亚洲视频在线观看免费的欧美视频 | 强开小受嫩苞第一次免费视频 | 日本少妇内射视频播放舔 | 色欲香天天天综合网站 | 人人爽人人爽人人 | 香蕉九九九 | 国产精品欧美一区喷水 | 一群黑人大战亚裔女在线播放 | 国内精品久久久久久久久 | 激情综合婷婷丁香五月 | 国产女人喷浆抽搐高潮视频 | 国产欧美日韩在线观看一区二区 | 亚洲天堂色网站 | 成年视频在线观看 | 国产精品人人爽人人做我的可爱 | 秋霞无码av一区二区三区 | 国产精品毛片毛片毛片 | 成年午夜性影院免费观看 | 天堂伊人久久 | 激情综合色 | 国产精品久久久久久久久 | 无码一区二区三区av免费蜜桃 | 激情伊人五月天久久综合 | 精品无码日韩国产不卡av | 中文字幕一区在线播放 | 日韩中文字幕网站 | 日本www高清 | 久久性色av亚洲电影 | 亚洲国产精品国自产拍av秋霞 | 久久网站免费看 | 在线观看色视频 | 国产成人久久久77777 | 影音先锋人妻av中文字幕久久 | 国产精品国产成人国产三级 | 福利所第一导航福利 | 欧美人与动物xxx | 亚洲在线免费视频 | 少妇午夜av一区 | 盗摄精品av一区二区三区 | 久久婷婷色五月综合图区 | 国产日韩久久久久69影院 | 国产国产成年年人免费看片 | 黄频视频大全免费的国产 | 在线精品亚洲一区二区小说 | 91国内精品久久 | 亚洲中文字幕无线无码毛片 | 日本xxxxx九色视频在线观看 | 99视频精品全部在线观看 | 西西人体44www高清大胆 | 中文字幕+乱码+中文字幕一区 | 99久精品| 国内揄拍国内精品久久 | 亚洲人囗交| 在线观看无码不卡av中文 | 99久久婷婷国产综合精品 | 久久成人伊人欧洲精品 | 国产女厕所盗摄老师厕所嘘嘘 | 国产网曝门亚洲综合在线 | 怡红院av久久久久久久 | 久久久久久欧美 | 日韩欧美精品久久 | 国产视频久 | 国产三级久久 | 手机国产丰满乱子伦免费视频 | 久久国产乱子伦精品免费乳及 | 5x社区性生免费播放5x | 伊人久久亚洲精品一区 | 与子敌伦刺激对白播放的优点 | 日韩av首页| 色鬼久久综合 | 蜜臀91丨九色丨蝌蚪中文 | 丁香五月激情综合亚洲 | 亚洲xxxx视频| 国产偷人激情视频在线观看 | 在线日本看片免费人成视久网 | 吃奶呻吟打开双腿做受动态图 | 亚洲一区二区三区四区在线 | 色先锋影音岛国av资源 | 国产精品成人永久在线 | 中文字幕精品久久久久人妻 | 丰满人妻被公侵犯中文版 | 人妻少妇精品无码专区芭乐视网 | 91精品国产91久久久久福利 | 很黄的网站在线观看 | 色综合久久久久无码专区 | 中文精品在线 | 香蕉av福利精品导航 | 成人一级黄色片 | 午夜性影院 | 色肉色伦交av色肉色伦 | 日韩在线免费视频观看 | 欧美激情一二三 | 青草国产精品久久久久久 | 日本无遮羞调教打屁股网站 | 久久无码专区国产精品 | 国产乱国产乱 | 精品国产亚洲福利一区二区 | 国产免费一区二区三区在线播放 | 亚洲国产精品无码久久久高潮 | 欧美国产日韩亚洲中文 | 国产精品夜夜爽 | 成人资源在线 | 成人精品啪啪欧美成 | 亚洲色图偷拍 | 蜜臀久久99静品久久久久久 | 天堂8在线中文在线 | 男女aa视频 | 久久精品国产99久久99久久久 | 久久久久成人片免费观看r 亚洲一区 国产 | 精品国产乱码久久久久久1区2区 | 超碰91在线 | 香蕉影院在线观看 | 国产成av人片久青草影院 | 黄色网址av | 亚洲欧洲日产最新 | 五月综合激情婷婷六月色窝 | 狠狠操婷婷| www.青青草.com| 中文字幕av导航 | 伊人久久大香线蕉av五月天宝贝 | 韩国美女视频黄是免费 | 国产精品区二区三区日本 | 噜噜噜久久久 | 亚洲综合色成在线播放 | 超碰97久久国产精品牛牛 | 亚洲a一区二区 | 色爽视频 | 亚洲三级香港三级久久 | 狠狠撸在线 | 最新国产久免费视频在线观看 | 久久婷婷综合99啪69影院 | 日本欧美亚洲中文在线观看 | 天天操天天看 | 日韩精品亚洲色大成网站 | 丰满人妻翻云覆雨呻吟视频 | 欧美在线免费观看 | 免费看黄色一级毛片 | 久久久老熟女一区二区三区 | 中文成人无码精品久久久不卡 | 受虐狂 极端 奴役 折磨在线看 | 国产亚洲精品a在线观看 | 色天天影视 | 久草综合在线 | 欧美人与性动交a欧美精品 琪琪午夜伦埋影院77 | 99九九99九九视频精品 | 国产1024 | 超碰在线观看97 | 欧美在线a| 久久久夜色精品 | 亚洲成av人片天堂网老年人 | 日本在线播放一区二区 | 91精品啪在线观看国产商店 | 精品一区二区久久久久久按摩 | 无码男男做受g片在线观看视频 | 国产欧美日韩精品在线 | 国产三级观看 | 内射少妇36p九色 | 亚洲淫欲 | 国产精品久久久久久福利一牛影视 | 亚洲福利一区二区三区 | 亚洲综合视频一区 | 中文字幕卡二和卡三的视频 | 精品国产成人国产在线视 | 午夜亚洲视频 | 国产福利三区 | 国产免费黄色片 | 草在线视频| 成人性视频免费看 | 成人在线免费观看网站 | 99爱精品视频在线观看免费 | а天堂8中文最新版在线官网 | 无码专区亚洲制服丝袜 | 亚洲无线卡一卡二 | 亚洲制服丝袜av一区二区三区 | 午夜视频在线网站 | 欧美激情一区在线 | 亚洲日韩欧美一区二区在线 | 色婷婷av一区二区 | 蜜桃av抽搐高潮一区二区 | 秋霞影院午夜丰满少妇在线视频 | 久久久国产精华 | 日韩久久免费视频 | 中文在线资源新版8 | 丁香激情五月婷婷 | 女同性精品亚洲 | 亚洲国产不卡视频 | 9999re| 午夜精品一区二区三区三上悠亚 | 中文无遮挡h肉视频在线观看 | 无码成人h免费视频在线观看 | 精品国产av色一区二区深夜久久 | 亚洲国产精品无码久久青草 | 狠狠躁夜夜躁人人爽天天69 | 色一情一乱一伦一区二区三区 | 天天爱综合 | 国产第100页 | 国产一区二区三区乱码 | 亚洲综合区小说区激情区 | 久久免费99精品久久久久久 | 真人一毛片 | 992tv人人网tv亚洲精品 | 高清不卡一区二区 | 香蕉久久夜色精品升级完成 | 亚洲a∨精品一区二区三区下载 | 欧美成年人视频在线观看 | 射精区-区区三区 | 久久久久久穴 | 欧美经典片免费观看大全 | 性饥渴的农村熟妇 | 激情综合丁香五月 | 色免费视频 | 美女人妻激情乱人伦 | 天堂√在线中文资源网 | 久久亚洲一区二区 | 熟妇高潮一区二区三区 | 无码日韩精品一区二区人妻 | 日本天堂网在线 | 午夜在线观看免费线无码视频 | 亚洲最新| 中国极品少妇xxxx做受 | 国产精品污视频 | 丨国产丨调教丨91丨 | 欧美日韩亚洲国产另类 | 国产产无码乱码精品久久鸭 | 97久久超碰亚洲视觉盛宴 | 成人在线手机视频 | 无码夫の前で人妻を犯す中字幕 | 欧美交换配乱吟粗大25p | 国产成人精品午夜视频 | 日韩综合在线 | 欧美日韩亚洲一区二区 | 99久久国产综合精品五月天喷水 | 91精产国品一二三生产方式 | 国产资源网 | 青青草免费在线视频观看 | jizz麻豆视频| 国产午夜精品免费一区二区三区视频 | 992tv成人免费视频 | 黄色av片三级三级三级免费看 | 97碰碰碰免费公开在线视频 | 在线vr极品专区 | 天天操天天操天天操 | 国产女人乱人伦精品一区二区 | 大地资源中文第三页 | 樱桃空空人妻无码内射 | 深夜福利在线观看视频 | 国产精品尤物yw在线观看 | 中文字幕精品一区二区的区别 | 黄桃av无码免费一区二区三区 | 日韩精品专区在线影院重磅 | 久久国产视频网站 | 亚洲手机看片 | 福利在线看 | 亚洲牛奶xxxx哺乳期av | 玖玖玖香蕉精品视频在线观看 | 夜久久| 国产精品15p | 日韩在线观看你懂的 | 国产女厕所盗摄老师厕所嘘嘘 | 国产成年妇视频 | 亚洲国产精品av在线播放 | 午夜视频在线观看一区二区 | 中国三级视频 | 美女福利网站 | 国产精品中文久久久久久久 | 亚洲一区无码中文字幕乱码 | 91精品啪| 亚洲大胆人体视频 | 黄色片免费在线播放 | 亚洲女人网 | av手机网| 亚洲人体视频 | 中文字幕无码精品亚洲35 | 亚洲韩国日本 | 国产亚洲精久久久久久叶玉卿 | 熟女人妻av五十路六十路 | 国产盗摄av | www.日韩在线视频 | 精品国精品国产自在久国产应用 | 岛国av动作片在线观看 | 九色国产精品 | 色偷偷青青草 | 久久精品成人亚洲另类欧美 | 无码国产成人午夜电影在线观看 | 农村妇女毛片精品久久久 | 国产精品人人爽人人做av片 | 曰本又大又粗又黄又爽的少妇毛片 | 国语精彩对白2021 | 五月天堂网 | 超碰人人网 | 欧美成人一区免费视频 | 中文字幕在| 欧美性高潮视频 | 免费又黄又爽1000禁片 | 色91精品久久久久久久久 | 成人一区二区三区久久精品嫩草 | 精品国产免费久久久久久桃子图片 | 美丽的熟妇中文字幕 | 粉嫩av一区二区三区四区免费 | 国产情侣偷国语对白 | 欧美一区二区激情视频 | 午夜爱爱影院 | 国产片av不卡在线观看国语 | jizz内谢中国亚洲jizz | 日本中文字幕在线播放 | 国产av国片精品有毛 | 日本蜜桃视频 | 国产精品手机视频 | wwwxxx欧美| 337p西西人体大胆瓣开下部 | 一本一道av无码中文字幕﹣百度 | 午夜亚洲一区 | 毛片手机在线观看 | 国产特级嫩嫩嫩bbb 91免费看网站 | 琪琪女色窝窝777777 | 欧洲国产精品无码专区影院 | 18禁男女爽爽爽午夜网站免费 | youjizz.com亚洲| 久久久久久午夜成人影院 | 熟睡中被义子侵犯在线播放 | 97超碰在线免费 | 97人人模人人爽人人喊0 | 性生交大片免费密桃成熟时 | 国产偷人妻精品一区二区在线 | 高h禁伦餐桌上的肉伦水视频 | 级r片内射在线视频播放 | 天堂资源官网在线资源 | 国内精品久久久久久不卡影院 | 国产精品三级国产电影 | 蜜桃成人免费视频 | 少妇高潮无套无遮挡内谢小说 | 免费三级黄色 | 国产自产高清不卡 | 95av视频| 尤物网站视频免费看 | 91精品国产色综合久久 | 秋霞国产成人精品午夜视频app | 亚洲欧洲无码av不卡在线 | 一本色道久久88综合亚洲精品ⅰ | 在线看一区二区 | 色www亚洲国产张柏芝 | 无码日韩人妻av一区二区三区 | 91黑人巨炮vs亚裔美女 | 亚洲精品国产aⅴ成拍色拍 成人乱人伦精品小说 | 久久精品无码中文字幕 | 999视频在线观看 | 成人av影音 | 午夜影院0606免费 | 久久精品无码一区二区软件 | 四虎国产精品永久一区高清 | 亚洲精品国产欧美 | 中文字幕一区二区三区精华液 | 中文字幕人妻被公上司喝醉在线 | 亚洲男人天堂av | 国产麻豆成人传媒免费观看 | 艳妇臀荡乳欲伦交换av1 | 亚洲欧美日韩精品专区 | 精品国产三级a在线观看网站 | 东北老女人高潮大叫对白 | 欧美精品一二三四区 | 亚洲国产日韩精品二三四区竹菊 | 欧美亚洲国产第一精品久久 | 综合免费视频 | 国产在线精品一区二区高清不卡 | 久青草国产在视频在线观看 | 亚洲综合无码一区二区三区 | 午夜婷婷精品午夜无码a片影院 | 亚洲精品在看在线观看高清 | 国产精品456在线播放 | 肉色欧美久久久久久久免费看 | 国产免费mv大片人人电影播放器 | 东方av正在进入 | 国产女女精品视频久热视频 | 亚洲国产成人精品无码区软件 | 久久免费视频6 | 伊人久久大香线蕉av最新 | 精品成人av一区二区三区 | 久久久婷 | 777色网| 国产精品岛国久久久久 | 大j8福利视频导航 | 好男人视频社区在线观看www | 日日爱视频 | 精品无码国产自产拍在线观看蜜 | 欧美一级视频播放 | 九九热这里只有精品6 | 另类老妇奶性生bbwbbw | 中文字幕欧美久久日高清 | 国产成人午夜高潮毛片 | 一个人看的免费视频www中文字幕 | 久久亚洲国产精品五月天婷 | 久久天堂综合亚洲伊人hd妓女 | 亚洲成aⅴ人片在线观 | 久久精品a一国产成人免费网站 | 国产精成人品 | 九九免费观看视频 | 免费福利视频导航 | 五月天天丁香婷婷在线中 | 国产成人a亚洲精品 | 在线va亚洲va天堂中文字幕 | 欧美黑人巨大videos精品 | 国产精品4 | 亚洲综合久久精品无码色欲 | 国产精品粉嫩懂色av | 鲁一鲁一鲁一鲁一曰综合网 | 性一交一乱一伧老太 | 51真实女性私密spa按摩偷拍 | 色五月激情五月亚洲综合考虑 | 91激情影院 | 久久久久九九九九 | 日日做夜夜爽毛片麻豆 | 国产美熟女乱又伦av果冻传媒 | 亚洲综合色区另类小说 | 99xxxx开心 | 精品永久久福利一区二区 | 欧美日韩精品一区二区三区蜜桃 | 亚欧洲精品在线视频免费观看 | 91插插插影库永久免费 | 无码福利一区二区三区 | 精品一区欧美 | 国产精品自在线拍亚洲另类 | www.欧美国产 | 消息称老熟妇乱视频一区二区 | 91啦丨国产 | 天堂综合在线 | 天天操夜夜操视频 | 中文字幕精品亚洲无线码vr | 婷婷.com| 99久久免费看精品 | xvideos永久免费入口 | 欧美一级黄色网 | 亚洲天堂一区二区三区四区 | 青青青爽在线视频免费观看 | 天天摸天天做天天爽 | 精品久久久久久综合日本 | 亚洲国产成人片在线观看无码 | 美女少妇翘臀啪啪呻吟网站 | 国产激情久久久久影院小草 | 欧美成人手机在线视频 | 亚洲乱码国产乱码精品精不卡 | 亚洲人成网站在线观看播放 | 国产精品久久久久婷婷 | 最新中文字幕视频 | 国产亚洲aⅴ在线电影 | 菲律宾av | 亚洲人av高清无码 | 国产中文视频 | 中日产幕无线码一区 | 四虎精品免费 | 女人一区二区 | 欧美一区二区三区四区在线观看 | 视频分类 国内精品 | 久久精品国产72国产精 | 最新国产毛片 | 美女张开腿喷水高潮 | 亚洲欧洲自拍拍偷精品 美利坚 | 欧美交换配乱吟粗大 | 成人福利在线 | 东京热无码人妻一区二区av | 大伊香蕉精品一区视频在线 | 国内精品久久久久久久星辰影视 | 无码h黄肉动漫在线观看999 | 午夜成人福利片无码 | 在线观看网址 | 免费久草 | 亚洲人成日韩中文字幕无卡 | 欧美日韩五区 | 色在线看 | 午夜婷婷在线观看 | julia无码中文字幕一区 | 18禁止午夜福利体验区 | 免费人妻无码不卡中文字幕系 | 你懂在线| 免费色视频 | 狠狠色噜噜狠狠狠狠色吗综合 | 小荡货奶真大水多好紧视频 | 99er6这里只有精品 | 无码中文人妻在线一区二区三区 | 精品国产99高清一区二区三区 | 久久久99日产| 中文在线www| 激情小说区 | 熟女人妻少妇精品视频 | 久久国内视频 | 日日麻批免费40分钟无码 | 久久国产精品首页 | 国产成人理论无码电影网 | 中国国产毛片 | 羞涩的丰满人妻40p 夜夜爽久久精品91 国产精品91在线 | 日韩欧美少妇 | 午夜影院网站 | 色欲av无码一区二区三区 | 成人做爰69片免网站 | av操操操 | 欧美香蕉爽爽人人爽 | 亚瑟av在线 | 亚洲视频色 | 5x性社区免费视频播 | 日本在线视频一区二区 | 成人18夜夜网深夜福利网 | 国产日韩欧美亚欧在线 | 久久精品视频播放 | 国产精品亚洲一区二区三区在线 | 亚洲精品综合五月久久小说 | 人妻av乱片av出轨 | 精品一卡2卡三卡4卡免费视频 | 国产 欧美 视频一区二区三区 | 欧美另类色 | 黑人大战欲求不满人妻 | 天天躁日日躁狠狠躁a∨麻豆 | 国产高清吹潮免费视频 | 国产精品一区二区吃奶在线观看 | 亚洲国产欧美精品 | 国产永久免费观看视频 | 国产成人夜色在线影院 | av无码av不卡一区二区 | 四虎影视成人永久免费观看亚洲欧美 | 久久久网址 | 免费av看片 | 日韩一级欧美一级 | 国产精品乡下勾搭老头1 | 欧美丝袜一区二区三区 | 亚欧免费无码aⅴ在线观看蜜桃 | 亚洲激情视频在线 | 亚洲精品一区二区三区不卡 | 久热国产区二三四 | 欧美激情一区二区三级高清视频 | 人成午夜免费视频在线观看 | 日本网站免费 | 日韩另类av | 色欲天天网站欧美成人福利网 | 九九热在线视频精品店 | 日日噜噜噜夜夜爽爽狠狠同性男 | 免费人成视频在线 | 黄网大全在线观看 | 亚洲91视频 | 国产一区二区a | 亚洲精品人成网线在线播放va | 国产偷亚洲偷欧美偷精品 | 色婷婷一区二区三区四区 | 男女激情爽爽爽免费视频 | 先锋中文字幕在线资源 | 国产熟妇搡bbbb搡bb七区 | 国产-第1页-浮力影院 | 亚洲aaaaaaa | 亚洲第一黄网站 | 欧美啪啪网站 | 香蕉av一区二区三区 | 小雪尝禁果又粗又大的视频 | 亚洲中国色老太 | 国产色青青视频在线观看撒 | 拍真实国产伦偷精品 | a在线视频v视频 | 色综合综合色 | 久久久久久免费毛片精品 | 在线国产视频一区 | 精品国产一区二区在线 | 久久免费看少妇a高潮一片黄特 | 日本一区二区观看 | 巨大巨粗巨长 黑人长吊 | 国产九九久久99精品影院 | 中文字幕亚洲国产 | 少妇做爰免费视频了 | 亚洲卡一卡二卡三乱草莓 | 在线观看高清av | 国产精品成人影院在线 | 乱码一区二区 | 亚洲国产精品高清久久久 | 亚洲精品无码成人a片 | 久久精品熟女亚州av麻豆 | 美国一区二区三区无码视频 | 国产高清无密码一区二区三区 | 免费观看潮喷到高潮中文字幕 | 欧美成人黑人猛交 | 日本美女福利视频 | 波兰性xxxxx极品hd | 亚洲国产婷婷香蕉久久久久久 | 天天操人人爽 | 亚洲综合福利 | 东北女人啪啪对白 | 一区二区三区观看 | 一区二区三区无码被窝影院 | 久久伊人精品影院一本到综合 | 我不卡av| 免费啪视频在线观看 | 国产一级高清 | 色人阁图片 | 全国最大成人免费视频 | 久久久精品区 | 四虎影院地址 | 国产乱淫av国产8 | 天天草天天爽 | 国产偷窥真人视频在线观看 | 国产特级毛片aaaaaaa高清 | 亚洲精品久久久久久久久久久久久久 | 欧美精品成人在线视频 | 日韩精品 在线 国产 丝袜 | aaa午夜级特黄日本大片 | 女性向av在线 | 蜜臀av福利无码一二三 | 日韩欧美成人精品 | 成熟亚洲日本毛茸茸凸凹 | 国产亚洲熟妇在线视频 | 麻豆裸体舞表演视频 | 中文字幕欧美另类精品亚洲 | 国产边摸边吃奶边做爽视频 | 亚洲国产精品第一区二区三区 | 永久免费观看黄网视频 | 91视频福利 | 久久香蕉久久 | 三区在线视频 | 黄色录像欧美 | 激情射精爽到偷偷c视频无码 | 超碰97人人模人人爽人人喊 | 欧美疯狂xxxx乱大交 | 免费国精产品wnw2544 | 亚洲色图首页 | 2021最新久久久视精品爱 | 午夜成人精品福利网站在线观看 | 69av一区 | 中文国产成人精品久久久 | 国产精品美女网站 | 国产成人精品午夜视频' | 狠狠躁夜夜躁av网站中文字幕 | 少妇被又大又粗又爽毛片久久黑人 | 国产精品久久久久久日本 | 国产区图片区小说区亚洲区 | 免费午夜福利不卡片在线 | 天堂中文8资源在线8 | 99视频免费 | 护士奶头又大又软又好摸 | 加勒比一本heyzo高清视频 | 亚洲精品四区麻豆文化传媒 | 91精品国产丝袜白色高跟鞋 分类 | 夜趣福利视频导航 | 精品欧美成人高清在线观看 | 亚洲精品一区二区三区不卡 | 久久精品99国产国产精 | 色人阁婷婷 | av黄网| 国产精品真实灌醉女在线播放 | 色综合999 | 军人全身脱精光自慰 | 好吊妞这里有精品 | 久久免费精品国产72精品九九 | 亚洲色大网站www永久网站 | 激情欧美一区二区免费视频 | 日韩精品乱 | 黄色在线a| 国产真实强奷网站在线播放 | 欧美亚洲精品一区二区三区 | 亚洲欧美视频一区二区 | 亚洲女人阳道毛茸茸黑森林 | 国产精品午夜无码av天美传媒 | 欧美整片在线观看 | 91精品国产综合久久久密闭 | 亚洲va国产日韩欧美精品色婷婷 | 性zoz0交肉体| 欧美婷婷色 | 色综合欧美在线视频区 | 高清性欧美暴力猛交 | 性色av一区 | 国产精品久久久久久人妻精品 | 在线播放色 | 天天干夜夜噜 | 97久人人做人人妻人人玩精品 | 色就干| 日韩字幕在线 | 丰满少妇久久久久久久 | 国产农村妇女毛片精品 | 色网站免费 | 亚洲成人精品一区二区三区 | 中文天堂在线资源 | 久久成人一区 | 国产露脸精品产三级国产av | 成人黄色毛片 | 亚洲中文字幕日产无码 | 日日好av | 久章草在线无码视频观看 | 欧美天天综合色影久久精品 | 欧美第一精品 | 欧美另类 自拍 亚洲 图区 | 一品二品三品中文字幕 | eeuss鲁一区二区三区 | 91浏览器在线观看 | 国产精品久久久久久久久久久久久久久久久 | 欧美一区二区三区黄色 | 麻花豆传媒剧国产免费mv在线 | 久热精品视频在线观看 | 久久精品国产日本波多野结衣 | 无码中文人妻在线一区 | 北岛玲熟邻居bd在线观看 | 性视频播放免费视频 | 又黑又粗又长的欧美一区 | xxxx亚洲| 少妇熟女视频一区二区三区 | 精品国产99高清一区二区三区 | 少妇av一区二区三区 | 摸少妇的奶她呻吟不断爽视频 | 欧美熟妇性xxxx欧美熟人多毛 | 黄色一级视频免费观看 | 亚洲一区二区三区在线观看精品中文 | 亚洲国产老鸭窝一区二区三区 | 色播开心网| 黄色av免费 | 国产欧美一区二区三区沐欲 | 午夜福利啪啪无遮挡免费 | 男女啪啪免费观看网站 | 老司机午夜精品视频无码 | 国产熟睡乱子伦视频观看软件 | 久久无码高潮喷水 | www.日本高清视频 | 亚洲精品一区二 | av在线播放日韩亚洲欧我不卡 | 色婷婷中文字幕 | 免费看片免费播放国产 | 久久精品国产乱子伦 | 日本一区二区三区免费观看 | 日韩一二三区在线 | 婷婷成人综合激情在线视频播放 | 色婷婷一区二区三区av免费看 | 国产免费爽爽视频 | 丝袜 亚洲 另类 国产 制服 | 精品一卡二卡三卡四卡 | 婷婷久久综合九色综合88 | 中国女人大白屁股ass | 2020中文字字幕在线不卡 | 韩国精品一区二区三区无码视频 | 国产乱妇视频 | 国产精品第157页 | 成人综合婷婷国产精品久久蜜臀 | 精品人妻av一区二区三区 | 一级黄色免费观看 | 初欲av| 亚洲精品久久久久久久久久久久久久 | 国产精品一区2区 | 国产精品91在线观看 | 亚洲色图美腿丝袜 | 护士av无码在线观看 | 成人二区三区 | 国产高清av久久久久久久 | 欧美一区色 | 国产激情91 | 久久天堂综合亚洲伊人hd | 国产又粗又猛又黄又爽性视频 | 欧美一区二区三区小说 | 偷拍25位美女撒尿视频在线观看 | 久久综合色之久久综合 | 尤物视频最新网址 | 日韩视频在线视频 | 无码日日模日日碰夜夜爽 | 亚洲美女福利 | 国产成人综合视频 | cao逼视频| 中文字幕不卡视频 | 高潮毛片又色又爽免费 | 99精品全国免费观看视频 | 激情综合影院 | 伊人久久大香线蕉无码不卡 | 一区二区免费高清观看国产丝瓜 | 青青草97国产精品免费观看 | 亚洲欧美系列 | 亚洲淫男的高潮合集 | 无码午夜福利片在线观看 | 国产视频精品在线 | 91成人看片| 人人澡人人妻人人爽人人蜜桃 | 国产chinese精品av| 国产精品黄色网址 | 精品无码久久久久国产手机版 | 久久天堂综合亚洲伊人hd | 中文字幕一区二区在线视频 | 久久国语露脸国产精品电影 | 少妇极品熟妇人妻无码 | 中出乱码av亚洲精品久久天堂 | 国产精品推荐天天看天天爽 | 日本黄色动态图 | 手机在线你懂的 | 亚洲综合欧美在线一区在线播放 | 欧美综合在线观看视频 | 动漫精品中文无码卡通动漫 | 亚洲免费最大黄页网站 | 国产免费一级视频 | 中文乱码字慕人妻熟女人妻 | 国产精品一区二区在线观看网站 | 欧美啪啪网 | 中国av一区二区 | 狠狠撸在线 | 羞羞网站在线看 | 极品少妇被啪到呻吟喷水 | 超碰在线影院 | 国产第19页精品 | 日产学生妹在线观看 | 中文字幕久久综合伊人 | 国产精品免费福利久久 | 亚洲国产成人久久综合碰碰 | 性色高清xxxxx厕所偷窥 | 久久婷婷人人澡人人爽人人喊 | 无码av中文一区二区三区 | 久久精品国产精品国产一区 | 9久9久热精品视频在线观看 | 国产精品乱码 | 国产黄色免费小视频 | 久久艹国产 | 最新毛片基地 | 色翁荡熄又大又硬又粗又视频图片 | 久久亚洲色www成人欧美 | 天堂视频网站 | 97人妻中文字幕总站 | 中文字幕av久久一区二区 | 日韩精品一区二区av在线观看 | 午夜久久久久久久久久 | 午夜熟女插插xx免费视频 | 中文字幕一二区 | 日本无码人妻丰满熟妇区 | 久久综合网丁香五月 | 97久久超碰国产精品2021 | 91夜夜操 | 亚洲天堂资源网 | 少妇精品久久久久久久久久 | 射进来av影视网 | 人妻无码视频一区二区三区 | 国模欢欢大尺度啪啪 | 成熟交bgmbgmbgm在线 | 91精品国产手机 | av有码在线观看 | 456欧美成人免费视频 | 亚洲伊人色| 免费无码毛片一区二区三区a片 | 区产品乱码芒果精品综合 | 亚洲成av人片一区二区梦乃 | 99久久精品国产免费 | 日日拍拍 | 欧美第一页在线观看 | 狠狠色噜噜狠狠狠7777米奇 | 亚洲精品欧美精品日韩精品 | 国产aaaaav久久久一区二区 | 久久精品手机观看 | 国产综合视频在线观看 | 无码国产精品一区二区色情男同 | 国色天香天天影院综合网 | 亚洲aⅴ无码成人网站国产app | 久久午夜夜伦鲁鲁片免费无码影院 | 揉搓凸起的花蒂爽尿在线观看 | 精品午夜国产福利在线观看 | 99精品国产高清一区二区 | 一本久久a久久精品综合 | 成av在线 | 国产精品久久久久久久久久10秀 | 国产精品女人呻吟在线观看 | 亚洲大尺度专区 | 免费人成视网站在线不卡 | 欧美日本亚洲韩国一区 | 国产精品对白交换视频 | 日本不卡视频一区二区三区 | 国产伦子沙发午休系列资源曝光 | 午夜乱轮 | 嫩草视屏 | 久久免费视频一区 | 精品久久久久久久久午夜福利 | 亚洲成人精品网 | 国产精品点击进入在线影院高清 | 91精品国产乱码久久久竹菊 | 国产在线视频一区二区三区98 | 欧美成人午夜在线观看视频 | 国产理伦天狼影院 | 欧美性猛交xxxxx按摩欧美 | 久色88 | 97精品国产一区二区三区四区 | 天天干天天操天天碰 | 在线一区二区三区 | 国产凸凹视频一区二区 | 四虎最新地域 | 超碰网站在线观看 | av大片在线免费观看 | 六月成人网 | 少妇性荡欲午夜性开放视频剧场 | 日韩在线一区二区视频 | 天天干天天做 | 欧洲丰满大乳人妻无码欧美 | 午夜大片免费男女爽爽影院 | 大乳女喂男人吃奶视频 | 另类激情av | 亚洲中文字幕婷婷在线 | 久艾草在线精品视频在线观看 | 91精彩刺激对白露脸偷拍 | 色一情一乱一伦一区二区三区小说 | 国产乱人伦偷精品视频免下载 | 国产高清无码在线com | 色婷婷丁香 | 日本成a人片在线播放 | 日本猛少妇色xxxxx猛叫小说 | 国产精品久久久久高潮色老头 | 中国产xxxxa片在线观看 | 在线一区 | 国产成人av在线免播放app | 中文字幕在线字幕中文 | 国产亚洲精品久久久久久无挡照片 | 黄色日本免费 | 国产黄色片免费看 | 婷婷开心激情 | se94se亚洲精品setu | 超碰人人模人人爽人人喊手机版 | 超级碰在线观看 | 国产视频第三页 | 粗大猛烈进出高潮视频大全 | 91丨国产丨精品白丝 | 无码av一区二区大桥久未 | 亚洲色在线无码国产精品 | 五月天av在线| 你懂的在线观看 | av资源新版在线天堂 | 亚洲а∨天堂久久精品 | 亚洲精品国产精品乱码不99按摩 | 国产特级毛片aaaaaa高潮流水 | 成人av一区二区免费播放 | 91av在线免费 | 日本免费在线观看 | 强奷乱码欧妇女中文字幕熟女 | 亚洲女优天堂 | 久9视频这里只有精品8 | 国产网站一区二区 | 亚洲亚洲人成综合丝袜图片 | 国产v亚洲v天堂无码网站 | 久久精品免费 | 日日夜夜草 | 成人免费毛片内射美女app | 国产毛多水多高潮高清 | 伊人春色在线 | 成人午夜大片免费看爽爽爽 | 亚洲另类交 | 91日韩精品一区二区三区 | 肥老熟妇伦子伦456视频 | 女人被狂c到高潮视频网站 成人免费淫片aa视频免费 | 亚洲色大成网站www在线 | 欧美日产亚洲国产精品 | 色欲综合久久中文字幕网 | 免费国产成人高清在线网站 | av亚洲午夜网站福利天堂 | 日本免费三区 | 人妻少妇-嫩草影院 | 婷婷四房综合激情五月在线 | 亚洲成肉网 | 欧美日韩免费在线观看 | 日本在线影院 | 日本免费一区高清观看 | 午夜寂寞少妇aaa片毛片 | 免费无码又爽又刺激动态图 | 四虎视频精品免费观看 | 欧洲精品码一区二区三区免费看 | 2018天天躁夜夜躁狠狠躁 | 外国免费毛片 | 最新69国产成人精品视频 | 亚洲欧美激情在线一区 | 亚洲v无码一区二区三区四区观看 | 男人天堂1024| 欧美老熟妇乱子伦牲交视频 | 一本色综合网久久 | 亚洲 日本 欧洲 欧美 视频 | 波多野结衣视频网址 | 91精品国产乱码久久桃 | 偷拍亚洲综合 | 亚洲国产精品美女久久久av | 40岁成熟女人牲交片20分钟 | 亚洲午夜成人精品电影在线观看 | 亚洲色欧美在线影院 | 午夜8888 | 初尝黑人嗷嗷叫中文字幕 | 国产色综合视频 | 在线观看亚洲精品国产福利片 | 亚洲欧美日韩中文加勒比 | 成人含羞草tv免费入口 | 日韩精品在线观 | 久久婷婷色香五月综合缴缴情 | 午夜视频体内射.com.com | 日本搞逼| 成人黄色在线网站 | 无码专区男人本色 | 亚洲欧美一区二区成人片 | 午夜寂寞影院在线观看 | 强伦姧人妻三上悠亚中文字幕 | 天堂va欧美ⅴa亚洲va | 天天躁狠狠躁狠狠躁夜夜躁68 | jjzz黄色片 | 日韩在线第二页 | 亚洲成av人片天堂网老年人 | 天天插天天爽 | 国产成人无码免费视频97app | 成人精品一区二区三区电影免费 | 精品无码久久久久久久久久 | 天天午夜 | 中文字幕亚洲乱码熟女在线萌芽 | 国产性猛交普通话对白 | 成年免费视频黄网站zxgk | 成人网站免费看黄a站视频 午夜视频在线免费看 | 午夜嘿嘿嘿在线观看 | 免费无码av一区二区 | 色男人在线| 东京热人妻中文无码av | 成熟人妻av无码专区a片 | 日本少妇喂奶 | 日本一级黄色录像 | 欧美性生活视频 | 天天躁日日躁狠狠躁欧美老妇小说 | 欧美日韩精品人妻狠狠躁免费视频 | 另类视频一区二区 | 免费无挡无摭十八禁视频 | 亚洲国产综合无码一区二区bt下 | 色七七桃花综合影院 | 天天射天天摸 | 一级久久久久 | 少妇高潮惨叫久久久久久 | 日本免费不卡的一区视频 | 色婷婷精品久久二区二区蜜臂av | 精品久久久久国产 | 亚洲色欲久久久综合网东京热 | 成人国内精品视频在线观看 | www.xxxxx日本 | 国产美女裸体无遮挡免费视频高潮 | 7777国产欧美日韩亚洲黑人 | 亚洲欧美日本国产专区一区 | 久久久成人一区二区免费影院 | 亚洲中文字幕乱码熟女在线 | 女人十八岁毛片 | 久久久久久久午夜 | 97人视频国产在线观看 | 91官网在线| 精品爽爽久久久久久蜜臀 | 亚洲人人在线 | 无遮挡18禁啪啪免费观看 | 久久久久91| 人妻av无码一区二区三区 | 久热中文字幕在线精品观 | www.亚洲人 | 久久久久国产精品人妻aⅴ院 | 亚洲国产精品久久久久久久 | 亚洲精品极品 | 亚洲丰满胖妇xxxx做受 | 1级黄色大片儿 | 精品国产拍国产天天人 | 天天影视网色香欲综合网 | 高潮潮喷奶水飞溅视频无码 | 思热99re视热频这里只精品 | 亚洲精品国产成人av | 人人爽久久涩噜噜噜红粉 | 国产成人亚洲精品无码青app | 黑人与日本少妇高潮 | 荫蒂添的好舒服视频囗交 | 日本丰满毛茸茸熟妇 | 亚洲欧美综合在线中文 | 亚洲综合社区 | 91视频一88av | 人妻熟女一区二区av | 果冻国产精品麻豆成人av电影 | 欧美老熟妇乱子伦牲交视频 | 真性中出| 青春草国产视频 | 嫩草国产精品 | 久久久亚洲欧洲日产国码606 | 97人人澡| 九九九伊在人线综合2023 | 丁香花在线免费高清观看 | 日韩手机在线 | 亚洲中文字幕久久无码精品 | 国产精品一区二区人人爽79欧美 | 欧美成人国产 | 色黄视频网站 | 18禁免费吃奶摸下激烈视频 | 久久艹99 | 麻豆国产精成人品观看免费 | 人妻人人澡人人添人人爽人人玩 | 国产亚洲欧美在线观看 | 久久这里只有精品国产免费10 | 国产日产欧产精品精乱了派 | 色婷婷久久久swag精品 | 欧美大尺度裸体床戏 | 久久精品亚洲精品 | 在线观看免费视频网站a站 精品成人在线观看 | 18男女拍拍拍久久精品 | 激情网久久 | 国产精品拍拍拍 | 亚洲欧美在线一区二区 | 在线视频网址 | 久久国语露脸国产精品电影 | 久久久橹橹橹久久久久手机版 | 亚洲夜色| 色久综合网精品一区二区 | 中文字幕第一区综合 | 婷婷狠狠久久久一本精品 | 欧美精品爱爱 | 国产美女在线播放 | 欧美成人黄色小说 | 久久99久久99精品免视看看 | 久久国产偷任你爽任你 | 国产成人精品视频一区二区不卡 | 国产中文字幕在线观看 | 天天综合日韩 | 91最新中文字幕 | 激情五月色综合国产精品小说 | 欧美人禽杂交狂配 | 有码视频在线观看 | 四虎永久免费在线观看 | 国内精品久久久久久中文字幕 | 欧洲国产伦久久久久久久 | 国产av夜夜欢一区二区三区 | 色妞www精品视频二 狠狠插网 | 在线日本看片免费人成视久网 | 日韩二区在线观看 | 麻豆国产原创视频在线播放 | 亚洲成av人最新无码不卡短片 | 国产亚洲精品美女久久久m 欧美高清视频在线观看 | 性xxxx18免费观看视频 | 国产丝袜无码一区二区视频 | 在线观看毛片av | 日本一级一级一区二tx | 国内精品免费久久久久电影院 | 精品99在线 | 欧美专区在线视频 | 久久中文字幕网 | 两个奶头被吃高潮视频 | 国产乱子伦无套一区二区三区 | 国产日产欧产精品精乱子 | 国产天天看 | 99久久免费看少妇高潮a片 | 中文日产幕无线码6区收藏 茄子成人看a∨片免费软件 | 国产天堂网站 | 精品欧美一区二区久久久伦 | 国产69成人精品视频免费 | 97人人爽人人 | 那个网站可以看毛片 | 国产精品www | 好吊妞精品 | 伊人天堂午夜精品福利网 | 99手机在线视频 | av不卡免费在线观看 | 久久精品aaaaaa毛片 | 激情欧美一区二区三区黑长吊 | 福利片一区 | 国产精品久久久久久无毒偷食禁果 | 青草在线视频 | 五月婷之久久综合丝袜美腿 | 久久综合婷婷丁香五月中文字幕 | 亚洲开心婷婷中文字幕 | 亚洲淫少妇 | 国产福利片无码区在线观看 | h肉动漫无修一区二区无遮av | 亚洲精品色婷婷 | 97黄色片| 久热这里只有精品99在线观看 | 国产v精品成人免费视频 | 91插插插影库永久免费 | 女人的天堂网 | 精品一区二区三区四区外站 | 欧美18精品久久久无码午夜福利 | 五月婷婷六月丁香动漫 | 亚洲综合一区国产精品 | 久久无码高潮喷水抽搐 | 火辣日本少妇 | av在线三区| 让少妇高潮无乱码高清在线观看 | 久久在精品线影院 | 被窝影院午夜无码国产 | 欧美成人精品一区二区综合a片 | 成人午夜爽爽爽免费视频 | 麻豆亚洲一区 | 麻豆一区二区三区在线观看 | 中国女人黄色大片 | 天堂а√在线最新版中文 | 日韩在线观看免费 | 国产又色又爽又黄的视频在线观看 | 性色a码一区二区三区天美传媒 | 欧美精品黄| 日韩精品久久一区 | 国产精品综合一区二区三区 | 97久久香蕉国产线看观看 | 久久久av片 | 97人人模人人爽人人喊电影 | 91中文在线| 国产亚洲精品久久久999 | 蜜乳av一区二区三区 | 国产男女无遮挡 | 免费无码av一区二区 | 精品国产亚洲一区二区三区 | 丝袜a∨在线一区二区三区不卡 | 午夜精品久久久久久久99芒果 | 九九视频一区 | 亚洲欧美一二三区 | 亚洲综合区小说区激情区 | 肉嫁高柳在线 | 丁香五月亚洲综合深深爱 | 中文字幕精品在线观看 | 亚洲国产av玩弄放荡人妇系列 | 国产精品高潮久久 | 欧美日韩色图 | 多人伦交性欧美 | 92国产精品午夜福利无毒不卡 | 4438xx亚洲五月最大丁香 | 国产乱对白刺激视频 | 欧美67194 | 国产精品国产三级国产 | 色婷婷综合成人av | 日韩一级成人 | 日本人六九视频 | 亚洲中文字幕无码久久2020 | 国产va在线观看免费 | 欧美成人四级hd版 | 国产做爰xxx18在线观看网站 | 国产精东天美av影业传媒 | 一区二区亚洲精品国产精华液 | 极品少妇久久久 | 国产精品久久精品第一页 | 国产成人无码专区 | 亚洲永久免费网站 | a在线亚洲男人的天堂 | 午夜乱人伦精品视频在线 | 国产99视频精品免费视看6 | 欧美巨大丰满少妇xxxx人 | 欧美精品 日韩 | 久久社区 | 日韩av无码成人无码免费 | 久久精品国产99国产精品导航 | 亚洲天天影视 | av草逼| 久久久成人精品 | 中文人妻无码一区二区三区在线 | 久9re热视频这里只有精品 | 日本大乳久久动漫 | av加勒比| 日韩欧美高清 | 亚洲国产精品无码久久久蜜芽 | 日本高清在线一区二区三区 | 久久精品国产av一区二区三区 | 亚洲婷婷天堂 | 天堂а√在线最新版在线 | 午夜免费福利在线观看 | 色综合中文网 | 日韩精品亚洲aⅴ在线影院 看美女毛片 | 国产 制服丝袜 动漫在线 | 五月婷亚洲 | 精品国产aⅴ麻豆 | 极品粉嫩嫩模大尺度无码 | 日本黄视频网站 | 深夜福利你懂的 | 亚洲综合网站精品一区二区 | 亚洲欧美综合在线中文 | 国产偷久久一区精品69 | 少妇被又大又粗又爽毛片久久黑人 | 无码精品人妻一区二区三区人妻斩 | 中国三级视频 | 巨胸美乳无码人妻视频 | 国产成人av网站 | 国产激情综合在线看 | 国产自产v一区二区三区c | 精品国产高清自在线一区二区 | 日韩欧美黄色大片 | 国产毛片不卡 | 亚洲国产婷婷六月丁香 | 亚洲人成在线免费观看 | 黄瓜视频在线免费观看 | 日韩免费大片 | 日韩精品一区二区av在线 | 99re免费 | 无码国产玉足脚交极品网站 | www在线| www.九色91| 九色porny视频 | av免费播放一区二区三区 | 精品亚洲国产成人 | 日韩av免费一区 | 99re6在线观看国产精品 | 色诱久久av | 欧美自拍视频 | 欧美视频一二区 | 欧美黄色a视频 | 国产综合第一页 | 色中色综合 | 无码内射成人免费喷射 | 成人毛片在线播放器 | 成人午夜视频免费 | 免费观看早川濑里奈av | 91无人区码一二三四区别在哪 | 无码人妻丰满熟妇区免费 | xxx国产在线观看 | 日韩欧美精品有码在线洗濯屋 | 欧美人与性动交a欧美精品 琪琪午夜伦埋影院77 | 视频一区在线观看 | 中文字幕交换夫妇ntr从窗户 | 少妇与公做了夜伦理69 | 天天综合91 | 在线观看成人小视频 | 欧美 亚洲 丝袜 清纯 中文 | 日韩在线网址 | 深夜免费福利网站 | 97久久超碰国产精品旧版麻豆 | 伊人加勒比 | 免费女同毛片在线观看 | а天堂中文最新版在线 | 99视频这里有精品 | 国产毛片久久久久久 | 亚洲精品一卡2卡三卡4卡5卡 | 国产成人福利在线视频播放下载 | 亚洲精品国产欧美 | 国产精品视频一区二区三区无码 | 亚洲欧洲日产国码无码久久99 | 在线视频欧美日韩 | 欧美激情论坛 | 欧美日本激情 | 欧美亚洲自偷自偷图片 | 香蕉视频在线精品视频 | 伊人色av | 日本三级小视频 | 国产欧美日韩综合在线成 | 干漂亮牛仔裤少妇 | 自拍偷拍色 | 天堂av免费 | 人妻中文字系列无码专区 | 国产视频18 | 春色校园激情综合在线 | 日本精品婷婷久久爽一下 | 国产视频你懂的 | 波多野结衣高清一区二区三区 | 色综合av社区男人的天堂 | 成人小视频在线免费观看 | 2021精品高清卡1卡2卡3老狼 | 国产精品区一区二区三在线播放 | 蜜臀久久精品99国产精品日本 | 久久伊人影院 | 国产精品又黄又爽又色无遮挡 | 国产三级在线观看完整版 | 久久www免费人成看片入口 | 久激情内射婷内射蜜桃人妖 | 九一黄色| 久久伊人色av天堂九九 | 蜜桃av一区二区三区www | www.youjizz.com在线观看 | 亚洲精品欧美二区三区中文字幕 | 真人做人试看60分钟免费视频 | 免费人成在线观看网站品善网 | 亚洲国产精品成人综合久久久久久久 | 国产精品12区 | 国产日韩精品视频一区二区三区 | 亚洲日产韩国一二三四区 | 国自产拍偷拍精品啪啪 | 98国产精品午夜免费福利视频 | 欧美性黑人极品hd变态 | 久久久精品一区aaa片 | 国产激情在线看 | 在线免费视频你懂的 | 国产成人在线免费观看 | 国产精品无码av片在线观看播放 | 在线成人小视频 | 国产精品夜夜嗨视频免费视频 | 思思九九 | 国产精品三级av三级av三级 | 豆国产93在线 | 亚洲 | 少妇无码av无码一区 | 天堂色在线 | 欧美精欧美乱码一二三四区 | 亚洲日韩午夜av不卡在线观看 | 国产美女遭强高潮免费 | 成人无码嫩草影院 | 午夜院线 | 免费人成视频欧美 | 欧美浓毛大泬视频 | 欧美人与动xxxxz0oz视频 |