日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

char java 回文_LeetCode刷题笔记(Java)---第1-18题

發(fā)布時(shí)間:2023/12/2 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 char java 回文_LeetCode刷题笔记(Java)---第1-18题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目來(lái)自LeetCode

文章目錄

全部章節(jié)

1-18題

19-40題

41-60題

61-80題

81-100題

101-120題

121-140題

1.兩數(shù)之和

2.兩數(shù)相加

3.無(wú)重復(fù)字符串的最長(zhǎng)子串

4.尋找兩個(gè)有序數(shù)組的中位數(shù)

5.最長(zhǎng)回文子串

6.Z 字形變換

7.整數(shù)反轉(zhuǎn)

8.字符串轉(zhuǎn)換整數(shù) (atoi)

9.回文數(shù)

10.正則表達(dá)式匹配

11.盛最多水的容器

12.整數(shù)轉(zhuǎn)羅馬數(shù)字

13.羅馬數(shù)字轉(zhuǎn)整數(shù)

14.最長(zhǎng)公共前綴

15.三數(shù)之和

16.最接近的三數(shù)之和

17.電話號(hào)碼的字母組合

18. 四數(shù)之和

全部章節(jié)

1-18題

19-40題

41-60題

61-80題

81-100題

101-120題

121-140題

1.兩數(shù)之和

給定一個(gè)整數(shù)數(shù)組nums和一個(gè)目標(biāo)值target,請(qǐng)你在該數(shù)組中找出和為目標(biāo)值的那兩個(gè)整數(shù),并返回他們的數(shù)組下標(biāo)。

你可以假設(shè)每種輸入只會(huì)對(duì)應(yīng)一個(gè)答案。但是,你不能重復(fù)利用這個(gè)數(shù)組中同樣的元素。

示例:

解答:

private static int[] twoSum(int[] nums, int target) {

int[] indexs = new int[2];

Map map = new HashMap<>();

for (int i = 0; i < nums.length; i++) {

if (map.containsKey(nums[i])) {

indexs[0] = i;

indexs[1] = map.get(nums[i]);

return indexs;

}

map.put(target - nums[i], i);

}

return indexs;

}

分析:

1.需要1個(gè)長(zhǎng)度為2的數(shù)組來(lái)保存符合條件的組合下標(biāo)。

2.因?yàn)樗械臄?shù)值只能使用一次,那么就需要記錄下每一個(gè)數(shù)與目標(biāo)數(shù)值的差,以及它的下標(biāo)。可以利用HashMap來(lái)實(shí)現(xiàn)。差作為key,下標(biāo)作為value。

過(guò)程:

只需要一層循環(huán)遍歷HashMap中是否包含原給定數(shù)組中的數(shù)值,若有,則記錄下該數(shù)值的下標(biāo),以及此時(shí)HashMap中該數(shù)值的所對(duì)應(yīng)的value,這個(gè)value就是滿足條件的另一個(gè)原給定數(shù)組中的數(shù)值所對(duì)應(yīng)的下標(biāo)。

若沒(méi)有,則將目標(biāo)值減去該數(shù)值的結(jié)果作為key,該數(shù)值的下標(biāo)作為value添加到HashMap中。

2.兩數(shù)相加

給出兩個(gè)非空的鏈表用來(lái)表示兩個(gè)非負(fù)的整數(shù)。其中,它們各自的位數(shù)是按照逆序的方式存儲(chǔ)的,并且它們的每個(gè)節(jié)點(diǎn)只能存儲(chǔ)一位數(shù)字。

如果,我們將這兩個(gè)數(shù)相加起來(lái),則會(huì)返回一個(gè)新的鏈表來(lái)表示它們的和。

您可以假設(shè)除了數(shù)字0之外,這兩個(gè)數(shù)都不會(huì)以0開(kāi)頭。

示例:

解答:

private ListNode addTwoNumbers(ListNode l1, ListNode l2) {

ListNode root = new ListNode(0);

ListNode cursor = root;

int carry = 0;

while (l1 != null || l2 != null || carry != 0) {

int l1Val = l1 != null ? l1.val : 0;

int l2Val = l2 != null ? l2.val : 0;

int sumVal = l1Val + l2Val + carry;

carry = sumVal / 10;

ListNode sumNode = new ListNode(sumVal % 10);

cursor.next = sumNode;

cursor = sumNode;

if (l1 != null) l1 = l1.next;

if (l2 != null) l2 = l2.next;

}

return root.next;

}

分析:

1.為了保存兩數(shù)相加的結(jié)果新建一個(gè)頭結(jié)點(diǎn)root與尾指針cursor,初始指向頭結(jié)點(diǎn)。

2.設(shè)置一個(gè)進(jìn)位標(biāo)示位carry,初始位0,用于記錄是否進(jìn)位。

3.循環(huán)條件判斷:初始給定的兩個(gè)鏈表若有一條沒(méi)遍歷結(jié)束,或者進(jìn)位標(biāo)示位不為0。

過(guò)程:

根據(jù)循環(huán)條件判斷是否繼續(xù)執(zhí)行,判斷此時(shí)鏈表1與鏈表2是否為空,若為空則此時(shí)的值為0,若不為空,則記錄該值分別為l1val與l2val,將l1val、l2val、carry相加。判斷是否進(jìn)位,若進(jìn)位carry=1,否則=0。新建一個(gè)結(jié)點(diǎn),將求和值除以10的余數(shù)記錄下來(lái)。使用尾插法,將該結(jié)點(diǎn)插入到尾指針?biāo)赶蛑羔樀暮竺妗8挛仓羔樀奈恢谩W詈蠓祷仡^結(jié)點(diǎn)之后的鏈表即為結(jié)果。

3.無(wú)重復(fù)字符串的最長(zhǎng)子串

給定一個(gè)字符串,請(qǐng)你找出其中不含有重復(fù)字符的最長(zhǎng)子串的長(zhǎng)度。

示例 1:

示例 2:

示例 3:

解答:

private static int lengthOfLongestSubstring(String s) {

int maxLength = 0;

char[] chars = s.toCharArray();

int leftIndex = 0;

for (int j = 0; j < chars.length; j++) {

for (int innerIndex = leftIndex; innerIndex < j; innerIndex++) {

if (chars[innerIndex] == chars[j]) {

maxLength = Math.max(maxLength, j - leftIndex);

leftIndex = innerIndex + 1;

break;

}

}

}

return Math.max(chars.length - leftIndex, maxLength);

}

分析

1.需要一個(gè)最長(zhǎng)記錄標(biāo)示,初始為0

2.將字符串轉(zhuǎn)成字符數(shù)組

3.用于標(biāo)記已找到最長(zhǎng)子串,不用再判斷該標(biāo)記之前的部分。

過(guò)程

外層循環(huán)從0到字符串長(zhǎng)度,用于從固定長(zhǎng)度的字符串中找出最長(zhǎng)的不重復(fù)的子串。

內(nèi)層循環(huán)從標(biāo)記位開(kāi)始到此次外層循環(huán)限定的長(zhǎng)度,判斷這個(gè)范圍內(nèi)的最長(zhǎng)子串。因?yàn)橥鈱友h(huán)是逐一擴(kuò)大的,所以只需要判斷內(nèi)層循環(huán)中的字符與外層循環(huán)限定的那個(gè)位置的字符是否相同,即可判斷出字符串是否有重復(fù)。若有重復(fù)的字符出現(xiàn),記錄此時(shí)的長(zhǎng)度 j(外層循環(huán)限定位置)-leftIndex(標(biāo)志位)。判斷此時(shí)的長(zhǎng)度與最大記錄的長(zhǎng)度,保留最大者。修改標(biāo)志位leftIndex=出現(xiàn)重復(fù)字符串的位置innerIndex+1。結(jié)束內(nèi)層循環(huán)。

直到外層循環(huán)結(jié)束。判斷 (字符串長(zhǎng)度-標(biāo)志位)與記錄的最大長(zhǎng)度的大小。返回較大者即為結(jié)果。

4.尋找兩個(gè)有序數(shù)組的中位數(shù)

給定兩個(gè)大小為m和n的有序數(shù)組nums1和nums2。

請(qǐng)你找出這兩個(gè)有序數(shù)組的中位數(shù),并且要求算法的時(shí)間復(fù)雜度為 O(log(m + n))。

你可以假設(shè)nums1和nums2不會(huì)同時(shí)為空。

示例1

示例2

解答

public double findMedianSortedArrays(int[] nums1, int[] nums2) {

int m = nums1.length;

int n = nums2.length;

int left = (m + n + 1) / 2;

int right = (m + n + 2) / 2;

return (findKth(nums1, 0, nums2, 0, left) + findKth(nums1, 0, nums2, 0, right)) / 2.0;

}

public int findKth(int[] nums1, int i, int[] nums2, int j, int k) {

if (i >= nums1.length) return nums2[j + k - 1];

if (j >= nums2.length) return nums1[i + k - 1];

if (k == 1) {

return Math.min(nums1[i], nums2[j]);

}

int midVal1 = (i + k / 2 - 1 < nums1.length) ? nums1[i + k / 2 - 1] : Integer.MAX_VALUE;

int midVal2 = (j + k / 2 - 1 < nums2.length) ? nums2[j + k / 2 - 1] : Integer.MAX_VALUE;

if (midVal1 < midVal2) {

return findKth(nums1, i + k / 2, nums2, j, k - k / 2);

} else {

return findKth(nums1, i, nums2, j + k / 2, k - k / 2);

}

}

分析

1.數(shù)組長(zhǎng)度為奇數(shù),則中位數(shù)是最中間的值;為偶數(shù),則是最中間兩個(gè)值相加/2。

2.考慮到時(shí)間復(fù)雜度的要求,使用二分查找法。

3.因?yàn)椴淮_定奇數(shù)還是偶數(shù),所以求兩個(gè)第k個(gè)值的平均數(shù)。初始兩個(gè)k分別設(shè)為(m+n+1)/2 與 (m+n+2)/2。若m+n為奇數(shù),則兩個(gè)k相同,相加求平均等于自身;若m+n為偶數(shù),則兩個(gè)k不相同,即為最中間的兩個(gè)數(shù)求平均。

4.難點(diǎn)在于如何求第k個(gè)值,具體看下面過(guò)程。

過(guò)程

尋找第k個(gè)值的方法參數(shù)一共5個(gè):

int[] nums1, int i, int[] nums2, int j, int k

分別表示第一個(gè)數(shù)組,第一個(gè)數(shù)組起始搜索位置,第二個(gè)數(shù)組,第二個(gè)數(shù)組起始搜索位置,要尋找的目標(biāo)第k個(gè)。

首先判斷第一個(gè)數(shù)組的起始位置是否超過(guò)數(shù)組長(zhǎng)度,若超出則不需要考慮第一個(gè)數(shù)組,直接返回第二個(gè)數(shù)組中下標(biāo)為 j+k-1 的數(shù)值,即為要找的第k個(gè)。減1是因?yàn)閿?shù)組的下標(biāo)起始是0不是1。

同理判斷第二個(gè)數(shù)組的起始位置是否超過(guò)數(shù)組長(zhǎng)度,若超過(guò)則不需要考慮第二個(gè)數(shù)組,直接返回第二個(gè)數(shù)組中下標(biāo)為 i+j-1 的數(shù)值。

然后分別計(jì)算兩個(gè)數(shù)組中第k/2個(gè)值的大小,記錄為midval1與midval2。數(shù)組不存在第k/2數(shù)值,則設(shè)置為無(wú)限大。比較midval1midval2的大小,若midval1小,則說(shuō)明數(shù)組1中前k/2個(gè)數(shù)值中沒(méi)有要找的那個(gè)數(shù)字。

遞歸調(diào)用此方法,更新參數(shù) 數(shù)組1中的起始位置為 i + k/2,k的值更新為 k-k/2。

同理若midval2小,則遞歸調(diào)用此方法,更新參數(shù) 數(shù)組2中的起始位置為 j + k/2,k的值更新為 k-k/2

遞歸出口還缺一個(gè),當(dāng)k = 1時(shí),則返回兩個(gè)數(shù)組起始位置的值中較小的那一個(gè)。

5.最長(zhǎng)回文子串

給定一個(gè)字符串s,找到s中最長(zhǎng)的回文子串。你可以假設(shè)s的最大長(zhǎng)度為1000。

示例1:

示例2:

解答

public String longestPalindrome(String s) {

if (s == null || s.length() == 0)

return "";

if (s.length() == 1)

return s;

int size = s.length();

int maxLen = 1;

int start = 0;

int[][] memo = new int[size][size];

char[] chars = s.toCharArray();

for (int i = 0; i < size; i++) {

memo[i][i] = 1;

if (i < size - 1 && chars[i] == chars[i + 1]) {

memo[i][i + 1] = 1;

start = i;

maxLen = 2;

}

}

for (int L = 3; L <= size; L++) {

for (int i = 0; i + L - 1 < size; i++) {

int j = L + i - 1;

if (chars[i] == chars[j] && memo[i + 1][j - 1] == 1) {

memo[i][j] = 1;

start = i;

maxLen = L;

}

}

}

return s.substring(start, start + maxLen);

}

分析

1.理解回文的意思,一個(gè)字符串正序讀與反序讀結(jié)果是一樣的稱為回文字符串。

2.采用DP的思想將復(fù)雜的問(wèn)題分解成許多子問(wèn)題。利用一張表來(lái)記錄之前問(wèn)題的結(jié)果。

3.一個(gè)長(zhǎng)的字符串直接很難判斷出最長(zhǎng)的回文子串,可以縮小范圍,限定字符串的長(zhǎng)度,再小范圍內(nèi)找最長(zhǎng)回文子串是容易的。并且回文子串(長(zhǎng)度大于2)去掉收尾也一定是一個(gè)回文子串。

過(guò)程

首先求得給出字符串的長(zhǎng)度size,設(shè)置maxLen標(biāo)示,用于記錄最長(zhǎng)回文子串的長(zhǎng)度,回文子串的起始位置為0,創(chuàng)建大小為size*size的數(shù)組,用于記錄解決的子問(wèn)題。

第一個(gè)for循環(huán)就是解決的最小的子問(wèn)題,尋找長(zhǎng)度為2的回文子串。memo[i][i]=1,是因?yàn)橐粋€(gè)字符屬于長(zhǎng)度為1的回文子串。若有相鄰字符一致,說(shuō)明找到長(zhǎng)度為2的回文子串,將其位置記錄在二維數(shù)組中,memo[i][i + 1] = 1;記錄該回文子串的起始位置與長(zhǎng)度。

第二個(gè)兩層循環(huán)用于解決長(zhǎng)度為3到給定字符串長(zhǎng)度范圍內(nèi)的最長(zhǎng)回文子串。外層循環(huán)從L=3開(kāi)始,因?yàn)殚L(zhǎng)度為2的問(wèn)題在前一個(gè)循環(huán)中已經(jīng)解決。內(nèi)層循環(huán)從字符串起始位置0開(kāi)始。設(shè) j = L + i - 1 ,表示長(zhǎng)度為L(zhǎng),起始位置為i的字符串最末尾的字符的位置。判斷長(zhǎng)度為L(zhǎng)的字符串收尾是否一致chars[i] == chars[j],若一致并且其去掉收尾滿足回文子串(memo[i + 1][j - 1] == 1),則說(shuō)明找到更長(zhǎng)的回文子串。此時(shí)在二維數(shù)組中記錄找到回文子串的位置(memo[i][j] = 1),記錄該子串的起始位置與長(zhǎng)度。

循環(huán)結(jié)束后即可得到最長(zhǎng)回文子串的起始位置與最大的長(zhǎng)度。

6.Z 字形變換

將一個(gè)給定字符串根據(jù)給定的行數(shù),以從上往下、從左到右進(jìn)行Z字形排列。

比如輸入字符串為"LEETCODEISHIRING"行數(shù)為3時(shí),排列如下:

之后,你的輸出需要從左往右逐行讀取,產(chǎn)生出一個(gè)新的字符串,比如:“LCIRETOESIIGEDHN”。

請(qǐng)你實(shí)現(xiàn)這個(gè)將字符串進(jìn)行指定行數(shù)變換的函數(shù):

示例1:

示例2:

解答

public static String convert(String s, int numRows) {

char[] chars = s.toCharArray();

if (numRows == 1)

return s;

int step = numRows * 2 - 2;

StringBuffer buffer = new StringBuffer();

for (int i = 0; i < s.length(); i += step)

buffer.append(chars[i]);

for (int i = 1; i < numRows - 1; i++) {

for (int j = i; j < s.length(); ) {

buffer.append(chars[j]);

j += ((numRows - i) * 2 - 2);

if (j < s.length()) {

buffer.append(chars[j]);

j += 2 * i;

}

}

}

for (int i = numRows - 1; i < s.length(); i += step)

buffer.append(chars[i]);

return buffer.toString();

}

分析:

1.這是一道找規(guī)律的題目,按照輸出順序畫(huà)圖尋找規(guī)律,可以發(fā)現(xiàn)第一行與最后一行相同的規(guī)律,間隔numRows * 2 - 2,中間行是相同的規(guī)律。

2.使用StringBuffer效率上更快

過(guò)程:

按照尋找出的規(guī)律先添加第一行再添加中間行最后是添加最后一行,即可得到結(jié)果。此題比較簡(jiǎn)單。

7.整數(shù)反轉(zhuǎn)

給出一個(gè)32位的有符號(hào)整數(shù),你需要將這個(gè)整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)。

示例1:

示例2:

示例3:

解答

public int reverse(int x) {

long n = 0;

while(x != 0) {

n = n*10 + x%10;

x = x/10;

}

return (int)n==n? (int)n:0;

}

分析

1.限制了整數(shù)的位數(shù)32位,所以用long來(lái)接收整數(shù)反轉(zhuǎn)的結(jié)果,java中int是4個(gè)字節(jié),long是8個(gè)字節(jié)。

2.區(qū)分好“%”與“/”的差別。

3.長(zhǎng)字符轉(zhuǎn)短字符會(huì)有數(shù)據(jù)丟失

過(guò)程

設(shè)置一個(gè)類型為long的標(biāo)志n來(lái)接收答案,每次將n擴(kuò)大10倍留出個(gè)位數(shù)的位置,個(gè)位數(shù)就等于給定整數(shù)x除10取余數(shù),再將x除以10,相當(dāng)于去掉最后一位的數(shù)字。循環(huán)直到x等于0。

8.字符串轉(zhuǎn)換整數(shù) (atoi)

請(qǐng)你來(lái)實(shí)現(xiàn)一個(gè) atoi 函數(shù),使其能將字符串轉(zhuǎn)換成整數(shù)。

首先,該函數(shù)會(huì)根據(jù)需要丟棄無(wú)用的開(kāi)頭空格字符,直到尋找到第一個(gè)非空格的字符為止。

當(dāng)我們尋找到的第一個(gè)非空字符為正或者負(fù)號(hào)時(shí),則將該符號(hào)與之后面盡可能多的連續(xù)數(shù)字組合起來(lái),作為該整數(shù)的正負(fù)號(hào);假如第一個(gè)非空字符是數(shù)字,則直接將其與之后連續(xù)的數(shù)字字符組合起來(lái),形成整數(shù)。

該字符串除了有效的整數(shù)部分之后也可能會(huì)存在多余的字符,這些字符可以被忽略,它們對(duì)于函數(shù)不應(yīng)該造成影響。

注意:假如該字符串中的第一個(gè)非空格字符不是一個(gè)有效整數(shù)字符、字符串為空或字符串僅包含空白字符時(shí),則你的函數(shù)不需要進(jìn)行轉(zhuǎn)換。

在任何情況下,若函數(shù)不能進(jìn)行有效的轉(zhuǎn)換時(shí),請(qǐng)返回 0。

說(shuō)明:

假設(shè)我們的環(huán)境只能存儲(chǔ) 32 位大小的有符號(hào)整數(shù),那么其數(shù)值范圍為 [?231, 231 ? 1]。如果數(shù)值超過(guò)這個(gè)范圍,請(qǐng)返回 INT_MAX (231 ? 1) 或 INT_MIN (?231) 。

示例1:

示例2:

示例3:

示例4:

示例5:

解答

public static int myAtoi(String str) {

long res = 0;

boolean flag = true;

int f = -1;

char[] c = str.toCharArray();

for (int i = 0; i < c.length; i++) {

if (f == -1 && (c[i] == '-' || c[i] == '+')) {

flag = c[i] == '-' ? false : true;

f = 1;

} else if (Character.isDigit(c[i])) {

res = res * 10 + (c[i] - '0');

if (res > Integer.MAX_VALUE) {

if (!flag) return Integer.MIN_VALUE;

return Integer.MAX_VALUE;

}

f = 1;

} else if (c[i] >= 32) {

if (f == -1 && c[i] == ' ') continue;

break;

}

}

return flag == true ? (int) res : (int) -res;

}

分析

1.此題根據(jù)給出的例子編寫(xiě)、修改程序即可

2.設(shè)置一個(gè)標(biāo)示位,用來(lái)說(shuō)明正負(fù)數(shù)

3.需要使用long類型來(lái)接收截取到的數(shù)據(jù),防止溢出

4.java中char類型與int類型的比較是根據(jù)ASCII表進(jìn)行的。參考表下面給出。

5.java中char類型與int類型的轉(zhuǎn)換:

int類型轉(zhuǎn)char類型,將數(shù)字加一個(gè)’0’

char類型轉(zhuǎn)int類型,將數(shù)字減一個(gè)’0’

ASCII表如下:

過(guò)程

準(zhǔn)備工作,將字符串轉(zhuǎn)char數(shù)組,設(shè)置一個(gè)正負(fù)數(shù)標(biāo)示位,確認(rèn)是否是數(shù)字的標(biāo)示位,以及用于接收答案的long類型的數(shù)據(jù)。

開(kāi)始遍歷轉(zhuǎn)換后的char數(shù)組,判斷是否有正負(fù)號(hào)存在,如果有則修改正負(fù)數(shù)標(biāo)示位,并將數(shù)字標(biāo)示位置1。如果沒(méi)有進(jìn)入下一個(gè)if判斷,是否是數(shù)字,如果是則接收這一位,(利用char轉(zhuǎn)int的方式再結(jié)合已得到的答案),接收完后判斷是否越界,之后將數(shù)字標(biāo)示位置1。如果不是數(shù)字則進(jìn)入下一個(gè)if判斷,因?yàn)榭崭駥?duì)應(yīng)的ASCII碼是32,其他字母也均大于32,所以判斷該位字符是否大于32,如果大于32,繼續(xù)判斷,如果該字符是空格,并還未找到數(shù)字,則跳過(guò)此次循環(huán)進(jìn)入下一輪循環(huán),若不滿足此條件則結(jié)束遍歷。

最后根據(jù)正負(fù)數(shù)標(biāo)示位來(lái)返回所要的答案。

9.回文數(shù)

判斷一個(gè)整數(shù)是否是回文數(shù)。回文數(shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù)。

示例1:

示例2:

示例3:

解答

public boolean isPalindrome(int x) {

String s = "" + x;

char[] chars = s.toCharArray();

int len = chars.length;

for (int i = 0; i < len / 2; i++) {

if (chars[i] != chars[len - i - 1])

return false;

}

return true;

}

public boolean isPalindromeTwo(int x) {

int a = x;

if (x < 0) {

return false;

}

if (x < 10) {

return true;

}

if (x % 10 == 0) {

return false;

}

int t = 0;

while (x > 0) {

t = t * 10 + x % 10;

x /= 10;

}

return t == a;

}

分析:

1.相比較之前的尋找最長(zhǎng)回文子串簡(jiǎn)單很多。

2.想法1比較收尾是否一致。

3.想法2小于0的整數(shù)不用管,0-9的整數(shù)必定是回文數(shù),個(gè)位數(shù)為0的必定不是回文數(shù),除此之外的數(shù)字倒轉(zhuǎn)與原數(shù)字比較即可。

過(guò)程:

10.正則表達(dá)式匹配

給你一個(gè)字符串 s 和一個(gè)字符規(guī)律 p,請(qǐng)你來(lái)實(shí)現(xiàn)一個(gè)支持 ‘.’ 和 ‘*’ 的正則表達(dá)式匹配。

‘.’ 匹配任意單個(gè)字符

‘*’ 匹配零個(gè)或多個(gè)前面的那一個(gè)元素

所謂匹配,是要涵蓋 整個(gè) 字符串 s的,而不是部分字符串。

說(shuō)明:

s 可能為空,且只包含從 a-z 的小寫(xiě)字母。

p 可能為空,且只包含從 a-z 的小寫(xiě)字母,以及字符 . 和 *。

示例1:

示例2:

示例3:

示例4:

示例5:

解答

public boolean isMatch(String s, String p) {

if(s==null || p==null)return false;

char[] sc=s.toCharArray();

char[] pc=p.toCharArray();

return dp(sc,pc,0,0);

}

boolean dp(char[] s,char[] p,int i,int j){

int n=s.length;

int m=p.length;

if(j>=m) return i==n;

boolean j_match=i

if(j+1

return dp(s,p,i,j+2)||(j_match &&dp(s,p,i+1,j));

}

return j_match && dp(s,p,i+1,j+1);

}

分析

1.重點(diǎn)是兩條匹配規(guī)則,’.‘代表任意字符,理解為a-z均可匹配;’'匹配之前的任意多個(gè)之前的一個(gè)字符。相當(dāng)于復(fù)制任意份,可以是0。例如a,則可以表示“”或“aa”或“aaaaaa”任意多個(gè)a。

2.重點(diǎn)是如何匹配第二條規(guī)則。拆解第二條規(guī)則則就兩種情況,要么匹配0個(gè),要么匹配多個(gè),匹配多個(gè)則可以先考慮匹配一個(gè),利用遞歸來(lái)匹配接下來(lái)的。

過(guò)程

將字符串轉(zhuǎn)數(shù)組,起始比較位置從每個(gè)數(shù)組下標(biāo)“0”開(kāi)始。首先判斷第一個(gè)字符的匹配結(jié)果。接著if判斷p規(guī)則數(shù)組的下一位是否是 “ * ” 號(hào),如果是則根據(jù) “ * ” 規(guī)則,第一種情況匹配0個(gè),則i不變,即待匹配數(shù)組不變,j+2,則說(shuō)明從符號(hào) “ * ” 之后開(kāi)始與待匹配數(shù)組匹配,遞歸調(diào)用dp方法繼續(xù)匹配;第二種情況是匹配任意個(gè),因?yàn)椴淮_定匹配多少個(gè),所以i+1,j不變,表示匹配到一位字符,遞歸調(diào)用dp方法匹配之后的字符。第二種情況要考慮到第一個(gè)字符匹配的結(jié)果是否一致,如果一致,則就是要看之后還有多少個(gè)相同的字符匹配。

若不滿足if條件則遞歸調(diào)用匹配兩個(gè)數(shù)字各自的下一位,結(jié)合上第一個(gè)字符匹配的結(jié)果。

還要考慮一個(gè)問(wèn)題,若規(guī)則數(shù)組的起始位置已經(jīng)超出了規(guī)則數(shù)組的長(zhǎng)度,則直接返回待匹配數(shù)組的起始位置是否與其長(zhǎng)度一致即可。

11.盛最多水的容器

給定 n 個(gè)非負(fù)整數(shù) a1,a2,…,an,每個(gè)數(shù)代表坐標(biāo)中的一個(gè)點(diǎn) (i, ai) 。在坐標(biāo)內(nèi)畫(huà) n 條垂直線,垂直線 i 的兩個(gè)端點(diǎn)分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構(gòu)成的容器可以容納最多的水。

說(shuō)明:你不能傾斜容器,且 n 的值至少為 2。

圖中垂直線代表輸入數(shù)組 [1,8,6,2,5,4,8,3,7]。在此情況下,容器能夠容納水(表示為藍(lán)色部分)的最大值為 49。

示例:

解答

public int maxArea(int[] height) {

int left = 0;

int right = height.length - 1;

int res = 0;

if (height.length < 2)

return -1;

while (left < right) {

res = Math.max(res, Math.min(height[left], height[right]) * (right - left));

if (height[left] < height[right])

left++;

else right--;

}

return res;

}

分析

1.此題最簡(jiǎn)單無(wú)腦的解法用暴力解決。

2.也可以使用動(dòng)態(tài)規(guī)劃的思想,比較已知解與變更狀態(tài)后的解。而這里狀態(tài)的變更就是垂線位置的改變。

3.可以先設(shè)置兩個(gè)變量表示數(shù)組的開(kāi)始與結(jié)尾。根據(jù)Math.min(height[left], height[right]) * (right - left)

可以求得第一個(gè)解,接下來(lái)就要考慮垂線如何移動(dòng)。很顯然一個(gè)容器能裝多少的水取決于底部長(zhǎng)度與較短一端有關(guān)。因?yàn)橐婚_(kāi)始已經(jīng)將底部設(shè)置最大,若要改變垂線,那么底部長(zhǎng)度是必然減小的,所以要盡量的使垂線更長(zhǎng),比較height[left],height[right],選擇短的一端向另一端移動(dòng)。

過(guò)程

設(shè)置變量left指向數(shù)組下標(biāo)0的位置,right指向數(shù)組末尾。因?yàn)橐蟮膎至少為2,所以要判斷給的數(shù)組是否滿足長(zhǎng)度大于2。接下來(lái)就是計(jì)算最大的面積。面積等于Math.max(res, Math.min(height[left], height[right]) * (right - left)),根據(jù)上面分析的3更新left/right。直到循環(huán)結(jié)束。

12.整數(shù)轉(zhuǎn)羅馬數(shù)字

羅馬數(shù)字包含以下七種字符: I, V, X, L,C,D 和 M。

字符 數(shù)值

I 1

V 5

X 10

L 50

C 100

D 500

M 1000

例如, 羅馬數(shù)字 2 寫(xiě)做 II ,即為兩個(gè)并列的 1。12 寫(xiě)做 XII ,即為 X + II 。 27 寫(xiě)做 XXVII, 即為 XX + V + II 。

通常情況下,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。但也存在特例,例如 4 不寫(xiě)做 IIII,而是 IV。數(shù)字 1 在數(shù)字 5 的左邊,所表示的數(shù)等于大數(shù) 5 減小數(shù) 1 得到的數(shù)值 4 。同樣地,數(shù)字 9 表示為 IX。這個(gè)特殊的規(guī)則只適用于以下六種情況:

I 可以放在 V (5) 和 X (10) 的左邊,來(lái)表示 4 和 9。

X 可以放在 L (50) 和 C (100) 的左邊,來(lái)表示 40 和 90。

C 可以放在 D (500) 和 M (1000) 的左邊,來(lái)表示 400 和 900。

給定一個(gè)整數(shù),將其轉(zhuǎn)為羅馬數(shù)字。輸入確保在 1 到 3999 的范圍內(nèi)。

示例1:

示例2:

示例3:

示例4:

示例5:

解答

public String intToRoman(int num) {

int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};

String[] m = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};

StringBuilder builder = new StringBuilder();

for (int i = 0; i < 13; i++) {

while (num >= values[i]){

num -= values[i];

builder.append(m[i]);

}

}

return builder.toString();

}

分析

1.因?yàn)榕袛嗟臈l件很多,情況也很多種,所以可以事先將所有的判斷要用到的條件以及情況都先保存在數(shù)組中。

2.StringBuilder效率更高。

過(guò)程

準(zhǔn)備好情況與條件判斷所需的數(shù)據(jù),開(kāi)始遍歷,一共13種情況,在每一次的迭代中,判斷更新答案即可。此題較為簡(jiǎn)單。

13.羅馬數(shù)字轉(zhuǎn)整數(shù)

羅馬數(shù)字包含以下七種字符: I, V, X, L,C,D 和 M。

字符 數(shù)值

I 1

V 5

X 10

L 50

C 100

D 500

M 1000

例如, 羅馬數(shù)字 2 寫(xiě)做 II ,即為兩個(gè)并列的 1。12 寫(xiě)做 XII ,即為 X + II 。 27 寫(xiě)做 XXVII, 即為 XX + V + II 。

通常情況下,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。但也存在特例,例如 4 不寫(xiě)做 IIII,而是 IV。數(shù)字 1 在數(shù)字 5 的左邊,所表示的數(shù)等于大數(shù) 5 減小數(shù) 1 得到的數(shù)值 4 。同樣地,數(shù)字 9 表示為 IX。這個(gè)特殊的規(guī)則只適用于以下六種情況:

I 可以放在 V (5) 和 X (10) 的左邊,來(lái)表示 4 和 9。

X 可以放在 L (50) 和 C (100) 的左邊,來(lái)表示 40 和 90。

C 可以放在 D (500) 和 M (1000) 的左邊,來(lái)表示 400 和 900。

給定一個(gè)羅馬數(shù)字,將其轉(zhuǎn)換成整數(shù)。輸入確保在 1 到 3999 的范圍內(nèi)。

示例1:

示例2:

示例3:

示例4:

示例5:

解答

public static int romanToInt(String s) {

int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};

String[] m = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};

HashMap map = new HashMap<>();

for (int i = 0; i < 13; i++) {

map.put(m[i], values[i]);

}

char[] chars = s.toCharArray();

int res = 0;

int i = 0;

while (i < chars.length) {

if (i + 1 < chars.length)

if (map.containsKey("" + chars[i] + chars[i + 1])) {

res += map.get("" + chars[i] + chars[i + 1]);

i += 2;

continue;

}

if (map.containsKey("" + chars[i])) {

res += map.get("" + chars[i]);

i++;

}

}

return res;

}

分析

1.將不同的符號(hào)與數(shù)值映射,保存在hashmap中

2.遍歷字符串字符,找到hashmap中存在的符號(hào),進(jìn)行結(jié)果疊加。

過(guò)程

準(zhǔn)備工作,將13種情況的字符與數(shù)值映射關(guān)系保存在hashmap中,字符串轉(zhuǎn)為字符數(shù)組。從頭開(kāi)始遍歷字符數(shù)組,找到在hashmap中存在的key,將對(duì)應(yīng)的value加到答案中。直到遍歷結(jié)束。

14.最長(zhǎng)公共前綴

編寫(xiě)一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。

如果不存在公共前綴,返回空字符串 “”。

示例1:

示例2:

解答

public String longestCommonPrefix(String[] strs) {

if (strs == null || strs.length == 0 ) return "";

String reg = strs[0];

for (String str : strs){

while (!str.startsWith(reg)) {

if (reg.length() == 1) {

return "";

}

reg = reg.substring(0, reg.length()-1);

}

}

return reg;

}

分析:

1.以第一個(gè)詞作為前綴的標(biāo)準(zhǔn)

2.遍歷字符串?dāng)?shù)組中的字符串,比較字符串前綴是否相同,修改前綴。

過(guò)程:

首先判斷字符串?dāng)?shù)組是否為空,若空則返回”“。將數(shù)組中第一個(gè)字符串作為當(dāng)作最長(zhǎng)前綴。遍歷數(shù)組中的字符串,判斷字符串前綴是否與已知最長(zhǎng)前綴相同,若前綴的第一個(gè)字符都不相同,則返回””,若前綴不同則逐一縮小最長(zhǎng)前綴。直到遍歷結(jié)束,返回最長(zhǎng)前綴。

15.三數(shù)之和

給你一個(gè)包含 n 個(gè)整數(shù)的數(shù)組 nums,判斷 nums 中是否存在三個(gè)元素 a,b,c ,使得 a + b + c = 0 ?請(qǐng)你找出所有滿足條件且不重復(fù)的三元組。

注意:答案中不可以包含重復(fù)的三元組。

示例:

解答

public static List> threeSum(int[] nums) {

Arrays.sort(nums);

List> result = new ArrayList<>();

for (int i = 0; i < nums.length - 2; i++) {

if (i > 0 && nums[i] == nums[i - 1]) {

continue;

}

int left = i + 1, right = nums.length - 1;

if (nums[i] + nums[left] + nums[left + 1] > 0 || nums[i] + nums[right] + nums[right - 1] < 0) {

continue;

}

while (left < right) {

int sum = nums[i] + nums[left] + nums[right];

if (sum == 0) {

List triple = new ArrayList<>();

triple.add(nums[i]);

triple.add(nums[left]);

triple.add(nums[right]);

result.add(triple);

while (left < --right && nums[right] == nums[right + 1]) ;

while (++left < right && nums[left] == nums[left - 1]) ;

} else if (sum > 0) {

right--;

} else {

left++;

}

}

}

return result;

}

分析

1.先對(duì)數(shù)組進(jìn)行排序,有序的數(shù)組更方便操作。

2.考慮是3個(gè)數(shù)字相加,可以先固定一個(gè)數(shù)字,變更其他兩個(gè)數(shù)字。因?yàn)閿?shù)組有序化,可以設(shè)置兩個(gè)變量分別指向固定數(shù)字的后一位以及數(shù)組的末尾。

3.因?yàn)椴荒苡兄貜?fù)的數(shù)字出現(xiàn),所以第一步的有序就更凸顯出它的用途。排序后的數(shù)組,相同的數(shù)字必定是相鄰的,可以方便的直接掉過(guò)相同的數(shù)字。

過(guò)程

首先將數(shù)組排序,新建一個(gè)List用于接收答案。

選擇固定一個(gè)數(shù)字進(jìn)行遍歷,因?yàn)槊看问侨齻€(gè)數(shù)字相加,所以只需要考慮前n-2個(gè)數(shù)字作為基準(zhǔn)。

每一次的循環(huán),先判斷是否與前一位相同,若相同則跳過(guò)這一個(gè)數(shù)字。設(shè)置兩個(gè)變量指向當(dāng)前基準(zhǔn)數(shù)字的后一位(left)與數(shù)組的最后一位(right)。

因?yàn)閿?shù)組是有序排列的。若基準(zhǔn)數(shù)字加它之后的兩位的和大于0,則不用考慮之后的數(shù)字組合,因?yàn)橹蟮臄?shù)字組合必定大于0;同理基準(zhǔn)數(shù)字加最后倒數(shù)兩個(gè)數(shù)字的和若小于0,則不用考慮之前的數(shù)字組合,必定小于0。

接下來(lái)確定好了基準(zhǔn)數(shù)字后,根據(jù)基準(zhǔn)數(shù)字與其他兩個(gè)數(shù)字的和變更left與right變量。

若三者之和等于0,則將組合添加到答案中。此時(shí)根據(jù)left與后一個(gè)數(shù)字是否相同以及right與其前一位是否相同修改這兩個(gè)變量。因?yàn)椴荒苡兄貜?fù)數(shù)字的組合。

若三者之和大于0,則說(shuō)明太大了,right指向末尾較大數(shù)字一端的變量減一。若三者之和小于0,則left變量加一。

直到left = right。此時(shí)該基準(zhǔn)數(shù)字所有滿足條件的組合已找到,進(jìn)入下一次循環(huán),基準(zhǔn)數(shù)字更換繼續(xù)尋找組合。

循環(huán)結(jié)束后,即可求得答案。

16.最接近的三數(shù)之和

給定一個(gè)包括 n 個(gè)整數(shù)的數(shù)組 nums 和 一個(gè)目標(biāo)值 target。找出 nums 中的三個(gè)整數(shù),使得它們的和與 target 最接近。返回這三個(gè)數(shù)的和。假定每組輸入只存在唯一答案。

例如,給定數(shù)組 nums = [-1,2,1,-4], 和 target = 1.

與 target 最接近的三個(gè)數(shù)的和為 2. (-1 + 2 + 1 = 2).

解答

public int threeSumClosest(int[] nums, int target) {

Arrays.sort(nums);

int res = nums[0] + nums[1] + nums[2];

for (int i = 0; i < nums.length - 2; i++) {

int left = i + 1, right = nums.length - 1;

while (left < right) {

int sum = nums[i] + nums[left] + nums[right];

if (sum == target) return sum;

if (Math.abs(sum - target) < Math.abs(res - target))

res = sum;

if(sum > target)right--;

else left++;

}

}

return res;

}

分析

1.與上一題很相似甚至更簡(jiǎn)單了,只需要找到與目標(biāo)最近的組合。

2.同樣是固定一個(gè)數(shù)字,更改另外兩個(gè)數(shù)字。與上題一樣。

3.res接收與答案最接近的和。

過(guò)程

首先對(duì)數(shù)組進(jìn)行排序,設(shè)置一個(gè)變量用來(lái)保存已經(jīng)找到的最接近目標(biāo)的數(shù)字組合的和。開(kāi)始遍歷,固定一個(gè)數(shù)字,更改另外兩個(gè)數(shù)字,與上一題的過(guò)程類似。若找到的組合結(jié)果已經(jīng)等于目標(biāo)值則返回目標(biāo)值。若組合結(jié)果距離原先已有答案的結(jié)果更接近目標(biāo),則更新答案。

如果組合的和大于目標(biāo),則高位標(biāo)示位向低位移動(dòng)一位,反之則低位向高位移動(dòng)一位。直到循環(huán)結(jié)束。

17.電話號(hào)碼的字母組合

給定一個(gè)僅包含數(shù)字 2-9 的字符串,返回所有它能表示的字母組合。

給出數(shù)字到字母的映射如下(與電話按鍵相同)。注意 1 不對(duì)應(yīng)任何字母。

示例:

解答

static Map digitsMap = new HashMap() {{

put("2", "abc");

put("3", "def");

put("4", "ghi");

put("5", "jkl");

put("6", "mno");

put("7", "pqrs");

put("8", "tuv");

put("9", "wxyz");

}};

static List res = new ArrayList();

static StringBuilder tmp = new StringBuilder();

public static List letterCombinations(String digits) {

if (digits == null) return null;

process(digits, 0);

return res;

}

private static void process(String digits, int index) {

if (index == digits.length()) {

res.add(tmp.toString());

return;

}

String letter = digitsMap.get(digits.substring(index, index + 1));

for (int i = 0; i < letter.length(); i++) {

tmp.append(letter, i, i + 1);

process(digits, index + 1);

//去掉添加的字母,開(kāi)始回溯

tmp.replace(tmp.length() -1, tmp.length(),"");

}

}

分析

1.使用了回朔法,回溯法是一種選優(yōu)搜索法,按選優(yōu)條件向前搜索,以達(dá)到目標(biāo)。但當(dāng)探索到某一步時(shí),發(fā)現(xiàn)原先選擇并不優(yōu)或達(dá)不到目標(biāo),就退回一步重新選擇。

2.要求的答案中的字符串長(zhǎng)度必定和所給數(shù)字的長(zhǎng)度是一致的,設(shè)置一個(gè)index標(biāo)示位,判斷滿足符合長(zhǎng)度的字符串添加的答案中。

3.每次在temp中添加來(lái)自不同字符串的一個(gè)數(shù)字。滿足長(zhǎng)度后,去掉添加的字母開(kāi)始回溯。

過(guò)程

首先準(zhǔn)備好一個(gè)HashMap,保存著數(shù)字與字符串的映射關(guān)系。需要一個(gè)List來(lái)接收答案,StringBuilder tmp,用于構(gòu)造符合條件的字符串。process方法過(guò)程,判斷index表示位是否等于數(shù)字的長(zhǎng)度,若相等則將tmp加入答案中。跳出方法。若不等于,則獲取index下標(biāo)對(duì)應(yīng)的數(shù)字,根據(jù)其映射關(guān)系得到字符串。遍歷字符串,tmp添加字符,遞歸調(diào)用process,是為了從不同的字符串中找組合。最后是去掉添加的字母,開(kāi)始回溯。

18. 四數(shù)之和

給定一個(gè)包含 n 個(gè)整數(shù)的數(shù)組 nums 和一個(gè)目標(biāo)值 target,判斷 nums 中是否存在四個(gè)元素 a,b,c 和 d ,使得 a + b + c + d 的值與 target 相等?找出所有滿足條件且不重復(fù)的四元組。

注意:

答案中不可以包含重復(fù)的四元組。

示例:

解答

public List> fourSum(int[] nums, int target) {

int len = nums.length;

List> res = new ArrayList<>();

if (nums.length < 4) return res;

Arrays.sort(nums);

if (nums[0] > target / 4 || nums[len - 1] < target / 4) return res;

for (int i = 0; i < len; i++) {

if (nums[i] > target / 4) break;

if (i > 0 && nums[i] == nums[i - 1]) continue;

int sum = target - nums[i];

for (int j = i + 1; j < len; j++) {

if (nums[j] > sum / 3) break;

if (j > i + 1 && nums[j] == nums[j - 1]) continue;

int l = j + 1;

int r = len - 1;

while (l < r) {

if (nums[r] < sum / 3) break;

int temp = nums[j] + nums[l] + nums[r];

if (temp == sum) {

res.add(Arrays.asList(nums[i], nums[j], nums[l], nums[r]));

while (l < r && nums[l] == nums[l + 1]) l++;

while (l < r && nums[r] == nums[r - 1]) r--;

l++;

r--;

} else if (temp > sum) {//結(jié)果大了右指針往左

r--;

} else {//結(jié)果小了左指針往右

l++;

}

}

}

}

return res;

}

分析

1.此題在三數(shù)之和的基礎(chǔ)上多了一個(gè)數(shù)字,起始只要多一層循環(huán),遍歷數(shù)組,將target減去nums[i]作為新的target,之后就和三數(shù)之和的過(guò)程一致了。

過(guò)程

首先將數(shù)組排序。判斷最小值是否大于target/4,或最大值是否小于target/4,若滿足則返回空數(shù)組。接著遍歷數(shù)組,每次選擇一個(gè)數(shù)字,將target減去這個(gè)數(shù)字作為新的target,之后就按照3數(shù)之和的方式繼續(xù)進(jìn)行即可。

總結(jié)

以上是生活随笔為你收集整理的char java 回文_LeetCode刷题笔记(Java)---第1-18题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国产香蕉视频在线播放 | av韩国在线 | 免费看黄色毛片 | 人人舔人人干 | 夜色.com| 97在线观看免费视频 | 免费日韩 精品中文字幕视频在线 | 久久久久免费精品视频 | 亚洲天堂网在线视频 | 狠狠的干狠狠的操 | 亚洲夜夜网 | av电影在线免费观看 | 97在线资源 | 狠狠色丁香婷婷综合基地 | 国产高清专区 | 亚洲婷婷综合色高清在线 | 日日操操 | a级一a一级在线观看 | 欧美日在线 | 国产精品女教师 | 在线免费性生活片 | 久久99热这里只有精品 | 免费97视频 | 日韩理论电影在线观看 | 免费福利视频网站 | 欧美国产日韩一区二区 | 97偷拍视频| 香蕉在线观看视频 | 色人久久 | av成人动漫在线观看 | 欧美亚洲精品在线观看 | 成人黄色电影在线播放 | 国产亚洲资源 | 中文字幕在线色 | 亚洲第一区在线播放 | 天天色天天 | 日日射天天射 | 色com | 久久成人黄色 | 国产免费叼嘿网站免费 | 亚洲精品中文字幕视频 | 99久久99久久精品国产片 | 日韩欧美视频在线观看免费 | 亚洲黄色av网址 | 综合国产在线观看 | 久久久久久久久免费视频 | 久久久精品网站 | 中文字幕永久在线 | 亚洲国产黄色片 | 亚洲综合爱 | 最近日本字幕mv免费观看在线 | 成人午夜免费剧场 | 亚洲电影免费 | 日本婷婷色| 在线看免费 | 日韩女同一区二区三区在线观看 | 国产伦理久久精品久久久久_ | 在线观看成人av | a黄色影院 | 中文字幕人成人 | 久久午夜国产精品 | 国产一级二级在线观看 | 国产91精品高清一区二区三区 | 六月丁香色婷婷 | 97视频免费看 | www色片 | a天堂在线看 | 久久九九免费 | 黄色高清视频在线观看 | av亚洲产国偷v产偷v自拍小说 | 玖玖玖精品 | 久久国产免费 | 夜夜爽88888免费视频4848 | 久久毛片视频 | 成人a级网站 | 91精品久久久久久综合乱菊 | 亚洲在线日韩 | 91毛片在线观看 | 成人国产精品久久久春色 | 中文字幕在线观看完整 | 麻豆国产精品视频 | 二区三区在线视频 | 日本在线成人 | 在线观看视频三级 | 日日夜夜av | 亚洲人毛片 | 韩国精品在线 | 97超碰在线免费 | 伊人在线视频 | 日韩va亚洲va欧美va久久 | 麻豆传媒一区二区 | 丁香花在线观看免费完整版视频 | 中文字幕国产亚洲 | 99九九免费视频 | 国产成人高清 | 国产三级精品在线 | 天天躁天天操 | 免费日韩 精品中文字幕视频在线 | 国产小视频在线看 | 亚洲视频一 | 国产91精品在线观看 | 97碰视频| 久久99深爱久久99精品 | 日韩一区二区三区高清在线观看 | 国产成人亚洲精品自产在线 | 久久久久免费精品 | 久草视频国产 | 日韩av一区二区三区四区 | 久久久91精品国产一区二区精品 | 亚洲精品毛片一级91精品 | 国产一级黄色免费看 | 久久国产精品久久精品 | 成人综合免费 | 日日躁天天躁 | 亚洲资源在线网 | 九色视频网址 | 亚洲在线免费视频 | 成人久久免费视频 | 91视频大全 | 久久免费看视频 | 波多野结衣在线观看一区二区三区 | 中文字幕免 | 激情视频一区二区三区 | www黄com| 99久久婷婷国产综合精品 | 欧美激情精品久久久久久 | 久久一区精品 | 97在线资源 | 精品久久久久久久久中文字幕 | 国产99一区二区 | 玖玖在线播放 | 国产激情久久久 | 国产高清在线免费 | 国产精品久久视频 | 日韩欧美中文 | 国产大陆亚洲精品国产 | www看片网站 | 91精品免费在线观看 | 高清av不卡| 91精品少妇偷拍99 | 不卡的av在线| 久久免费在线 | 一区二区三区中文字幕在线观看 | 日韩特黄一级欧美毛片特黄 | 亚洲一级黄色片 | 国产精品欧美久久久久天天影视 | 国产一区二区在线观看视频 | 国产中文字幕91 | 97精品视频在线播放 | 国产一级大片在线观看 | 国产中文在线播放 | 亚洲欧美日本一区二区三区 | 精品欧美小视频在线观看 | 在线免费观看涩涩 | 五月天,com | 久久精品超碰 | 成人av一区二区兰花在线播放 | 亚洲精品视频网 | 天天精品视频 | 不卡av在线免费观看 | 韩国精品视频在线观看 | 中文字幕电影网 | 日韩视频免费在线观看 | 精品在线视频播放 | 国产精品观看视频 | 日本在线成人 | 免费看色网站 | 欧美日韩一区二区视频在线观看 | 国产黄色一级大片 | 久久99国产精品久久99 | 国产高清精品在线 | 综合色亚洲 | 久久污视频 | 天天摸天天操天天舔 | 人人爱人人射 | 久久艹在线 | 亚洲一级黄色片 | 97av视频 | 极品嫩模被强到高潮呻吟91 | 五月精品 | 99久久精品一区二区成人 | 久久久久久久久久久黄色 | 综合久久久久 | 天天艹天天干天天 | 国产二区免费视频 | 成人性生交视频 | 最近中文字幕第一页 | 天天射天天操天天 | 99re亚洲国产精品 | 在线观看日韩专区 | 久久久精品亚洲 | 国产a视频免费观看 | 五月天婷亚洲天综合网鲁鲁鲁 | www日韩精品 | 亚洲精品视频网址 | 国产一二三精品 | 日韩精品专区在线影院重磅 | 99精品黄色 | 久草在线免费看视频 | 国产精品第十页 | 奇米影视777影音先锋 | www色网站 | 国产精品免费看 | 国产精品日韩精品 | 成人性生交大片免费观看网站 | 五月天久久久久久 | 精品在线亚洲视频 | 日韩免费高清在线观看 | 久久综合99| 国产一级片免费观看 | 女人高潮特级毛片 | 成人在线视频你懂的 | 天天亚洲| 婷婷久月 | 日本三级不卡视频 | 波多野结衣在线视频一区 | 天天色成人 | 国产高清在线观看av | 成年人黄色在线观看 | 国产精品自拍av | 九九热国产视频 | 波多野结衣电影一区二区三区 | 中文国产成人精品久久一 | 激情视频一区二区三区 | www.97视频| 亚洲资源视频 | 国产一在线精品一区在线观看 | 欧美日韩在线视频观看 | 欧美国产精品一区二区 | 操少妇视频 | 国产一区国产二区在线观看 | 成人高清在线 | 91福利社在线观看 | 欧美最猛性xxxx | 国产黄在线免费观看 | 一级欧美一级日韩 | 日本aaaa级毛片在线看 | 成人av在线电影 | 亚洲成av人影片在线观看 | 黄色网址国产 | 欧美大码xxxx| 日一日干一干 | 国产精品久久久久久a | 操操操日日日干干干 | 欧美一区二区三区激情视频 | 在线观看久久 | 色婷婷精品大在线视频 | 99精品国产免费久久久久久下载 | 国产 中文 日韩 欧美 | 久久国产精品成人免费浪潮 | 91精品国产一区二区在线观看 | 精品一区二区三区久久久 | 国产高清av免费在线观看 | 天天色天天射天天综合网 | 男女日麻批 | 精品一区二区三区香蕉蜜桃 | 99在线精品视频观看 | 免费在线观看一区二区三区 | 精品欧美乱码久久久久久 | 在线电影 一区 | 韩国一区二区三区在线观看 | 久久久免费精品视频 | 欧洲色吧 | 国产一级免费播放 | 日韩 精品 一区 国产 麻豆 | 日韩中文字幕免费在线播放 | 亚洲综合成人在线 | 色狠狠干 | 亚洲精品88欧美一区二区 | 97av影院 | 日韩一级片大全 | 91视频久久久久 | japanesexxx乱女另类 | 五月天婷婷在线播放 | 午夜少妇av | 免费观看一级特黄欧美大片 | 天天操天天摸天天射 | 国产精品久久久久久一区二区 | 久久免费成人网 | 欧美二区三区91 | 日韩精品无码一区二区三区 | 久久大片 | 成人啪啪18免费游戏链接 | 国产对白av| 96久久精品 | 91禁在线看 | 成人黄色在线播放 | 免费av观看 | 精品久久免费 | 免费看片网页 | 亚洲欧美怡红院 | 亚洲午夜av| 中文字幕中文字幕 | 欧美最猛性xxxxx亚洲精品 | 91看片成人 | 国产裸体永久免费视频网站 | 欧美特一级片 | 日本黄色a级大片 | 色偷偷av男人天堂 | 粉嫩av一区二区三区四区五区 | 色 免费观看 | www99久久| 中文字幕国产一区二区 | 九九九九九九精品 | 天天做天天射 | 成年人免费在线观看 | 中文字幕日韩国产 | 欧美久草视频 | 在线观看视频一区二区 | 国产福利精品一区二区 | 久久再线视频 | 日日夜精品 | 国产视频一级 | 欧美极品一区二区三区 | 成人免费一级 | 欧美性色网站 | 国产一级高清视频 | 六月丁香婷婷久久 | 国产精品久久久av久久久 | 伊人五月婷 | 在线看一区二区 | 国产黄网站在线观看 | 九九视频免费在线观看 | 麻豆激情电影 | 成年人在线观看视频免费 | 少妇视频一区 | 亚洲国产最新 | 日韩欧美在线免费观看 | 国产精品va在线观看入 | 日韩中字在线 | 久草视频网| 国产成a人亚洲精v品在线观看 | 天天操综| 中文字幕久久久精品 | 久久精品第一页 | 最新日韩在线观看视频 | 国产精品久久久久久久久久久久午夜 | 片网址 | 一区二区三区三区在线 | 久久免费观看少妇a级毛片 久久久久成人免费 | 日本 在线 视频 中文 有码 | 日本久久免费电影 | 免费在线观看成人av | 成年人免费观看国产 | 国产免费又粗又猛又爽 | 二区三区视频 | 成人免费91 | 五月天激情视频在线观看 | 在线观看爱爱视频 | 国产精品k频道 | 97av在线| 婷婷六月丁香激情 | 日韩精品欧美精品 | 国产一及片 | 96av麻豆蜜桃一区二区 | 国产97免费 | 国产视频美女 | 视频精品一区二区三区 | 四虎国产精品免费观看视频优播 | 久久 精品一区 | 伊人色播 | 免费久久99精品国产 | 天天射天天干天天插 | 国产免费高清视频 | 亚洲第五色综合网 | 亚洲狠狠操 | a级成人毛片 | 免费黄色av片| 国产精品视频最多的网站 | 亚洲精品久久久久中文字幕m男 | 欧美va天堂va视频va在线 | 国产福利在线 | 国产精品岛国久久久久久久久红粉 | 国产欧美在线一区二区三区 | 国产色网站 | 99久久日韩精品免费热麻豆美女 | 日韩欧美在线一区 | 在线激情小视频 | 激情欧美国产 | 特级片免费看 | 国产高清免费在线观看 | 欧美日韩1区2区 | 国产精品99久久99久久久二8 | 欧美视频18 | 精品在线小视频 | 亚洲一级电影在线观看 | 狠狠干中文字幕 | 黄a网站 | 亚洲永久精品国产 | 毛片无卡免费无播放器 | 99re6热在线精品视频 | 久久国产网 | 亚洲综合欧美精品电影 | av中文在线 | 免费久久99精品国产婷婷六月 | 欧美日韩精品在线免费观看 | 色综合色综合久久综合频道88 | 日日夜夜精品免费视频 | 国产xxxxx在线观看 | 五月天堂色 | 久草综合在线观看 | 久久精品电影院 | av资源在线看 | 九九视频免费在线观看 | 亚洲精品中文字幕在线观看 | 韩国av免费 | 蜜臀久久99静品久久久久久 | 亚洲欧美国产精品18p | 亚洲欧美一区二区三区孕妇写真 | 在线成人一区二区 | 国产91免费看 | 欧美一级特黄aaaaaa大片在线观看 | 九九久久国产精品 | 欧美日韩久久久 | 免费a网站 | 在线观看免费观看在线91 | 欧美亚洲成人xxx | 色www免费视频 | 人操人 | 国产成人香蕉 | 99国产精品视频免费观看一公开 | 中文字幕在线观看网站 | 最近日本中文字幕 | 超碰在线公开免费 | 国产一区二区在线观看免费 | 干综合网 | 国产午夜剧场 | 美女国产 | 99九九视频 | 国产精品k频道 | 亚洲精品人人 | 国产欧美在线一区二区三区 | 久久综合九色综合久久久精品综合 | 国产韩国精品一区二区三区 | 婷婷去俺也去六月色 | 精品综合久久 | 久久视频在线观看免费 | www激情久久 | 最新av网址在线 | 欧美日韩国产精品一区二区三区 | 99久久er热在这里只有精品15 | 日韩av男人的天堂 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产精国产精品 | 91av网址| 亚洲婷久久| 精品国产一区二区三区久久久 | 人人澡超碰碰 | 日韩一级黄色大片 | 亚洲精品免费观看视频 | 日韩欧美高清免费 | 91你懂的 | 不卡的av在线 | 亚洲欧美在线综合 | 日韩欧美在线观看一区二区三区 | aa级黄色大片 | 欧美孕妇视频 | 国产精品网站一区二区三区 | 91麻豆高清视频 | 深爱激情婷婷网 | 久久99国产精品久久99 | 久久黄色免费观看 | 亚洲高清在线观看视频 | 久久黄色网址 | 91在线亚洲 | 欧美成人在线免费 | 一二三久久久 | 日本精品中文字幕在线观看 | 国产人在线成免费视频 | 久久久久久久久久久久av | 欧美日本啪啪无遮挡网站 | 亚洲aⅴ乱码精品成人区 | 国产精品视频在线观看 | 国产精品视频全国免费观看 | 狠狠色狠狠色合久久伊人 | 日韩视频在线观看免费 | 久久狠狠亚洲综合 | 国产一区欧美日韩 | 亚洲视频电影在线 | 激情www| 日韩av偷拍 | 亚洲日本一区二区在线 | 在线电影播放 | 久久视频在线观看中文字幕 | 成人午夜精品 | 成年在线观看 | 国产一区二区免费看 | 超碰97久久| 在线va网站| 丁香婷婷成人 | 国产美女被啪进深处喷白浆视频 | 中文字幕二区在线观看 | 成人av电影免费在线播放 | 亚洲九九九在线观看 | 玖玖爱免费视频 | 狠狠色伊人亚洲综合网站色 | www色,com| 国产精品久久三 | 少妇视频在线播放 | 免费黄色在线网址 | 久久成人国产精品免费软件 | 亚洲精品456在线播放第一页 | 不卡电影免费在线播放一区 | 日韩精品黄 | 欧美日韩有码 | 亚洲情影院 | 中文字幕在线观看网站 | 中国一级片在线播放 | 在线免费高清 | 国产在线精品播放 | www国产亚洲精品久久网站 | 久久综合电影 | 久久精品日本啪啪涩涩 | 日韩欧美一级二级 | 黄色软件在线观看免费 | 国产精品成人av在线 | 五月婷婷深开心 | 日韩av综合网站 | 日韩丝袜视频 | 最新动作电影 | 日韩久久精品一区二区三区 | 国内精品免费 | 久久都是精品 | 日韩首页| 日本久久久久久久久 | 黄色大片免费播放 | 97手机电影网 | www.天天射 | 粉嫩一二三区 | 久久午夜鲁丝片 | 久久久综合九色合综国产精品 | 中文字幕日韩免费视频 | 成年人视频在线 | 午夜少妇av | av中文国产 | 丁香激情视频 | 中文字幕一区在线观看视频 | 久草精品免费 | 日韩欧美xxxx | 日韩免费福利 | 69国产盗摄一区二区三区五区 | 超碰人在线 | 97超碰国产精品女人人人爽 | 日韩免费视频在线观看 | 欧美精品久久久久久久久久久 | 色综合www | 美女视频永久黄网站免费观看国产 | 韩日精品在线观看 | 精产嫩模国品一二三区 | 视频在线一区二区三区 | 国产精品成人aaaaa网站 | 久久久午夜剧场 | 97超碰伊人 | 久久亚洲福利 | 国产老熟| 日韩精品在线免费观看 | 九9热这里真品2 | 亚洲开心激情 | 天天躁日日躁狠狠躁 | 中文 一区二区 | 国产69久久精品成人看 | 国产精品久久久久久久久蜜臀 | 国产精品久久久久久久久久免费 | 亚洲欧美va | 亚洲国产精品500在线观看 | 在线色资源| 天天干天天弄 | 亚洲成a人片综合在线 | 久操视频在线播放 | 国产在线91精品 | 欧美中文字幕第一页 | 美女视频久久 | 欧美激情精品久久久久久免费 | 国产专区在线视频 | 日本色小说视频 | 欧美日韩国产页 | 西西www4444大胆视频 | 中文字幕一区二区三区久久 | 国产一区欧美一区 | 国产69精品久久99的直播节目 | 一区精品久久 | 免费日韩在线 | 国产成人精品免高潮在线观看 | 色国产精品一区在线观看 | 免费视频资源 | 国产日韩精品视频 | 一区二区三区免费看 | 欧美精品日韩 | 婷婷网站天天婷婷网站 | 久久精品国产一区二区 | 青青河边草免费观看 | 国产va饥渴难耐女保洁员在线观看 | 亚洲午夜精品在线观看 | a爱爱视频 | 国产福利91精品一区二区三区 | 97超碰国产精品女人人人爽 | 四虎影视国产精品免费久久 | 中文字幕久久精品 | 国产a级片免费观看 | 国产一区精品在线 | 国产一区二区三区免费观看视频 | 免费a级观看 | 久久精品国产精品 | av网站有哪些 | 天天激情在线 | 精品自拍av| 人人爱人人爽 | 亚洲精品国产区 | 精品国产免费一区二区三区五区 | 日本xxxx.com| 国产福利免费在线观看 | 在线黄av| 97精品久久人人爽人人爽 | 天天操天天干天天爽 | 国产精品高清一区二区三区 | 日韩在线电影 | 99久久精品国产网站 | 日本公乱妇视频 | 国产在线观看污片 | 免费a视频| 九七视频在线 | 深爱激情久久 | 成人中文字幕+乱码+中文字幕 | www.天堂av | 天天伊人网 | 美女激情影院 | 81精品国产乱码久久久久久 | 中文字幕免费观看全部电影 | 日韩a在线 | 欧美日韩亚洲在线 | 亚洲高清av在线 | www.五月激情.com | 国产视频 亚洲视频 | 久久久国产高清 | 97热久久免费频精品99 | 国产精品久久久久久久久久久久午夜片 | 国产一级精品绿帽视频 | 在线亚洲播放 | 欧美成人h版在线观看 | 欧美污污网站 | 狂野欧美激情性xxxx | 亚洲精品毛片一级91精品 | 中文国产字幕 | 手机在线永久免费观看av片 | 欧美一二区在线 | 天天射天天射天天射 | 日韩三级视频在线看 | 久久久久久久久福利 | 看黄色91 | 在线观看国产成人av片 | 人人插超碰 | 九九免费在线看完整版 | 国产黄色在线看 | 色香网 | 7777精品伊人久久久大香线蕉 | 97天堂网 | av免费网站在线观看 | 日韩小视频 | 精品视频在线免费观看 | 亚洲精品动漫久久久久 | 夜夜婷婷 | 亚洲精品乱码久久久久久蜜桃欧美 | 久草免费在线观看 | 午夜精品视频一区 | 国内小视频 | 精品国产一区二区三区日日嗨 | 四虎免费在线观看视频 | 欧美夫妻生活视频 | 97视频在线观看成人 | av观看免费在线 | 欧美一区二区三区特黄 | 伊人天天 | 美女性爽视频国产免费app | 免费的成人av | 久久丁香网 | 手机看片99 | 国产午夜精品理论片在线 | 99久免费精品视频在线观看 | 91精品国产综合久久久久久久 | 日韩欧美高清在线观看 | 在线观看国产一区二区 | 天天爱综合 | 亚洲精品视频在线观看视频 | 99亚洲视频 | 亚洲黄色大片 | 国产专区在线视频 | 日韩精品一区二区免费视频 | 久久久久久久久久毛片 | 超碰人人乐 | 亚洲精品字幕在线 | 色鬼综合网| 亚洲女同videos| 黄色视屏在线免费观看 | 9999免费视频 | 特级黄色视频毛片 | 色噜噜在线观看 | 精品国产大片 | 91精品国自产在线 | 91免费观看视频在线 | 丁香婷婷激情国产高清秒播 | 色婷婷伊人 | a黄在线观看| 久久久久亚洲国产精品 | 天天色播 | 久久1电影院 | 狠狠色狠狠色综合日日小说 | 国内精品国产三级国产aⅴ久 | 婷婷久久网 | 97超级碰碰 | 欧美日韩国产一区二 | 91影视成人 | 美女精品网站 | 久久久高清免费视频 | 中文字幕日韩在线播放 | 天天干天天色2020 | 涩涩网站在线播放 | 亚洲精品免费看 | 日韩在线视频免费播放 | 欧美一区二区三区四区夜夜大片 | 日韩理论在线 | 国产免费视频一区二区裸体 | 福利视频导航网址 | 国产精品不卡视频 | 一区二区三区在线播放 | 久久久久在线观看 | 成人午夜电影在线 | 日本久久不卡视频 | 四虎成人精品 | 国产精品久久久久三级 | 精品久久一级片 | 久久综合久色欧美综合狠狠 | 中文字幕在线视频一区二区三区 | 成人福利在线观看 | 亚洲欧美色婷婷 | 在线激情av电影 | 亚洲最大免费成人网 | 免费在线成人av电影 | 国产成人a亚洲精品 | 欧美高清视频不卡网 | 亚洲理论在线观看 | 天天干夜夜爱 | 欧美日韩色婷婷 | 久久精品视频在线免费观看 | 久久福利电影 | 天天久久综合 | 自拍超碰在线 | 亚洲小视频在线 | 免费日韩一区二区三区 | 日日狠狠 | 国产精品美女999 | 成人一级免费电影 | 婷婷丁香色 | 91视频在线免费看 | 九九热在线视频 | 在线看国产精品 | 久av电影| 中文字幕第一页在线视频 | 操操操夜夜操 | 99精品视频中文字幕 | 日韩成人不卡 | 亚洲精品99久久久久中文字幕 | 爱爱av网站| 超碰97.com | 久久精品一区二 | 欧美va天堂va视频va在线 | 国产香蕉在线 | 国产在线不卡视频 | 午夜视频色 | 91热爆在线观看 | 国产r级在线观看 | 免费看高清毛片 | 久久a久久 | caobi视频| 国产精品免费看久久久8精臀av | 国产精久久久久久妇女av | 久久久精品久久日韩一区综合 | 国产视频一区二区在线观看 | 国产三级久久久 | 99视频免费 | 四虎国产精品成人免费4hu | 亚洲精品1区2区3区 超碰成人网 | 久草视频观看 | 久久久精品日本 | 亚洲国产精品影院 | 久久97精品 | 最新日韩视频在线观看 | 97碰碰视频| 91在线小视频 | 亚洲国产精品一区二区久久,亚洲午夜 | 成人av资源 | 狠狠操狠狠干天天操 | 一区二区三区在线免费观看视频 | 日韩av电影中文字幕在线观看 | 日韩av电影免费在线观看 | 久久久这里有精品 | 久久国产精品一区二区三区四区 | 91午夜精品 | av在线播放一区二区三区 | 波多野结衣一区二区三区中文字幕 | 久久五月激情 | 伊人导航| 美女中文字幕 | 免费在线观看亚洲视频 | 国产精品成人国产乱一区 | 久久av免费电影 | 亚洲国产精品999 | 波多野结衣精品在线 | 99久久精品国产欧美主题曲 | 91在线国产观看 | 国产精品久久久久高潮 | 在线免费黄色毛片 | 日韩在线电影一区二区 | 日日天天狠狠 | 国产一区视频免费在线观看 | 91中文字幕永久在线 | 日av免费| 欧美日韩综合在线 | 久草精品国产 | 免费情缘 | 国产一区在线看 | www.99在线观看 | 人人草在线视频 | 久久久久久久久久久网站 | 国产伦精品一区二区三区四区视频 | 精品国产乱码久久久久久三级人 | 特级西西www44高清大胆图片 | 五月天亚洲综合 | 91av视频在线观看 | 西西www444| 久久这里只有精品1 | 精品国产一区二区三区四区在线观看 | 午夜视频在线网站 | 中文字幕视频网 | av天天草| 日韩三级成人 | 精品久久久久亚洲 | 国内丰满少妇猛烈精品播 | 免费视频成人 | av观看免费在线 | 91成人黄色 | 5月丁香婷婷综合 | 久久久电影网站 | 欧美日韩国产三级 | av电影免费看 | 国产一区二区三区网站 | 中文字幕乱码日本亚洲一区二区 | 精品国产乱码久久久久久三级人 | 又黄又刺激视频 | 天干啦夜天干天干在线线 | 精品国产乱码久久久久久久 | 久久免费看片 | 91中文字幕在线视频 | 日本三级国产 | 超碰97人人爱 | 欧美日韩精品网站 | 国产视频一级 | 久久99精品国产99久久 | 中文免费在线观看 | 日本婷婷色 | 亚洲天堂毛片 | 久久精品国产久精国产 | 国产一级片在线播放 | 96视频在线 | 亚洲视频中文 | 狠狠综合| 日本中文一区二区 | 免费涩涩网站 | 国内少妇自拍视频一区 | 极品久久久 | 日本久久久久久久久久 | 精品久久精品 | 一区二区三区电影在线播 | 欧美日本一区 | 人人爽人人爽人人片av免 | 色综合色综合色综合 | 国产99久久九九精品 | 91成人小视频 | 黄色com | 亚洲精品一区二区三区高潮 | 最新av网站在线观看 | 手机看片中文字幕 | 亚洲欧美国内爽妇网 | 在线小视频你懂的 | 久久精品99国产精品日本 | 国产精品6| 国产成人三级在线观看 | 激情在线免费视频 | 粉嫩av一区二区三区四区在线观看 | 日韩在线免费不卡 | 日韩精品视频久久 | 国产男女无遮挡猛进猛出在线观看 | 奇米影视999 | 亚洲伊人色 | h视频在线看 | 婷婷色吧| 日韩精品高清视频 | 亚洲国产精品资源 | av电影在线不卡 | 国产黄色资源 | 超碰97国产在线 | 亚洲一区二区91 | 精品99999| 久久久久久久久久网 | 91女子私密保健养生少妇 | 欧美精品日韩 | 成年人黄色免费网站 | 亚洲精品美女久久久久 | 日韩毛片在线播放 | 91丨九色丨91啦蝌蚪老版 | 成人小视频在线观看免费 | 国产精品一区二区白浆 | 国产午夜激情视频 | 欧美一区三区四区 | 97看片吧 | 香蕉视频4aa | 在线天堂日本 | 免费色视频网址 | 一区免费在线 | 国产一级视频在线免费观看 | 国产在线色视频 | 91视视频在线直接观看在线看网页在线看 | 日本精品久久久久久 | 国产视频欧美视频 | 人人爽人人看 | 91完整版在线观看 | 国产一区高清在线 | 日韩91av | 久久久久高清毛片一级 | 99亚洲精品| 亚洲影音先锋 | 五月天激情视频在线观看 | 99久久999久久久精玫瑰 | 国产在线观看污片 | 欧美激情综合色综合啪啪五月 | 亚洲永久精品在线 | 国产精品久久久久久模特 | 九九九九精品九九九九 | 日韩免费在线观看视频 | 国产护士av| 日韩免费看 | 黄色影院在线播放 | 久久国产精品偷 | 亚洲伊人av | 久草在线视频在线观看 | 天天曰天天射 | 国产成人精品综合久久久久99 | 五月天激情婷婷 | 国产视频亚洲视频 | 一级黄毛片 | 超碰在线98| 97精品国产91久久久久久久 | 四虎欧美 | 久草青青在线观看 | 大片网站久久 | 国产成人av在线影院 | 国语精品免费视频 | 欧美性脚交 | 久草资源免费 | 天天色天天爱天天射综合 | 伊人伊成久久人综合网小说 | 日日操日日操 | 国产最新在线 | 亚洲精品乱码久久久久久蜜桃91 | 91精品在线播放 | 欧美一级久久 | 九色自拍视频 | 国产在线久草 | av电影一区二区 | 深爱激情丁香 | 国内精品久久久久久久影视简单 | 久久综合中文字幕 | 四虎国产精品成人免费4hu | 国产精品久久久久久av | 亚洲视频免费视频 | 美女网站一区 | 夜色在线资源 | 黄色视屏免费在线观看 | 免费在线观看成年人视频 | 色999在线 | 国产成人久久精品77777综合 | 国产精品18久久久久久久 | 日本少妇视频 | 久久99久久99精品免观看软件 | 国产日本三级 | 国产成人精品一区二区三区福利 | 亚洲aⅴ乱码精品成人区 | 精品一区在线看 | 色欧美日韩 | 精品欧美一区二区精品久久 | 久久久久免费观看 | 特级毛片在线免费观看 | 992tv人人网tv亚洲精品 | 美女免费网视频 | 天天色天天干天天 | 成人精品亚洲 | 色先锋av资源中文字幕 | 国产91精品久久久久久 | 中文字幕网址 |