久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode整理----合集一

發布時間:2023/12/29 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode整理----合集一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:LeetCode[2]? 兩個數相加

? ? ? ? ? 1:需要考慮進位的問題,需要使用一個變量存儲進位標識,每一次都去判斷,而且在一個鏈表判斷完成之后,另外一個鏈表,也是需要單獨考慮進位問題的

? ? ? ? ? 2:在計算結束后,需要再次判斷進位問題,如果有進位,則需要進行處理。

? ? ? ? ? 3:需要維護返回的指針和移動的當前指針,返回的指針確定之后就不再變化,而移動的當前指針會隨著操作而變動,最好每次判斷返回指針是否為null,這樣防止空指針異常。

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {//進位標識int flag = 0;ListNode res = null;ListNode next = null;int val1 = 0;int val2 = 0;while(l1 != null || l2 != null){val1 = l1 == null ? 0 : l1.val;val2 = l2 == null ? 0 : l2.val;int i = val1 + val2 + flag;if(l1 != null){l1 = l1.next;}if(l2 != null){l2 = l2.next;}if(i > 9){flag = i/10;i = i%10;}else {flag = 0;}if(res == null){res = new ListNode(i);next = res;}else {next.next = new ListNode(i);next = next.next;}}if(flag == 1){next.next = new ListNode(1);}return res;} }

二:LeetCode[19]? ?刪除鏈表的倒數第 n 個節點

? ? ? ? 1.使用雙指針方進行解決,先將一個指針向前移動n位,此時再另兩個指針同時移動,當快的那個指針移動到尾節點,那么慢的指針會移動到倒數第n個節點,此時再進行刪除

? ? ? ? 2.編程時,需要注意的是,當快指針移動到尾部,慢指針所在的位置,要保證慢指針再倒數第n + 1個,這樣才能使用slow.next ?= ?slow.next.next,這一點要特別注意。

class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode fast = head;ListNode slow = head;for (int i = 0; i < n; i++) {fast = fast.next;}if (fast == null){return slow.next;}while(fast.next != null){fast = fast.next;slow = slow.next;}slow.next = slow.next.next;return head;} }

三:LeetCode[21]?合并兩個有序鏈表

? ? ? ? ? ?1.需要維護返回的指針和移動的當前指針,返回的指針確定之后就不再變化,而移動的當前指針會隨著操作而變動,最好每次判斷返回指針是否為null,這樣防止空指針異常。

? ? ? ? ? ?2.在新鏈表的下一個節點確定后,他的下下一個節點要置為null

? ? ? ? ? ?2.清楚指針的維護關系

class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if(l1 == null) return l2;if(l2 == null) return l1;ListNode res = null;ListNode current = null;while(l1 != null && l2 != null){if(l1.val > l2.val){if(res == null){res = l2;current = res;}else{current.next = l2;current = current.next;}l2 = l2.next;current.next = null;}else {if(res == null){res = l1;current = res;}else{current.next = l1;current = current.next;}l1 = l1.next;current.next = null;}}if(l1 != null) current.next = l1;if(l2 != null) current.next = l2;return res;} }

?

四:LeetCode[206]? 反轉鏈表

? ? ? ? ? 1.需要使用3個指針進行維護,因為在反轉的過程中,是有兩條鏈的

class Solution {public ListNode reverseList(ListNode head) {if(head == null || head.next == null) return head;ListNode current = head;ListNode next = null;ListNode before = null;while(current != null){next = current.next;current.next = before;before = current;current = next;}return before;} }

?

五:LeetCode[24]? 兩兩交換鏈表中的節點

? ? ? ? ? ? ? ?1.需要維護返回的節點,每次判斷返回的節點是否為空,為空則進行賦值

? ? ? ? ? ? ? ?2.兩兩交換,這樣的話,指針每次會移動兩位,所以要記錄?next?和?third指針

? ? ? ? ? ? ? ?3.維護一個current節點的前指針,因為在需要在交換之后,將前指針的下一個指向進行修改

class Solution {public ListNode swapPairs(ListNode head) {if(head == null || head.next == null) return head;ListNode res = null;ListNode current = head;ListNode before = null;ListNode next = null;ListNode third = null;//c n t//1 - 2 - 3 - 4 - 5 - 6while(current != null && current.next != null){next = current.next;third = current.next.next;current.next = third;next.next = current;if(res == null){res = next;}else {before.next = next;}before = current;current = third;}return res;} }

二刷兩兩交換鏈表

class Solution {public ListNode swapPairs(ListNode head) {if(head == null || head.next == null){return head;}//結果返回的節點ListNode res = null;//前一個節點ListNode per = null;//當前節點ListNode current = null;ListNode next = null;ListNode third = null;// n c t//每次移動兩位 2 -> 1 3 -> 4while(head != null && head.next != null){current = head;next = head.next;third = head.next.next;next.next = current;current.next = null;//確定返回的最終值if(res == null){res = next;}//連接到之前的鏈表中,并維護per指針if(per != null){per.next = next;per = current;}else{per = current;}head = third;}if(head != null){per.next = head;}return res;} }

?

六:劍指Offer[06]? 從尾到頭打印鏈表

? ? ? ?1.使用遞歸來解決問題,需要記錄遞歸的深度,用于創建數組

? ? ? ?2.遞歸的結束條件為當前所查節點為null,此時需要創建數組,然后在遞歸返回時,進行賦值

class Solution {public int[] reversePrint(ListNode head) {return rec(head, 0);}//1 -> 3 -> 2public int[] rec(ListNode current, int num){if(current == null){return new int[num];}int[] ints = rec(current.next, ++num);int length = ints.length;//num在rec(current.next, ++num)遞歸時,已經加1了,此時不用再加1了ints[length - num] = current.val;return ints;} }

七: LeetCode[328]? 奇偶鏈表

? ? ? ? ? ?1.使用兩個鏈表來進行保存奇偶鏈表,每次循環向前移動兩位指針指向

? ? ? ? ? ?2.需要記錄奇偶鏈表的頭結點和當前訪問的節點,當前節點用于拼接奇偶鏈表的下一個節點,會進行移動

? ? ? ? ? ?3.在最后,奇鏈表的尾部鏈接偶鏈表的頭部即可

class Solution {public ListNode oddEvenList(ListNode head) {if(head == null || head.next == null) return head;ListNode even = null;ListNode odd = null;ListNode evenHead = null;ListNode oddHead = null;while (head != null){if(odd == null){odd = head;oddHead = head;}else {odd.next = head;odd = odd.next;}head = head.next;//需要將下一節點置為null,防止最后一個不設置而出現循環的情況,而且//需要在head = head.next之后,不然節點置為null時,下個節點找不到odd.next = null;if(head == null){break ;}if(even == null){even = head;evenHead = head;}else {even.next = head;even = even.next;}head = head.next;//需要將下一節點置為null,防止最后一個不設置而出現循環的情況,而且//需要在head = head.next之后,不然節點置為null時,下個節點找不到even.next = null;}odd.next = evenHead;return oddHead;} }

八: 劍指Offer[22]? 鏈表中倒數第K個節點

? ? ? ? ? 1.雙指針法,先讓快的節點移動k位,再讓兩個指針同時移動,當快的到尾部時,慢的就是倒數第k為

class Solution { // 1->2->3->4->5, 和 k = 2.public ListNode getKthFromEnd(ListNode head, int k) {ListNode slow = head;ListNode fast = head;for (int i = 0; i < k; i++) {fast = fast.next;}while(fast != null){fast = fast.next;slow = slow.next;}return slow;} }

九:Leetcode[300]? 最長遞增子序列

給你一個整數數組 nums ,找到其中最長嚴格遞增子序列的長度。?
子序列是由數組派生而來的序列,刪除(或不刪除)數組中的元素而不改變其余元素的順序。例如,[3,6,2,7] 是數組 [0,3,1,6,2,2,7] 的子序列。?

示例 1:?
輸入:nums = [10,9,2,5,3,7,101,18]
輸出:4
解釋:最長遞增子序列是 [2,3,7,101],因此長度為 4 。

題解:?

使用動態規劃進行處理,最長遞增子序列的長度是和前面的子集有關系的,
如求第n個數的最長子序列,那么你就需要求出在 0 - n-1 之間的最長子序列,然后再 + 1,即可求出當前第n個數的最長子序列

在求第n個數的最長子序列, 依次遍歷0 - n-1 之間的最長子序列,而且需要是數字小于第n位時,才能生效

public int lengthOfLIS(int[] nums) {int length = nums.length;//新建數組,保存第n位他的最長子序列int[] dp = new int[length];//存放最終返回的值int res = 1;for (int i = 0; i < length; i++) {if(i == 0){dp[i] = 1;continue;}//依次從0 - n-1 找到比n小的數的最大的最長子序列int max = 0;for(int j = 0; j < i; j++){if(nums[j] < nums[i] && dp[j] > max){max = dp[j];}}dp[i] = max + 1;//進行返回值的更新if(dp[i] > res){res = dp[i];}}return res;}

十:劍指Offer[38]? 字符串的排列

輸入一個字符串,打印出該字符串中字符的所有排列。?
你可以以任意順序返回這個字符串數組,但里面不能有重復元素。?

示例:?
輸入:s = "abc"
輸出:["abc","acb","bac","bca","cab","cba"]

題解:

把字符串分為兩部分:一部分是字符串的第一個字符,另一部分是第一個字符以后的所有字符。

第一步是求所有可能出現在第一個位置的字符,即把第一個字符和后面所有字符交換。(for循環、交換操作)
第二步是固定住第一個字符,求后面所有字符的排列。(遞歸)如何求剩余字符的排列:將剩余字符的第一個字符依次和后面的字符進行交換,
而“求后面所有字符的排列”即可按照上面的思路遞歸進行。
遞歸出口:求剩余字符的排列時只剩下一個字符
實現借助一個char[],通過交換元素得到不同的排列,在遞歸返回時將其裝入ArrayList。

如下圖所示,有兩點需要注意:

在每個分支進行完后,要將交換過的元素復位,從而不會影響其他分支。
因為有“Swap A with A”這樣的操作,并且題目指出可能有字符重復,所以分支末尾可能有重復的序列,在加入ArrayList要進行去重判斷,不重復再加入。
以 abc為例,圖解過程如下:

class Solution {public String[] permutation(String s) {//1.先轉換為數組,然后再使用遞歸思想,進行求解,每次固定第一個數if(s == null || "".equals(s)){return new String[]{};}//使用hashset進行存儲,判斷是否重復,如使用list,則會超時HashSet<String> set = new HashSet<>();//當前已遍歷的點addString(s.toCharArray(), 0, set);return set.toArray(new String[]{});}private void addString(char[] chars, int index, HashSet<String> set) {//如判斷到最后,則添加并返回if(index == chars.length - 1){String value = String.valueOf(chars);if(! set.contains(value)){set.add(value);}return;}for (int i = index; i < chars.length; i++) {//交換數組第i個字符和第index個字符swap(i, index, chars);addString(chars, index + 1, set);//再次交換數組第i個字符和第index個字符,保證回到此次for循環前字符數組的狀態,不影響字符數組進行下一次for循環swap(index, i, chars);}}private void swap(int i, int index, char[] chars) {char temp = chars[i];chars[i] = chars[index];chars[index] = temp;} }

十一:[LeetCode] 165. 比較版本號

題目描述:

比較兩個版本號 version1 和 version2。 如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。

你可以假設版本字符串非空,并且只包含數字和 . 字符。

. 字符不代表小數點,而是用于分隔數字序列。

例如,2.5 不是“兩個半”,也不是“差一半到三”,而是第二版中的第五個小版本。

你可以假設版本號的每一級的默認修訂版號為 0。例如,版本號 3.4 的第一級(大版本)和第二級(小版本)修訂號分別為 3 和 4。其第三級和第四級修訂號均為 0。

示例:

示例 1:

輸入: version1 = "0.1", version2 = "1.1" 輸出: -1

示例 2:

輸入: version1 = "1.0.1", version2 = "1" 輸出: 1

題解:

? ? ? ?先使用逗號進行分割,然后將字符串轉為int型進行比較,需要注意一點的是,兩個字符串使用逗號分割之后的長度可能不同,這個需要進行一下特殊處理。

class Solution {public int compareVersion(String version1, String version2) {String[] split1 = version1.split("\\.");String[] split2 = version2.split("\\.");int length1 = split1.length;int length2 = split2.length;//找到最大的長度int maxLength = length1 > length2 ? length1 : length2;for (int i = 0; i < maxLength; i++) {String splitSub1 = null;String splitSub2 = null;//判斷是否達到最大,防止數組越界if(i < length1){splitSub1 = split1[i];}if(i < length2){splitSub2 = split2[i];}//都在的情況if(splitSub1 != null && splitSub2 != null){//都轉為int然后再進行比較Integer integer1 = Integer.valueOf(splitSub1);Integer integer2 = Integer.valueOf(splitSub2);if(integer1 > integer2){return 1;}else if(integer1 < integer2){return -1;}}else if(splitSub1 == null){Integer integer2 = Integer.valueOf(splitSub2);if(integer2 != 0){return -1;}}else {Integer integer1 = Integer.valueOf(splitSub1);if(integer1 != 0){return 1;}}}return 0;} }

十二:[LeetCode] 11. 盛最多水的容器

題目描述:

給定?n?個非負整數?a1,a2,...,an,每個數代表坐標中的一個點 (i,?ai) 。在坐標內畫?n?條垂直線,垂直線?i?的兩個端點分別為 (i,?ai) 和 (i, 0)。找出其中的兩條線,使得它們與?x?軸共同構成的容器可以容納最多的水。

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

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

示例:

輸入: [1,8,6,2,5,4,8,3,7] 輸出: 49

題解:

? ?設立兩個指針,一個從頭一個從尾,相向而行遍歷數組,每次舍棄較短邊

(1)計算面積最大值的初值,該初值以數組中的第一個元素和最后一個元素構成兩邊。

(2)設置首尾兩個指針,首指針i指向數組中的第一個元素,尾指針j指向數組中的最后一個元素。

(3)當首指針i小于尾指針j時,一直循環計算其面積。若計算所得的當前面積大于(1)步驟中所計算得的面積最大值,則更新最大值。每一次循環都舍棄索引i和索引j中較短的那一條邊。

為什么每一次循環舍棄索引i和索引j中較短的那一條邊,我們最終得到的結果就會是最大的面積值呢?

反證法:

假設我們現在遍歷到了height數組中第i和第j個元素,且height[i] < height[j],如果我們的面積最大值中取了第i個元素,那么構成我們的面積最大值的兩個元素一定是i和j,因為j繼續減小的話長方形的寬肯定一直在減小,而其高最多只能是height[i],不可能比height[i]更大,因此我們在繼續遍歷的過程中,繼續保持i不變而減小j是沒有意義的。我們可以直接舍棄i,從i + 1開始去繼續遍歷。

由于整個過程只遍歷了一次數組,因此時間復雜度為O(n),其中n為數組height的長度。而使用空間就是幾個變量,故空間復雜度是O(1)。

class Solution {public int maxArea(int[] height) {if(height == null || height.length == 1){return 0;}int length = height.length;int right = length-1;int left = 0;int with = length-1;int res = 0;while (left < right){int minHeight = height[left] > height[right] ? height[right] : height[left];int temp = minHeight * with;if(temp > res){res = temp;}if(height[left] > height[right]){right--;}else {left++;}with--;}return res;} }

十三:[LeetCode] 26. 刪除排序數組中重復項

給定一個排序數組,你需要在原地刪除重復出現的元素,使得每個元素只出現一次,返回移除后數組的新長度。

不要使用額外的數組空間,你必須在原地修改輸入數組并在使用 O(1) 額外空間的條件下完成。

示例?1:

給定數組 nums = [1,1,2],

函數應該返回新的長度 2, 并且原數組 nums 的前兩個元素被修改為 1, 2。

你不需要考慮數組中超出新長度后面的元素。
示例?2:

給定 nums = [0,0,1,1,1,2,2,3,3,4],

函數應該返回新的長度 5, 并且原數組 nums 的前五個元素被修改為 0, 1, 2, 3, 4。

你不需要考慮數組中超出新長度后面的元素。
說明:

為什么返回數值是整數,但輸出的答案是數組呢?

請注意,輸入數組是以“引用”方式傳遞的,這意味著在函數里修改輸入數組對于調用者是可見的。

你可以想象內部操作如下:

// nums 是以“引用”方式傳遞的。也就是說,不對實參做任何拷貝
int len = removeDuplicates(nums);

// 在函數里修改輸入數組對于調用者是可見的。
// 根據你的函數返回的長度, 它會打印出數組中該長度范圍內的所有元素。
for (int i = 0; i < len; i++) {
? ? print(nums[i]);
}

題解:

官方題解:雙指針法

數組完成排序后,我們可以放置兩個指針i 和j,其中i 是慢指針,而j 是快指針。只要 nums[i] = nums[j],我們就增加 j 以跳過重復項。
當我們遇到 nums[j] != nums[i],跳過重復項的運行已經結束,因此我們必須把它(nums[j])的值復制到 nums[i + 1]。然后遞增 i,接著我們將再次重復相同的過程,直到 j 到達數組的末尾為止。

復雜度分析
時間復雜度:O(n),假設數組的長度是 n,那么 i 和 j 分別最多遍歷 n 步。
空間復雜度:O(1)

class Solution {public int removeDuplicates(int[] nums) {if(nums == null) return 0;if(nums.length == 1) return 1;int res = 0;for(int i = 1; i<nums.length; i++){//不想等時進行處理,先使res + 1,然后再進行數據的替換,不需要考慮數組中超出新長度后面的元素if(nums[res] != nums[i]){res++;nums[res] = nums[i];}}return res + 1;} }

十四:[LeetCode] 104. 二叉樹最大深度

給定一個二叉樹,找出其最大深度。?

二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。?

說明: 葉子節點是指沒有子節點的節點。?

示例:?
給定二叉樹 [3,9,20,null,null,15,7],?
? ? 3
? / \
?9 ?20
? ?/ ?\
? 15 ? 7?
返回它的最大深度 3 。?
Related Topics 樹 深度優先搜索 遞歸

題解:

? ? ? ?直接使用遞歸判斷就行,每次判斷一個子樹的左節點和右節點哪個深度最大,并再次基礎上加1即可。

class Solution {public int maxDepth(TreeNode root) {if(root == null) return 0;//進行左右節點的遞歸工作int left = maxDepth(root.left, 1);int right = maxDepth(root.right, 1);return Math.max(left, right);}private int maxDepth(TreeNode root, int depth){if(root == null){return depth;}return Math.max( maxDepth(root.left, depth + 1), maxDepth(root.right, depth + 1));} }

十五:[LeetCode] 104. 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。?

例如,給出?

前序遍歷 preorder =?[3,9,20,15,7]
中序遍歷 inorder = [9,3,15,20,7]?

?返回如下的二叉樹:?
? ? ?3
? ?/ \
? 9 ?20
? ? / ?\
? ?15 ? 7?

?限制:?
?0 <= 節點個數 <= 5000?

題解:

遞歸思想!
? ? ?使用前序和中序遍歷可以確認唯一的二叉樹,通過前序可以得知根節點為1,然后通過中序可以得知左子樹為{4, 7, 2},右子樹為{5, 3, 8, 6}。接下來通過遞歸思想,{4, 7, 2}中4為根節點,再繼續分左右子樹,對{5, 3, 8, 6}也做同樣操作,直至遍歷結束。

在二叉樹的前序遍歷序列中,第一個數字總是樹的根結點的值。但在中序遍歷序列中,根結點的值在序列的中間,左子樹的結點的值位于根結點的值的左邊,而右子樹的結點的值位于根結點的值的右邊。因此我們需要掃描中序遍歷序列,才能找到根結點的值。

前序遍歷序列的第一個數字1就是根結點的值。掃描中序遍歷序列,就能確定根結點的值的位置。根據中序遍歷特點,在根結點的值1前面的3個數字都是左子樹結點的值,位于1后面的數字都是右子樹結點的值。

在二叉樹的前序遍歷和中序遍歷的序列中確定根結點的值、左子樹結點的值和右子樹結點的值的步驟如下圖所示:

自己的理解:

? ? ? ? ?1.遞歸時,要注意,是先構建好子樹,然后再構建好外層的樹,我開始就是從外部開始構建的,也就是說是先構建好根節點,然后將跟根節點傳遞給子節點,并且判斷當前是左字樹,還是右子樹,然后再進行其他操作,這樣的話,違背了規則的原則,也是一個錯誤的思想,子樹的構建,不應該牽連到父類是什么樣子的。

? ? ? ? 2.在子樹遞歸時,需要時刻注意前根遍歷的開始下標和結束下標,這個一定要判斷好,而對于中根遍歷的的話,因為根在中間,正好可以平均分配,而前根就不一樣了,這是能做出提的關鍵。

class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {if(preorder == null || inorder == null){return null;}return recurseBuildTree(preorder, 0, preorder.length-1, inorder, 0, inorder.length-1);}public TreeNode recurseBuildTree(int[] preorder, int perLeft, int perRight, int[] inorder, int inLeft, int inRight){if(perLeft > perRight || inLeft > inRight){return null;}TreeNode root = new TreeNode(preorder[perLeft]);for(int i=inLeft; i<=inRight; i++){if(inorder[i] == root.val){//(i-inLeft)為左子樹的個數,在加上perLeft,那么就是左子樹的結束root.left = recurseBuildTree(preorder, perLeft+1, i-inLeft+perLeft, inorder, inLeft, i-1);//(i-inLeft)為左子樹的個數,在加上perLeft,那么就是左子樹的結束,再加1,那么就是右子樹的開始root.right = recurseBuildTree(preorder, i-inLeft+perLeft+1, perRight, inorder, i+1, inRight);}}return root;} }

十六:[LeetCode] 70. 爬樓梯

假設你正在爬樓梯。需要 n 階你才能到達樓頂。?
?每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢??

?注意:給定 n 是一個正整數。?
?
示例 1:?
輸入: 2
輸出: 2

解釋: 有兩種方法可以爬到樓頂。
1. ?1 階 + 1 階
2. ?2 階?

示例 2:?
輸入: 3
輸出: 3
?
Related Topics 動態規劃

題解:

使用動態規劃,你爬第n階樓梯時,可以從n-1上來,也可以從n-2階樓梯上來,所以你上樓梯的方法是在n-1和n-2的總和

class Solution {public int climbStairs(int n) {if(n==1) return 1;if(n==2) return 2;int[] dp = new int[n];dp[0] = 1;dp[1] = 2;for(int i=2; i<n;i++){dp[i] = dp[i-1] + dp[i-2];}return dp[n-1];} }

十七:[LeetCode] 189. 旋轉數組

給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。?

?進階:?
?盡可能想出更多的解決方案,至少有三種不同的方法可以解決這個問題。?
?你可以使用空間復雜度為 O(1) 的 原地 算法解決這個問題嗎??

示例 1:
輸入: nums = [1,2,3,4,5,6,7], k = 3
輸出: [5,6,7,1,2,3,4]

解釋:
向右旋轉 1 步: [7,1,2,3,4,5,6]
向右旋轉 2 步: [6,7,1,2,3,4,5]
向右旋轉 3 步: [5,6,7,1,2,3,4]
?

?示例 2:?
?
輸入:nums = [-1,-100,3,99], k = 2
輸出:[3,99,-1,-100]

解釋:?
向右旋轉 1 步: [99,-1,-100,3]
向右旋轉 2 步: [3,99,-1,-100]?

題解:

? ? ? 解法一:可以增加一個數組保存新移動的數據,這個簡單

? ? ? 解法二:先進行整體的反轉,然后根據右移數,進行兩次局部的反轉

?

class Solution {public void rotate(int[] nums, int k) {//先進行整體的反轉,再進行局部的反轉,int length = nums.length;k %= length;//整體反轉 如nums = [1,2,3,4,5,6,7], k = 3recurseArray(nums, 0, length-1); //[7, 6, 5, 4, 3, 2, 1]//局部的反轉recurseArray(nums, 0, k-1); //[5, 6, 7, 4, 3, 2, 1]recurseArray(nums, k, length-1); //[5, 6, 7, 1, 2, 3, 4]}private void recurseArray(int[] nums, int i, int j){//兩兩比較if(i>j){return;}while(i<j){swap(nums, i, j);i++;j--;}}private void swap(int[] nums, int i, int j){int temp = nums[i];nums[i] = nums[j];nums[j] = temp;} }

十八:[LeetCode] 15. 三數之和

給你一個包含 n 個整數的數組?nums,判斷?nums?中是否存在三個元素 a,b,c ,使得?a + b + c = 0 ?請你找出所有和為 0 且不重復的三元組。

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

示例 1:

輸入:nums = [-1,0,1,2,-1,-4]
輸出:[[-1,-1,2],[-1,0,1]]
示例 2:

輸入:nums = []
輸出:[]
示例 3:

輸入:nums = [0]
輸出:[]
?
提示:

0 <= nums.length <= 3000
-105 <= nums[i] <= 105

題解:

? ? ? 可以先對數組進行排序,使用Arrays.sort進行排序,然后數組是從到大進行排序的了,然后使用?a+b = -c,先固定一個數,然后使用雙指針法進行數組的查找,寫代碼時,要注意不能出現重復的數。

需要注意的點:

? ? ? 1.每次都需要進行判斷,當前下標值和上一個下標值是否一樣,一樣則跳過

? ? ? 2.數組只需要遍歷到當前下標值>=0就行,如果都大于1,顯然不滿足條件

class Solution {public List<List<Integer>> threeSum(int[] nums) {if(nums == null){return null;}Arrays.sort(nums);List<List<Integer>> list = new ArrayList<>();for(int i=0; i<nums.length-2 && nums[i]<=0; i++){//去除重復的元素if(i!=0 && nums[i]==nums[i-1]){continue;}int left = i+1;int right = nums.length-1;twoSum(list, nums[i], left, right, nums);}return list;}private void twoSum(List<List<Integer>> list, int target, int left, int right, int[] nums){int pre = nums[left] - 1; //保證第一次pre不能和nums[left]相同,之后會用這個判斷是否發生了重復while(left < right){if(pre == nums[left]){left++;continue;}int temp = 0 - (nums[left] + nums[right]);if(target == temp){pre = nums[left]; //這個要相同之后,再進行一個判斷,防止重復List<Integer> subList = new ArrayList<>();subList.add(nums[left]);subList.add(nums[right]);subList.add(target);list.add(subList);left++;right--; //這步不能忘}else if(target > temp){right--;}else{left++;}}} }

十九:[LeetCode] 3. 無重復字符的最長子串

給定一個字符串,請你找出其中不含有重復字符的?最長子串?的長度。

示例?1:
輸入: s = "abcabcbb"
輸出: 3?
解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。

示例 2:
輸入: s = "bbbbb"
輸出: 1
解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。

示例 3:
輸入: s = "pwwkew"
輸出: 3
解釋: 因為無重復字符的最長子串是?"wke",所以其長度為 3。
?? ? 請注意,你的答案必須是 子串 的長度,"pwke"?是一個子序列,不是子串。

示例 4:
輸入: s = ""
輸出: 0

提示:
0 <= s.length <= 5 * 104
s?由英文字母、數字、符號和空格組成

題解:

? ? ? 使用滑動窗口進行求解,使用map進行存儲已經存在的元素,字符 ->? 數組下標 的形勢進行保存,循環時,每次都判斷,當前字符是否出現過,如果出現過,那么就要更新滑動窗口的開始位置,開始位置的判斷是本題的解題關鍵

解題注意點:

? ? ? ?1.需要到了HashMap的containsKey方法,這個要會寫

? ? ? ?2.在map.get(c)時,可能字符串在map中,但是出現的位置在滑動窗口的左邊,此時這個值是不能算是在滑動窗口出現過的,這個需要特別注意,比如: kababkc,當判斷數組下標為5, 字符'k'時,此時的滑動窗口的開始下標為3, 此時k已經在map中,下標為1 ,所以對于下標開始的判斷很關鍵

class Solution {public int lengthOfLongestSubstring(String s) {int n = s.length();Map<Character, Integer> map = new HashMap<>(); int res = 0;int start = 0;for (int j = 0; j < n; j++) {//取出該元素值char c = s.charAt(j);if(map.containsKey(c)){//得到字符串的下一個位置,這個位置可能會成功滑動窗口的開始位置int start2 = map.get(c)+1;//取出一個最大的當做開始,為什么需要這么做,因為這個map是沒有刪除的,也就是說map中存放的元素,有可能在//滑動窗口的左邊,這時取得值都已經作廢了//比如: kababkc,當判斷數組下標為5, 字符'k'時,此時的滑動窗口的開始下標為3, 此時k已經在map中,下標為1//所以對于下標開始的判斷很關鍵start = Math.max(start, start2);}map.put(c, j);//進行值的更新if(res < (j-start+1)){res = j-start+1;}}return res;} }

二十:[LeetCode] 128. 最長連續序列

給定一個未排序的整數數組?nums?,找出數字連續的最長序列(不要求序列元素在原數組中連續)的長度。

進階:你可以設計并實現時間復雜度為?O(n)?的解決方案嗎?

示例 1:

輸入:nums = [100,4,200,1,3,2] 輸出:4 解釋:最長數字連續序列是 [1, 2, 3, 4]。它的長度為 4。

示例 2:

輸入:nums = [0,3,7,2,5,8,4,6,0,1] 輸出:9

提示:

  • 0 <= nums.length <= 104
  • -109?<= nums[i] <= 109

題解:

? ? ? ?使用哈希表進行解決,依次遍歷整個數組進行查找,而且在查找時,我們只從開始位置進行查詢,也就是說,當我們從 2查找時,1不能存在,1存在的話,就會出現重復,導致我們查找的出現重復。

注意點:

? ? ? ?1.使用HashSet將整個數組進行保存,去重

? ? ? ? 2.依次遍歷數組的每個元素,如果該元素減1,不存放于數組中,那么它就是一個開始位置,我們從這個依次+1,去HashSet中進行查找。

class Solution {public int longestConsecutive(int[] nums) {//先將數都放到HashSet中HashSet<Integer> set = new HashSet<>();for(int i=0;i<nums.length;i++){set.add(nums[i]);}int res = 0;for(int i=0; i<nums.length; i++){int num = nums[i];//set中不包含它的一個數的前驅,說明它就是開始,那么以它為開始節點,進行搜索if(!set.contains(num-1)){//以當前節點為開始,進行一個搜索,如果set中也存放num++,那么長度+1int current = 0;while(set.contains(num+1)){num++;current++;}res = Math.max(res, current+1);}}return res;} }

二十一:[LeetCode] 17. 電話號碼的字母組合

給定一個僅包含數字?2-9?的字符串,返回所有它能表示的字母組合。答案可以按 任意順序 返回。

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

示例 1:

輸入:digits = "23"
輸出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
示例 2:

輸入:digits = ""
輸出:[]
示例 3:

輸入:digits = "2"
輸出:["a","b","c"]
?

提示:

0 <= digits.length <= 4
digits[i] 是范圍 ['2', '9'] 的一個數字。

題解:

? ? ? 全排列的一般都是使用遞歸,此時需要注意的是怎么遞歸,結束條件是什么

注意:

? ? ? ?1.對于每個數字對應的字符進行映射,使用Map<Character, String>進行存儲

? ? ? ?2.獲取到數組對應的String數組,因為每個數字對應一個數組,所以是String,這里依次從String的第一個開始,然后進行遞歸

? ? ? ?3.使用StringBuilder進行保存,可以進行恢復

class Solution {public List<String> letterCombinations(String digits) {if(digits == null || digits.length() == 0){return new ArrayList<>();}Map<Character, String> map = new HashMap<>();map.put('2',"abc");map.put('3',"def");map.put('4',"ghi");map.put('5',"jkl");map.put('6',"mno");map.put('7',"pqrs");map.put('8',"tuv");map.put('9',"wxyz");String[] strArr = new String[digits.length()];for(int i=0; i<digits.length(); i++){char c = digits.charAt(i);strArr[i] = map.get(c);}List<String> list = new ArrayList<>();//從第0個開始,每次遞歸調用recurseCombinations(strArr, 0, list, new StringBuilder());return list;}private void recurseCombinations(String[] strArr, int index, List<String> list, StringBuilder sb){//當遍歷完成后,轉為String,并放到集合中if(strArr.length == index){list.add(sb.toString());return;}char[] chars = strArr[index].toCharArray();//依次遍歷當前的每一個字符for(int i=0; i<chars.length; i++){sb.append(chars[i]);recurseCombinations(strArr, index+1, list, sb);sb.deleteCharAt(index); //進行元素的復原操作}} }

二十二:[LeetCode] 22. 括號生成

數字 n?代表生成括號的對數,請你設計一個函數,用于能夠生成所有可能的并且 有效的 括號組合。

示例 1:

輸入:n = 3
輸出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:

輸入:n = 1
輸出:["()"]

提示:

1 <= n <= 8

題解:

? ? ? ?使用遞歸解決,并且關于字符串使用StringBuilder,?使用兩個變量都為n,?一個代表左括號的剩余數量left,一個代表右括號的剩余數量right,? 初始都為n,?當左括號、右括號剩余數量都為0

時,進行生成字符串。

? ? ? 遞歸的返回條件為left<0? ||??right< 0 ||?left >?right,其中對于left >?right表示的是左括號剩余的大于右括號,如())這樣的就不滿足條件,直接返回。

class Solution {public List<String> generateParenthesis(int n) {List<String> list = new ArrayList<>();StringBuilder sb = new StringBuilder();recurseGenerate(n, n, sb, list);return list;}private void recurseGenerate(int left, int right, StringBuilder sb, List<String> list){if(left > right || left < 0 || right < 0){ //left > right,表示如果左括號剩余的多,說明本次是違規的操作,比如))()((,這樣的輸出不合法return;}if(left == 0 && right == 0){list.add(sb.toString());}recurseGenerate(left-1, right, sb.append("("), list);sb.deleteCharAt(sb.length()-1);recurseGenerate(left, right-1, sb.append(")"), list);sb.deleteCharAt(sb.length()-1);} }

二十三:[LeetCode] 200. 島嶼數量

給你一個由?'1'(陸地)和 '0'(水)組成的的二維網格,請你計算網格中島嶼的數量。

島嶼總是被水包圍,并且每座島嶼只能由水平方向和/或豎直方向上相鄰的陸地連接形成。

此外,你可以假設該網格的四條邊均被水包圍。

示例 1:

輸入:grid = [
? ["1","1","1","1","0"],
? ["1","1","0","1","0"],
? ["1","1","0","0","0"],
? ["0","0","0","0","0"]
]
輸出:1
示例 2:

輸入:grid = [
? ["1","1","0","0","0"],
? ["1","1","0","0","0"],
? ["0","0","1","0","0"],
? ["0","0","0","1","1"]
]
輸出:3
?

提示:

m == grid.length
n == grid[i].length
1 <= m, n <= 300
grid[i][j] 的值為 '0' 或 '1'

題解:

? ? ? ?使用DFS進行求解,如果當前遍歷的坐標符合要求,則將坐標位置置為0

注意點:

? ? ? ?1.遞歸的結束條件

class Solution {public int numIslands(char[][] grid) {int n = grid.length;int m = grid[0].length;int res = 0;for(int i=0; i<n; i++){for(int j=0; j<m; j++){if(grid[i][j] == '1'){res++;recurseNumIslands(grid, i, j);}}}return res;}private void recurseNumIslands(char[][]grid, int i, int j){//遞歸結束條件要清楚,特別是grid[i][j] == '0',不然就會出錯if(i<0 || i>= grid.length || j<0 || j>=grid[0].length || grid[i][j] == '0'){return;}//設置為0grid[i][j] = '0';//進行遞歸recurseNumIslands(grid, i+1 ,j);recurseNumIslands(grid, i-1 , j);recurseNumIslands(grid, i , j+1);recurseNumIslands(grid, i , j-1);} }

二十四:[LeetCode] 543. 二叉樹的直徑

給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過也可能不穿過根結點。?

示例 :?
給定二叉樹?
? ? ? ? ? ?1
? ? ? ? ?/ \
? ? ? ? 2 ? 3
? ? ? ?/ \ ? ??
? ? ? 4 ? 5 ? ?
?返回 3, 它的長度是路徑 [4,2,1,3] 或者 [5,2,1,3]。?

?注意:兩結點之間的路徑長度是以它們之間邊的數目表示。?
?Related Topics 樹

題解:

使用遞歸 + 動態規劃解決問題

?遞歸調用每個節點,而且每個節點保存兩個值,一個是當前節點的最大深度, 一個是以當前節點為一個子樹的內部的最大深度,
?使用數組進行保存,int[2]{maxDiameterWithCurrentRootNode, maxDeep }

?當前節點的使用current[],左節點使用leftTemps[],右節點使用RightTemps[],求當前節點時,左右節點的值均已求出

?current[0] = max(leftTemps[0], ?RightTemps[0], ?leftTemps[1] + RightTemps[1] + 1), 其中leftTemps[1] + RightTemps[1] + 1為已當前節點為根的最大直徑
?current[1] = max(leftTemps[1] , ?RightTemps[1]) + 1

class Solution {public int diameterOfBinaryTree(TreeNode root) {//使用遞歸解決問題,每次保存一個數組,第一個下標為以當前節點為根的最大直徑,//第二個就是以當前節點的的最大深度//使用動態規劃 + 遞歸運算if(root == null){return 0;}int[] temps = recurseDiameter(root);return Math.max(temps[0], temps[1]) - 1;}private int[] recurseDiameter(TreeNode root){if(root == null){return new int[]{0,0};}//leftTemps[0] 代表以root.left為根的最大直徑, leftTemps[1]代表以root.left中的最大深度int[] leftTemps = recurseDiameter(root.left);int[] rightTemps = recurseDiameter(root.right);//當前節點的最大深度int maxdeep = Math.max(leftTemps[1], rightTemps[1]) + 1;//以當前節點為根的最大直徑, 它的取值為Math(左節點為根的最大直徑, 有節點為根的最大直徑, 當前節點為根的最大直徑),取最大的一個int max = Math.max(leftTemps[0], rightTemps[0]);max = Math.max(max, leftTemps[1] + rightTemps[1] + 1);return new int[]{max, maxdeep};} }

二十五:[LeetCode] 146. LRU緩存機制

運用你所掌握的數據結構,設計和實現一個 LRU (最近最少使用) 緩存機制 。?
?
實現 LRUCache 類:?
?
LRUCache(int capacity) 以正整數作為容量 capacity 初始化 LRU 緩存?
int get(int key) 如果關鍵字 key 存在于緩存中,則返回關鍵字的值,否則返回 -1 。?
void put(int key, int value) 如果關鍵字已經存在,則變更其數據值;如果關鍵字不存在,則插入該組「關鍵字-值」。當緩存容量達到上
限時,它應該在寫入新數據之前刪除最久未使用的數據值,從而為新的數據值留出空間。?

進階:你是否可以在 O(1) 時間復雜度內完成這兩種操作??

示例:?
輸入
["LRUCache", "put", "put", "get", "put", "get", "put", "get", "get", "get"]
[[2], [1, 1], [2, 2], [1], [3, 3], [2], [4, 4], [1], [3], [4]]
輸出
[null, null, null, 1, null, -1, null, -1, 3, 4]

解釋
LRUCache lRUCache = new LRUCache(2);
lRUCache.put(1, 1); ?緩存是 {1=1}
lRUCache.put(2, 2); ?緩存是 {1=1, 2=2}
lRUCache.get(1); ? ? 返回 1
lRUCache.put(3, 3); ?該操作會使得關鍵字 2 作廢,緩存是 {1=1, 3=3}
lRUCache.get(2); ? ? 返回 -1 (未找到)
lRUCache.put(4, 4); ?該操作會使得關鍵字 1 作廢,緩存是 {4=4, 3=3}
lRUCache.get(1); ? ? 返回 -1 (未找到)
lRUCache.get(3); ? ? 返回 3
lRUCache.get(4); ? ? 返回 4

?提示:?
?1 <= capacity <= 3000?
?0 <= key <= 3000?
?0 <= value <= 104?
?最多調用 3 * 104 次 get 和 put?

題解:

? ? ? 使用LinkedHashMap可以很輕松的實現,但是你這樣的話,沒有起到自己設計的目的,只是自己調用了API,所以,這里使用HashMap進行設計。

注意點:

? ? ? 1.LRU需要使用鏈表結構進行保存,就像LinkedHashMap一樣,構造虛擬節點內部類,保存到HashMap的value中

? ? ? 2.HashMap中value保存的是虛擬的鏈表節點,如果value直接存放值的話,工作量太大

? ? ? 3.構建出虛擬的頭結點和尾節點,只是用來指明頭尾的位置,這樣的不用考慮空指針異常的問題,這個能想到的話,做題很快的

? ? ? 4.明白LUR的含義,在get時,將訪問的當前節點移動到頭部去,當put時,先查看是否存在,如不存在,則創建虛擬節點進行包裝后,放入,再判斷是否超過最大容量,超過時,則需要刪除。

class LRUCache {class CacheLinked{int key;int val;CacheLinked next;CacheLinked pre;public CacheLinked(){}public CacheLinked(int key, int val){this.key = key;this.val = val;}}//size存放當前元素數, capacity存放最大元素數private int size;private int capacity;private CacheLinked head;private CacheLinked tail;Map<Integer, CacheLinked> map = new HashMap<>();public LRUCache(int capacity) {this.capacity = capacity;//構建頭尾的虛擬節點,不存放任何元素,只是為了操作簡單,不用進行空指針的判斷,如果不構建//虛擬節點有你受的了,光空指針的判斷就很麻煩head = new CacheLinked();tail = new CacheLinked();head.next = tail;tail.pre = head;}public int get(int key) {CacheLinked cache = map.get(key);if(cache == null){return -1;}//更新lru,移除元素,并添加到首部moveCache(cache);addHead(cache);return cache.val;}public void put(int key, int value) {CacheLinked cache = map.get(key);//分兩種情況,緩存已存在,和緩存不存在,if(cache == null){CacheLinked newCache = new CacheLinked(key, value);addHead(newCache);//判斷容量大小,如果超過了,那么就將最就的那個從hashmap中刪除size++;if(size > capacity){CacheLinked oldTail = moveTail();//移除元素map.remove(oldTail.key);}map.put(key, newCache);}else{//更新值cache.val = value;//更新lru,移除元素,并添加到首部moveCache(cache);addHead(cache);}}private void addHead(CacheLinked cache){CacheLinked oldHead = head.next;head.next = cache;cache.next = oldHead;oldHead.pre = cache;cache.pre = head;}private void moveCache(CacheLinked cache){//因為有虛擬節點的存在,根本不用判斷空指針的問題cache.pre.next = cache.next;cache.next.pre = cache.pre;//釋放元素,防止內存遺漏cache.next = null;cache.pre = null;}//移除尾部元素,并將尾部元素進行返回private CacheLinked moveTail(){CacheLinked oldTail = tail.pre;CacheLinked newTail = oldTail.pre;newTail.next = tail;tail.pre = newTail;oldTail.next = null;oldTail.pre = null;return oldTail;} }

二十六:[LeetCode] 337. 打家劫舍

在上次打劫完一條街道之后和一圈房屋后,小偷又發現了一個新的可行竊的地區。這個地區只有一個入口,我們稱之為“根”。 除了“根”之外,每棟房子有且只有一個“父“
房子與之相連。一番偵察之后,聰明的小偷意識到“這個地方的所有房屋的排列類似于一棵二叉樹”。 如果兩個直接相連的房子在同一天晚上被打劫,房屋將自動報警。?

計算在不觸動警報的情況下,小偷一晚能夠盜取的最高金額。?

示例 1:?
輸入: [3,2,3,null,3,null,1]

? ? ?3
? ? / \
? ?2 ? 3
? ? \ ? \?
? ? ?3 ? 1
輸出: 7?
解釋:?小偷一晚能夠盜取的最高金額 = 3 + 3 + 1 = 7.?

示例 2:?
輸入: [3,4,5,1,3,null,1]

?? ? 3
? ? / \
? ?4 ? 5
? / \ ? \?
?1 ? 3 ? 1
輸出: 9
解釋:?小偷一晚能夠盜取的最高金額?= 4 + 5 = 9.
?
Related Topics 樹 深度優先搜索

題解:

????? 使用遞歸 + 動態規劃進行求解,因為每個節點都可以選也可以不選,如果當前節點選擇的話,他的兩個子節點都不能選擇了,所以,我們可以使用數組保存當前節點的兩個狀態,即[0]不選當前節點的最大值, [1]選擇了當前節點的最大值

注意:
? ? ? 1.對于選擇當前節點還好,直接左右節點不選 + 當前節點的value
? ? ? ?而對于不選當前節點,那么左節點和右節點都可以選或者是不選,所以,我們要查出最大的左節點和最大的右節點,如下面這樣情況

? ? ? ? ?3
? ? ? /? ? ?\
? ? ?4? ? ? ?5
? ?/ ? \? ? ? ? \
1 ?10000 ? ?1
? ?當遍歷到根節點3時,我們看根據是不選4這個節點,他的整體會更大一點

class Solution {public int rob(TreeNode root) {if(root == null){return 0;}int[] res = recurseReachMaxRob(root);return Math.max(res[0], res[1]);}public int[] recurseReachMaxRob(TreeNode root) {if(root == null){return new int[]{0, 0};}//[0]不選當前節點的最大值, [1]選擇了當前節點的最大值int[] leftMaxJob = recurseReachMaxRob(root.left);int[] rightMaxJob = recurseReachMaxRob(root.right);//選擇了當前節點,那么它的左右孩子都不能選int selectCurrent = leftMaxJob[0] + rightMaxJob[0] + root.val;//不選擇當前節點的話,那么左右節點都可以選,也都可以不選,這樣要看做大值//這個是解題的關鍵,當前節點不選的,他的子節點可以選,也可以不選,這是,就要取最大的一個,//? 3// / \// 4 5// / \ \// 1 10000 1//當遍歷到根節點3時,我們看根據是不選4這個節點,他的整體會更大一點int noSelectCurrent = Math.max(leftMaxJob[0], leftMaxJob[1]) + Math.max(rightMaxJob[0], rightMaxJob[1]);return new int[]{noSelectCurrent, selectCurrent};} }

二十七:[LeetCode] 101. 對稱二叉樹

給定一個二叉樹,檢查它是否是鏡像對稱的。?

例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。?
? ? ?1
? ?/ \
? 2 ? 2
?/ \ / \
3 ?4 4 ?3

但是下面這個 [1,2,2,null,3,null,3] 則不是鏡像對稱的:?
? ? ?1
? ?/ \
? 2 ? 2
? ?\ ? \
? ?3 ? ?3

進階:?
你可以運用遞歸和迭代兩種方法解決這個問題嗎??
Related Topics 樹 深度優先搜索 廣度優先搜索

題解:
?? ??? ?首先分析下這個對稱二叉樹,也就是一個二叉樹中間對稱。所以我們可以使用遞歸的思想,首先以根節點以及其左右子樹,左子樹的左子樹和右子樹的右子樹相同,左子樹的右子樹和右子樹的左子樹相同。兩個條件都要符合,所以我們第一個傳根節點的左子樹和右子樹,先判斷左右子樹根結點的比較。然后分辨對左子樹的左子樹和右子樹的右子樹。左子樹的右子樹和右子樹的左子樹進行判斷。只有兩個條件都滿足則返回的是true,一層一層遞歸進入,則可以得到結果。
注意:
?? ??? ?1.主要遞歸進行判斷,如果值不相同的話,那么也不是一個鏡像二叉樹
?? ??? ?2.只要有一個返回為false,那么整個結果就會返回false

class Solution {public boolean isSymmetric(TreeNode root) {if(root == null){return false;}return recurseJudgeSymmetric(root.left, root.right);}private boolean recurseJudgeSymmetric(TreeNode left, TreeNode right){if(left == null){//left為null時,判斷right是否為null//right == null,成立返回truereturn right == null;}//此時走到這,說明left不為空了,if(right == null){return false;}//值不相等,則也返回falseif(left.val != right.val){return false;}boolean symmetric1 = recurseJudgeSymmetric(left.left, right.right);boolean symmetric2 = recurseJudgeSymmetric(left.right, right.left);//返回他們之間的 && 運算,只要有一個為false那么就為falsereturn symmetric1 && symmetric2;} }

二十八:[LeetCode] 98. 驗證二叉搜索樹

給定一個二叉樹,判斷其是否是一個有效的二叉搜索樹。?

假設一個二叉搜索樹具有如下特征:?

節點的左子樹只包含小于當前節點的數。?
節點的右子樹只包含大于當前節點的數。?
所有左子樹和右子樹自身必須也是二叉搜索樹。?
?

示例 1:?
輸入:
? ? 2
? ?/ \
? 1 ? 3
輸出: true
?

示例 2:?
輸入:
? ? 5
? ?/ \
? 1 ? 4
? ? ? / \
? ? 3 ? 6
輸出: false
解釋: 輸入為: [5,1,4,null,null,3,6]。
根節點的值為 5 ,但是其右子節點值為 4 。

題解:
?? ??? ?先使用中序遍歷,二叉搜索樹的話,對于中序遍歷來說,整個數組是有序的,所以可以依次判斷數組的后一個是否比前一個數組大,如果小的話,則不滿足。
?? ??? ?
?

class Solution {public boolean isValidBST(TreeNode root) {if(root == null){return false;}//中序遍歷,肯定是遞增的List<Integer> list = new ArrayList<>();//先進行中序遍歷recurseValidBST(root, list);//如果是二叉搜索樹的話,那么數據是有序的,進行遍歷就行for(int i=1; i<list.size(); i++){if(list.get(i-1) >= list.get(i)){return false;}}return true;}private void recurseValidBST(TreeNode root, List<Integer> list){if(root == null){return;}recurseValidBST(root.left, list);list.add(root.val);recurseValidBST(root.right, list);} }

二十九:[LeetCode] 64. 最小路徑和

給定一個包含非負整數的 m x n 網格 grid ,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。?

說明:每次只能向下或者向右移動一步。?

示例 1:?
輸入:grid = [[1,3,1]
? ? ? ? ? ? ,[1,5,1],
? ? ? ? ? ? ?[4,2,1]]
輸出:7
解釋:因為路徑 1→3→1→1→1 的總和最小。
?
示例 2:?
輸入:grid = [[1,2,3],[4,5,6]]
輸出:12

提示:?
遞歸的話,結束條件時什么
到達右下角,則結束, ?結束之后返回值,因為只能向左或者是向右,則進行比較,左右做小值
?m == grid.length?
?n == grid[i].length?
?1 <= m, n <= 200?
?0 <= grid[i][j] <= 100?
?
?Related Topics 數組 動態規劃
?
?題解:
兩種解法: ?
?? ??? ?一種是遞歸,會超時.....................,每次遞歸判斷向左向右的最小值,并進行求值
?? ??? ?二種是動態規劃,第dp[i][j]代表走到i,j所走的最小路徑,那么這個最小路徑和和dp[i-1][j],dp[i][j-1]有關系的,
?? ??? ? ? ? 具體的最小值為dp[i][j] = Math.max(dp[i-1][j], ?dp[i][j-1]) + grid[i][j];

注意:

? ? ? ? 對于臨界點的判斷,因為i=0的話,你再i-1就會出錯了,這個要特別注意

class Solution {public int minPathSum(int[][] grid) {if(grid == null){return 0;}int n = grid.length;int m = grid[0].length;int[][] dp = new int[n][m];for(int i=0; i<n; i++){for(int j=0; j<m; j++){if(i == 0 && j == 0){dp[i][j] = grid[i][j];}else if(i == 0) {//進入這里,i==0,那么j肯定不為0dp[i][j] = dp[i][j-1]+grid[i][j];}else if(j == 0){//進入這里,j==0,那么i肯定不為0dp[i][j] = dp[i-1][j]+grid[i][j];}else{dp[i][j] = Math.min(dp[i-1][j], dp[i][j-1]) + grid[i][j];}}}return dp[n-1][m-1];}// return recurseReachMinPathSum(grid, 0, 0);//這里解法會超時的,不用看public int recurseReachMinPathSum(int[][]grid, int i, int j){//結束條件if(i==grid.length-1 && j==grid[0].length-1){return grid[i][j];}int down = Integer.MAX_VALUE;int right = Integer.MAX_VALUE;//條件判斷,剪紙if(i < grid.length-1){down = recurseReachMinPathSum(grid, i+1, j);}if(j < grid[0].length-1){right = recurseReachMinPathSum(grid, i, j+1);}return Math.min(down, right) + grid[i][j];} }

三十:[LeetCode] 115. 最小棧

設計一個支持 push ,pop ,top 操作,并能在常數時間內檢索到最小元素的棧。?

push(x) —— 將元素 x 推入棧中。?
pop() —— 刪除棧頂的元素。?
top() —— 獲取棧頂元素。?
getMin() —— 檢索棧中的最小元素。?
?
示例:?

輸入:
["MinStack","push","push","push","getMin","pop","top","getMin"]
[[], ? ? ? ?[-2], ? [0], ? [-3], ? ?[], ? ?[], ? [], ? ? []]

輸出:
[null, ? ? ? null, ? null, ?null, ? -3, ? ?null, ?0, ? ? -2]

解釋:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); ? --> 返回 -3.
minStack.pop();
minStack.top(); ? ? ?--> 返回 0.
minStack.getMin(); ? --> 返回 -2.

提示:?
pop、top 和 getMin 操作總是在 非空棧 上調用。?
Related Topics 棧 設計

題解:

? ? ? ?使用額外的一個棧保存當前最小的數,每當一個元素進棧時,都會在兩個棧中各存放一個元素,最小棧中存放的是和之前的進行比較,看哪個小,就將小的放入棧中,具體官方題解有動態圖,這個看一下:https://leetcode-cn.com/problems/min-stack/solution/zui-xiao-zhan-by-leetcode-solution/

?

class MinStack {private LinkedList<Integer> stack;private LinkedList<Integer> minStack;/** initialize your data structure here. */public MinStack() {stack = new LinkedList<>();minStack = new LinkedList<>();}public void push(int x) {//如果為空,則直接存放進去if(stack.size() == 0){minStack.addFirst(x);}else{//不為空,取出最小棧中的頭部,并進行判斷大小,而且每次都會將比較//之后最小的,放入到最小棧中int temp = minStack.getFirst();if(temp > x){minStack.addFirst(x);}else{minStack.addFirst(temp);}}stack.addFirst(x);}public void pop() {stack.removeFirst();minStack.removeFirst();}public int top() {return stack.getFirst();}public int getMin() {return minStack.getFirst();} }

三十一:[LeetCode] 5. 最長回文子串

給你一個字符串 s,找到 s 中最長的回文子串。

?

示例 1:

輸入:s = "babad"
輸出:"bab"
解釋:"aba" 同樣是符合題意的答案。
示例 2:

輸入:s = "cbbd"
輸出:"bb"
示例 3:

輸入:s = "a"
輸出:"a"
示例 4:

輸入:s = "ac"
輸出:"a"
?

提示:

1 <= s.length <= 1000
s 僅由數字和英文字母(大寫和/或小寫)組成

題解:
??? ?

先給出官方題解,然后寫一下自己的理解,需要注意和深刻理解的點:
?? ??? ?1.求dp[i][j]是否是回文串時,需要dp[i+1][j-1]的狀態已知,而對于dp[i+1][j-1]的狀態也是需要它上面的狀態才行,所以,在進行求值時,我們需要先根據內部的才能求出外部的,在
求解時,需要根據長度進行求取,先求出所有的回文子串長度為1的,然后再求出長度為2的,再求為3的
?? ??? ?2.所有循環時,不是對i和j進行循環,外層對長度進行循環,內層對開始位置i進行循環,根據i和長度來確定j的位置,這樣進行求解

class Solution {public String longestPalindrome(String s) {String res = "";int length = s.length();boolean[][] dp = new boolean[length][length];//len代表當前所遍歷的長度,因為只有dp[i][j]判斷的條件是,dp[i+1][j-1]的狀態已知,而對于dp[i+1][j-1]的//狀態怎么得知的,所以,在進行求值時,是根據長度進行的,先求出長度為3的,上面的那個循環已經求得了長度為1和2是不是//回文串了,那就此時就從3開始判斷了for(int len=1; len<=length; len++){//我們判斷時,是從i開始的,如果i+len如果大于length,則說明本次已不滿足條件了,因為,我們遍歷時,是先根據長度進行循環的,for(int i=0; i+len<=length; i++){//i+len-1,表示當前遍歷的j在哪個位置,因為,本次判斷的長度為len,我們開始位置為i,那么j的位置就是i+len了,因為下標//從0開始,則需要-1,就找到了j的位置//始終記住dp[i][j],表示的是從第i為到第j為是不是一個回文串,他們之間的間隔為lenint j = i + len - 1;if(len == 1){dp[i][j] = true;}else if(len == 2){dp[i][j] = (s.charAt(i) == s.charAt(j));}else if(s.charAt(i)==s.charAt(j) && dp[i+1][j-1]){dp[i][j] = true;}//滿足條件,則查看是否需要更新最大值if(dp[i][j] && res.length()<len){res = s.substring(i, j+1);}}}return res;} }

三十二:[LeetCode] 647. 回文子串

給定一個字符串,你的任務是計算這個字符串中有多少個回文子串。?

具有不同開始位置或結束位置的子串,即使是由相同的字符組成,也會被視作不同的子串。?

示例 1:?
輸入:"abc"
輸出:3
解釋:三個回文子串: "a", "b", "c"

示例 2:?
輸入:"aaa"
輸出:6
解釋:6個回文子串: "a", "a", "a", "aa", "aa", "aaa"?

提示:?
輸入的字符串長度不會超過 1000 。?
Related Topics 字符串 動態規劃

題解:
?? ??? ?需要使用動態規劃,思路和leetcode第5題思路是一樣的,主要的還是對于動態轉移方式的判斷,和條件

需要注意的點:
?? ??? ?1.dp[i][j]表示從數組下標i到數組下標j是否是一個回文串,它的轉移方程為dp[i][j] = (arr[i] == arr[j] && dp[i+1][j-1] == true)
?? ??? ?2.求解時,根據長度進行求解,讓回文字串不斷增大,先從長度為1 到長度為length進行判斷

class Solution {public int countSubstrings(String s) {if(s == null || s.length() == 0){return 0;}int length = s.length();int res = 0;boolean[][] dp = new boolean[length][length];//len表示當前的長度,先從1開始判斷,也就是判斷abc中的a是不是回文串//等長度為1的判斷完成后,判斷2的,如ab,bc是不是,再判斷長度為3的//如abc是不是for(int len=1; len<=length; len++){for(int i=0; i+len<=length; i++){//i+len-1,表示結束位置jint j = i + len -1;if(len == 1){dp[i][j] = true;}else if(len == 2){dp[i][j] = s.charAt(i) == s.charAt(j);}else if(s.charAt(i) == s.charAt(j) && dp[i+1][j-1]){dp[i][j] = true;}if(dp[i][j]){res++;}}}return res;} }

三十三:[LeetCode] 33. 搜索旋轉排序數組

整數數組 nums 按升序排列,數組中的值 互不相同 。?

在傳遞給函數之前,nums 在預先未知的某個下標 k(0 <= k < nums.length)上進行了 旋轉,使數組變為 [nums[k], nums[
k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下標 從 0 開始 計數)。例如, [0,1,2
,4,5,6,7] 在下標 3 處經旋轉后可能變為 [4,5,6,7,0,1,2] 。?

給你 旋轉后 的數組 nums 和一個整數 target ,如果 nums 中存在這個目標值 target ,則返回它的索引,否則返回 -1 。?

示例 1:?
輸入:nums = [4,5,6,7,0,1,2], target = 0
輸出:4

示例 2:?
輸入:nums = [4,5,6,7,0,1,2], target = 3
輸出:-1?

示例 3:?
輸入:nums = [1], target = 0
輸出:-1

提示:?
1 <= nums.length <= 5000?
-10^4 <= nums[i] <= 10^4?
nums 中的每個值都 獨一無二?
nums 肯定會在某個點上旋轉?
-10^4 <= target <= 10^4?

進階:你可以設計一個時間復雜度為 O(log n) 的解決方案嗎??
Related Topics 數組 二分查找

題解:

? ? ? ?使用二分進行查詢,當將數組一分為二時,肯定有一份是從小到大排序的,這個是可以肯定的,因為此題有個前提-------數組中的值互不相同,所以,我們解題的關鍵是找到哪一半是升序的,然后依次判斷這個target是否在這個升序排列中,如果不存在,那么就在另一份了,所以此題也是二分的思想

class Solution {public int search(int[] nums, int target) {if(nums == null || nums.length == 0){return -1;}if(nums.length == 1){return nums[0] == target ? 0 : -1;}int left = 0;int right = nums.length-1;int mid = 0;while(left <= right){mid = (left + right)/2;if(nums[mid] == target){return mid;}//從有序的一方進行判斷if(nums[left] <= nums[mid] ){//左邊有序if(nums[left] <= target && nums[mid] > target){right = mid - 1;}else{left = mid + 1;}}else{if(nums[mid] < target && nums[right] >= target){left = mid + 1;}else{right = mid - 1;}}}return -1;} }

三十四:[LeetCode] 56. 合并區間

以數組 intervals 表示若干個區間的集合,其中單個區間為 intervals[i] = [starti, endi] 。請你合并所有重疊的區間,并返
回一個不重疊的區間數組,該數組需恰好覆蓋輸入中的所有區間。?

示例 1:?
輸入:intervals = [[1,3],[2,6],[8,10],[15,18]]
輸出:[[1,6],[8,10],[15,18]]
解釋:區間 [1,3] 和 [2,6] 重疊, 將它們合并為 [1,6].
?
示例 2:?
輸入:intervals = [[1,4],[4,5]]
輸出:[[1,5]]
解釋:區間 [1,4] 和 [4,5] 可被視為重疊區間。?

提示:?
1 <= intervals.length <= 104?
intervals[i].length == 2?
0 <= starti <= endi <= 104?
?
Related Topics 排序 數組

題解:

? ? ? 進行合并的區域,需要先進行排序,因為,可能給的數組不是從小到達排序的,排序時,按照開始節點進行排序,例如給的用例為[[2,3],[4,5],[6,7],[8,9],[1,10]],此時就需要先進行排序了,再排序之后我們就可以發現規律了,如

[[1,10],[2,3],[4,5],[6,7],[8,9]],此時如果需要進行排序,那么肯定是當前遍歷元素的開始比前一個元素的結束要小,此時就要進行合并,而且,再查找一個最大值,作為結束。

class Solution {public int[][] merge(int[][] intervals) {if(intervals == null || intervals.length == 1){return intervals;}ArrayList<int[]> list = new ArrayList<>();//從小到大進行排序,按照起始節點進行排序Arrays.sort(intervals, (a,b) -> a[0] - b[0]);list.add(intervals[0]);for(int i=1; i<intervals.length; i++){//取出最后一個放入的元素,進行判斷int[] temp = list.get(list.size() - 1);//如果當前遍歷的開始,比列表中最后一個要小,也就是列表中最后一個更大,//此時需要加入到其中,并且更新列表中最后一個數的結尾,查看哪個數更大一點if(intervals[i][0] <= temp[1]){temp[1] = Math.max(intervals[i][1], temp[1]);}else{list.add(intervals[i]);}}return list.toArray(new int[][]{});} }

三十五:[LeetCode] 160. 相交鏈表

編寫一個程序,找到兩個單鏈表相交的起始節點。

例如,下面的兩個鏈表:

A: ? ? ? ? ?a1 → a2
? ? ? ? ? ? ? ? ? ?↘
? ? ? ? ? ? ? ? ? ? ?c1 → c2 → c3
? ? ? ? ? ? ? ? ? ?↗ ? ? ? ? ? ?
B: ? ? b1 → b2 → b3
在節點 c1 開始相交。

注意:

如果兩個鏈表沒有交點,返回?null.
在返回結果后,兩個鏈表仍須保持原有的結構。
可假定整個鏈表結構中沒有循環。
程序盡量滿足 O(n) 時間復雜度,且僅用 O(1) 內存。
思路:如果沒有?O(n) 時間復雜度,且僅用 O(1) 內存的條件,這個題很容器寫,但是因為對于時間復雜度和空間復雜度有要求,所以,我們應該再做思考,我們知道,如果兩個鏈表相交,從相交點開始,以后的元素都是相同的,我們設A鏈表中,不重復的為listA,設B鏈表中,不重復的為listB,相同的那部分為AequalB。

????????那么就有listA+AequalB+listB=listB+AequalB+listA,當然這也是顯然易見的,所以我們就可以找到交點了,

????????例如,對于A鏈表,我們a1 → a2 → c1→c2 → c3→b1 → b2 → b3→c1

???????????????????對于B鏈表,我們b1 → b2 → b3→c1 → c2 → c3→a1 → a2→c1

?????????可以發現,我們從A鏈表開始,當A鏈表遍歷完后,再從B鏈表頭節點找,?對于B,我們從B鏈表開始,當B鏈表遍歷完后,再從A鏈表頭節點找,這樣會在相交的地方,兩值相等。
?

注意:

? ? ? ?分為兩種情況,如果A和B鏈一樣長,那么第一次遍歷時,就直接a == b == null了,如果A和B鏈不一樣長,那么第一次遍歷時,就直接a == null時,b一定不是null,那么就需要進行a = headB; b = headA的判斷

public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if(headA==null || headB==null){return null;}//分為兩種情況: 如果A和B鏈一樣長,那么第一次遍歷時,就直接a == b == null了// 如果A和B鏈不一樣長,那么第一次遍歷時,就直接a == null時,b一定不是null,那么就需要進行a = headB; b = headA的判斷//a -> b//c -> d, 如果A和B鏈一樣長,那么第一次遍歷時,就直接a == b == null了,所以直接退出,如果A,B鏈不想等,那么的話,才需要進行二次遍歷//如a -> b//c -> d -> e, 只有A,B鏈不同時為null時,才會走掃描第二次,也就是a = headB; b = headA;才有用ListNode a = headA;ListNode b = headB;while(a != b){if(a == null){a = headB;}else{a = a.next;}if(b == null){b = headA;}else{b = b.next;}}return a;} }

三十六:[LeetCode] 31. 下一個排列

實現獲取 下一個排列 的函數,算法需要將給定數字序列重新排列成字典序中下一個更大的排列。?

如果不存在下一個更大的排列,則將數字重新排列成最小的排列(即升序排列)。?

必須 原地 修改,只允許使用額外常數空間。?

示例 1:?
輸入:nums = [1,2,3]
輸出:[1,3,2]
?
示例 2:?
輸入:nums = [3,2,1]
輸出:[1,2,3]
?
示例 3: ?
輸入:nums = [1,1,5]
輸出:[1,5,1]
?
示例 4:?
輸入:nums = [1]
輸出:[1]
?
提示:?
1 <= nums.length <= 100?
0 <= nums[i] <= 100?
Related Topics 數組

題解:

? ? ? ? ?首先你要知道什么是字典樹,其次你要很清楚怎么根據一個字典樹,找到他的下一個排列的字典樹。這兩點清楚的話,這題并不難,主要的話,還是要理解字典樹,詳細的可以參考這篇:https://blog.csdn.net/qq_33594380/article/details/82377923。

1.字典序值

? ? ? ? ?字典序值就是當前序列在字典序中的排列位置。那給定一個排列,我們應該如何求出它的字典序值呢?

為了求排列對應的序號,只要該序列到第一個序列即1,2,3…n?所需要移動的次數。

移動原則是a[i] 從大到小移動,對于每一個數字a[i],若i前面比a[i] 小的個數正好是a[i] - 1 個,則這個數不需要向后移動以達到目標序列,否則i 后面必然有a[i] - t - 1 (此處t 的值為a[i] 之前比a[i] 小的數字的個數)個比a[i] 小的數,只要把a[i] 移動到比自己小的數后面才能使得移動中的序列正向目標前進。

因此只要求出每個數的移動次數,然后相加就是該序列的位置。即每個數到正確位置需要移動的次數為

—— 這一段引自?https://blog.csdn.net/hello_tomorrow_111/article/details/78696294?并略作優化

啥意思,有點模糊,舉個栗子來解釋一下。我們就以第一點中提到的[1, 2, 3] 的字典序為例,我現在想知道321 在序列中的位置應該怎么計算呢?

(1)找到該序列的第一個序列,即123

(2)從序列左邊開始,查找每個值應該移動的位數。

首先來看3,與第一個序列相比,3 之前本來應該有兩個元素12,但是現在它前面沒有比它小的元素,所以它要移動3 - 1 - 0 (a[i] - t - 1),即兩位到達正序位置。
接著來看2,2 之前應該是有一個元素1,但是它前面也沒有比它小的元素,所以它要向后移動2 - 1 - 0,即一位來達到正序。
對于1 來說,它是排列中最小的元素,它之前不應該有元素,而事實也是如此,所以它不需要移動。
將3 和2 移動的次數相加就是321 在字典序中的字典序值。那么3 和2 分別需要移動多少次才能移動兩位或者一位呢,以3 為例來看一下:

321 中的3 往后移動兩位需要經歷以下流程(回退):231、213、132、123。

2. 下一個序列
字典序值說完了,說說下一個序列,下一個序列求解的思想非常簡單:

(1)從右向左找到第一個左臨小于右臨的位置,左臨的位置標記為i

(2)從右向左找到第一個大于a[i] 的數值,位置為j

(3)交換a[i] 與a[j] 的值

(4)將i 右邊的部分排成正序

如果看這個流程看不懂的話,建議去看Leetcode 上的動圖,保證看幾遍就懂:

https://leetcode-cn.com/problems/next-permutation/solution/

Say sth more (簡稱SM): 為什么要這么做呢,提供一個栗子結合理解,假設我們要求15499 + 1 的和,這個應該怎么算呢?

解法是:從右向左找到第一個不為9 的數值,將該數值加1,然后該數值以后所有的9 都變成0。此例可以與求解下一個序列的過程結合理解。

class Solution {public void nextPermutation(int[] nums) {if(nums == null || nums.length == 1){return;}int length = nums.length;int ans = -1;//1 2 3 8 7 6 5 4// i-1 i//1, 2, 3// ans//第一步.從后向前找第一個,a[i] > a[i-1]的數for(int i=length-1; i>0; i--){if(nums[i] > nums[i-1]){ans = i-1;//break語句不能忘記,不然就錯了......break;}}if(ans == -1){//此時不存在下一個更大的排列,則將數字重新排列成最小的排列reverseArray(nums, 0, length-1);}else{for(int i=length-1; i>=ans; i--){if(nums[i] > nums[ans]){//第二步,元素的交換swapNum(nums, i, ans);//第三步,指定的數據反轉reverseArray(nums, ans+1, length-1);break;}}}}//交換元素private void swapNum(int[] nums, int i, int j){int temp = nums[i];nums[i] = nums[j];nums[j] = temp;}//反轉指定下標范圍內的元素private void reverseArray(int[] nums, int l, int r){while(l<r){swapNum(nums, l, r);l++;r--;}} }

?

總結

以上是生活随笔為你收集整理的LeetCode整理----合集一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品成人av在线观看 | 国产成人久久精品流白浆 | а√天堂www在线天堂小说 | 国产日产欧产精品精品app | 久久人人爽人人爽人人片av高清 | 亚洲成av人片天堂网无码】 | 黄网在线观看免费网站 | 亚洲va欧美va天堂v国产综合 | 亚洲中文字幕乱码av波多ji | 亚洲成av人在线观看网址 | 午夜精品久久久内射近拍高清 | 大肉大捧一进一出视频出来呀 | 国产人妻久久精品二区三区老狼 | 四虎永久在线精品免费网址 | 天天躁日日躁狠狠躁免费麻豆 | 一本一道久久综合久久 | 国产两女互慰高潮视频在线观看 | 国产色精品久久人妻 | 国产激情一区二区三区 | 麻豆精品国产精华精华液好用吗 | 久久 国产 尿 小便 嘘嘘 | 久久精品一区二区三区四区 | 精品国产一区二区三区四区在线看 | 激情内射亚州一区二区三区爱妻 | 国产激情无码一区二区app | 国产69精品久久久久app下载 | 大肉大捧一进一出视频出来呀 | 性色欲情网站iwww九文堂 | 国产香蕉97碰碰久久人人 | 国产精品无码成人午夜电影 | 少妇人妻大乳在线视频 | 天堂在线观看www | 久久久久久久人妻无码中文字幕爆 | 国产内射爽爽大片视频社区在线 | 大乳丰满人妻中文字幕日本 | 国产激情精品一区二区三区 | 久久99热只有频精品8 | 日韩视频 中文字幕 视频一区 | 欧美性猛交xxxx富婆 | 国产 精品 自在自线 | www一区二区www免费 | 亚洲色欲色欲欲www在线 | 沈阳熟女露脸对白视频 | 自拍偷自拍亚洲精品10p | 在线观看免费人成视频 | 天天av天天av天天透 | 午夜无码区在线观看 | 欧美日韩久久久精品a片 | 精品久久久久久亚洲精品 | 99久久无码一区人妻 | 成人性做爰aaa片免费看 | 伊人久久大香线蕉午夜 | 国产精品怡红院永久免费 | 性生交大片免费看l | а天堂中文在线官网 | 久久精品女人的天堂av | 1000部夫妻午夜免费 | 男人的天堂av网站 | 欧洲精品码一区二区三区免费看 | 午夜精品久久久久久久久 | 国产农村乱对白刺激视频 | 国产真实伦对白全集 | 中文字幕无码免费久久9一区9 | 久久精品国产99久久6动漫 | 国产欧美熟妇另类久久久 | 兔费看少妇性l交大片免费 | 熟妇激情内射com | 国产精品亚洲lv粉色 | 国产熟女一区二区三区四区五区 | √天堂资源地址中文在线 | 美女张开腿让人桶 | 四虎国产精品一区二区 | 在线а√天堂中文官网 | 久久国内精品自在自线 | 欧美放荡的少妇 | 5858s亚洲色大成网站www | 欧美日本日韩 | 性史性农村dvd毛片 | 97人妻精品一区二区三区 | 成熟人妻av无码专区 | 亚洲七七久久桃花影院 | 超碰97人人射妻 | 国产片av国语在线观看 | 狠狠色色综合网站 | 无码国产色欲xxxxx视频 | 在线亚洲高清揄拍自拍一品区 | 精品国产一区二区三区四区在线看 | √8天堂资源地址中文在线 | 强辱丰满人妻hd中文字幕 | 国产精品久久久av久久久 | 精品久久久无码中文字幕 | 久久久久av无码免费网 | 300部国产真实乱 | 亚洲高清偷拍一区二区三区 | 亚洲精品无码人妻无码 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲综合伊人久久大杳蕉 | 亚洲欧美精品aaaaaa片 | 免费国产黄网站在线观看 | 国产片av国语在线观看 | 沈阳熟女露脸对白视频 | 久久人人爽人人爽人人片av高清 | 久久久久99精品成人片 | 亚洲熟妇自偷自拍另类 | 国产精品国产三级国产专播 | 国产精品国产自线拍免费软件 | 中文字幕无码视频专区 | 久久精品国产99精品亚洲 | 亚洲国产日韩a在线播放 | 日韩视频 中文字幕 视频一区 | 国产乱人伦偷精品视频 | 亚洲综合无码一区二区三区 | 国产麻豆精品一区二区三区v视界 | 夜夜高潮次次欢爽av女 | 亚洲男女内射在线播放 | 少妇性l交大片欧洲热妇乱xxx | 国产成人精品优优av | 内射老妇bbwx0c0ck | 久久综合给合久久狠狠狠97色 | 纯爱无遮挡h肉动漫在线播放 | 99久久精品日本一区二区免费 | 中文无码伦av中文字幕 | 亚洲а∨天堂久久精品2021 | 亚洲人成人无码网www国产 | 强辱丰满人妻hd中文字幕 | 亚洲人亚洲人成电影网站色 | 国产在线精品一区二区三区直播 | 色婷婷综合激情综在线播放 | 国产精品久久久一区二区三区 | аⅴ资源天堂资源库在线 | 中文无码成人免费视频在线观看 | 一本大道伊人av久久综合 | 欧美成人午夜精品久久久 | 天天拍夜夜添久久精品 | 久久综合香蕉国产蜜臀av | 一本久道久久综合狠狠爱 | 麻花豆传媒剧国产免费mv在线 | 日本xxxx色视频在线观看免费 | 动漫av网站免费观看 | 色婷婷香蕉在线一区二区 | 中文字幕乱码人妻二区三区 | 人妻少妇精品久久 | 亚洲国产精品无码久久久久高潮 | 九九综合va免费看 | 日韩欧美中文字幕在线三区 | 久久久久久久久888 | a在线亚洲男人的天堂 | 亚洲 a v无 码免 费 成 人 a v | 国产三级久久久精品麻豆三级 | 曰韩少妇内射免费播放 | 欧美 日韩 人妻 高清 中文 | 天天躁日日躁狠狠躁免费麻豆 | 97久久超碰中文字幕 | 精品国产av色一区二区深夜久久 | 国产热a欧美热a在线视频 | 三上悠亚人妻中文字幕在线 | 亚洲乱码国产乱码精品精 | 亚洲中文字幕无码一久久区 | 国产内射爽爽大片视频社区在线 | 亚洲成a人片在线观看日本 | 女人被爽到呻吟gif动态图视看 | 97夜夜澡人人双人人人喊 | 国产午夜无码视频在线观看 | 人人妻人人澡人人爽欧美一区 | 国产无套粉嫩白浆在线 | 久久国产36精品色熟妇 | 亚洲码国产精品高潮在线 | 任你躁国产自任一区二区三区 | 国产在线一区二区三区四区五区 | 久久久久国色av免费观看性色 | 国产熟妇高潮叫床视频播放 | 牲交欧美兽交欧美 | а√天堂www在线天堂小说 | 狂野欧美性猛xxxx乱大交 | 内射老妇bbwx0c0ck | 无码人妻少妇伦在线电影 | 成人欧美一区二区三区黑人免费 | 无码一区二区三区在线 | 国产黑色丝袜在线播放 | 无码毛片视频一区二区本码 | 麻豆md0077饥渴少妇 | 亚洲国产精品久久久久久 | 一本色道久久综合亚洲精品不卡 | 午夜肉伦伦影院 | 波多野结衣高清一区二区三区 | 成人三级无码视频在线观看 | 日韩精品无码免费一区二区三区 | 麻豆成人精品国产免费 | 亚洲一区二区三区播放 | 丰满少妇人妻久久久久久 | 香蕉久久久久久av成人 | 76少妇精品导航 | 欧美人与物videos另类 | 俺去俺来也在线www色官网 | 国产网红无码精品视频 | 欧美野外疯狂做受xxxx高潮 | 99er热精品视频 | 丰满人妻被黑人猛烈进入 | 中文字幕日产无线码一区 | 少妇性荡欲午夜性开放视频剧场 | 无码av最新清无码专区吞精 | 天堂久久天堂av色综合 | 特大黑人娇小亚洲女 | 欧美亚洲国产一区二区三区 | 欧洲欧美人成视频在线 | 欧美一区二区三区 | 99精品无人区乱码1区2区3区 | 99久久久无码国产精品免费 | 男人的天堂2018无码 | 中文精品久久久久人妻不卡 | 亚洲国产成人a精品不卡在线 | 国产精品无码永久免费888 | 亚洲综合无码久久精品综合 | 免费国产成人高清在线观看网站 | 高清不卡一区二区三区 | 女人被男人爽到呻吟的视频 | 十八禁真人啪啪免费网站 | 福利一区二区三区视频在线观看 | 影音先锋中文字幕无码 | 欧美精品国产综合久久 | 伊人久久大香线蕉av一区二区 | 久久久精品欧美一区二区免费 | 久久久久免费看成人影片 | 波多野结衣av一区二区全免费观看 | 国产手机在线αⅴ片无码观看 | 欧美精品国产综合久久 | 国产精品无码mv在线观看 | 草草网站影院白丝内射 | 精品乱码久久久久久久 | 国内精品九九久久久精品 | 国产精品a成v人在线播放 | 无码国产乱人伦偷精品视频 | 狠狠色欧美亚洲狠狠色www | 玩弄中年熟妇正在播放 | 国产黑色丝袜在线播放 | 国产精品亚洲а∨无码播放麻豆 | 国产手机在线αⅴ片无码观看 | 午夜福利不卡在线视频 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 少妇人妻大乳在线视频 | 老司机亚洲精品影院无码 | 4hu四虎永久在线观看 | 国产精品人妻一区二区三区四 | 无码福利日韩神码福利片 | 成 人影片 免费观看 | 国产人妻精品午夜福利免费 | 香蕉久久久久久av成人 | 国产绳艺sm调教室论坛 | 疯狂三人交性欧美 | 亚洲成色在线综合网站 | 成熟妇人a片免费看网站 | 亚洲午夜福利在线观看 | 久久国产精品偷任你爽任你 | 婷婷六月久久综合丁香 | 久久精品人人做人人综合试看 | 377p欧洲日本亚洲大胆 | 亚洲成a人一区二区三区 | 色一情一乱一伦一区二区三欧美 | 丰满人妻一区二区三区免费视频 | 国产农村乱对白刺激视频 | 久久久久se色偷偷亚洲精品av | 一本色道久久综合亚洲精品不卡 | 青春草在线视频免费观看 | 欧美精品无码一区二区三区 | 人妻aⅴ无码一区二区三区 | 成人一区二区免费视频 | 精品国偷自产在线视频 | 俺去俺来也www色官网 | 日日夜夜撸啊撸 | 亚洲色在线无码国产精品不卡 | 蜜桃视频韩日免费播放 | 亚洲精品成a人在线观看 | 亚洲国产高清在线观看视频 | 欧美freesex黑人又粗又大 | 久久精品国产日本波多野结衣 | 少妇性l交大片 | 国产人妻久久精品二区三区老狼 | 国产又爽又猛又粗的视频a片 | www国产精品内射老师 | 亚洲中文字幕无码中文字在线 | 秋霞成人午夜鲁丝一区二区三区 | 亚洲中文字幕成人无码 | 国产亚av手机在线观看 | 3d动漫精品啪啪一区二区中 | 十八禁真人啪啪免费网站 | 日本乱人伦片中文三区 | 午夜精品一区二区三区的区别 | 精品国产国产综合精品 | 欧美丰满熟妇xxxx性ppx人交 | 红桃av一区二区三区在线无码av | 中文字幕人妻丝袜二区 | 亚洲无人区午夜福利码高清完整版 | 国产午夜精品一区二区三区嫩草 | 乱人伦人妻中文字幕无码久久网 | 久久久www成人免费毛片 | 性色欲网站人妻丰满中文久久不卡 | 三上悠亚人妻中文字幕在线 | 国产精品理论片在线观看 | 强辱丰满人妻hd中文字幕 | 欧美性猛交xxxx富婆 | 国产美女极度色诱视频www | 亚洲一区av无码专区在线观看 | 日日天日日夜日日摸 | 中文字幕无线码免费人妻 | 欧洲vodafone精品性 | 大肉大捧一进一出好爽视频 | 国产成人综合美国十次 | 久久久精品人妻久久影视 | 色欲av亚洲一区无码少妇 | 亚洲精品国产精品乱码不卡 | 少妇高潮喷潮久久久影院 | 97久久国产亚洲精品超碰热 | 中文字幕av日韩精品一区二区 | 亚洲一区二区三区偷拍女厕 | 日韩av无码中文无码电影 | 老子影院午夜伦不卡 | 国产成人一区二区三区别 | 波多野结衣av在线观看 | 欧美精品在线观看 | 99久久精品午夜一区二区 | 亚洲春色在线视频 | 激情爆乳一区二区三区 | 久久精品99久久香蕉国产色戒 | 人人爽人人澡人人人妻 | 99久久精品午夜一区二区 | 午夜福利试看120秒体验区 | 少妇邻居内射在线 | 中文精品无码中文字幕无码专区 | 久久亚洲a片com人成 | 亚洲七七久久桃花影院 | 麻豆精品国产精华精华液好用吗 | 日本va欧美va欧美va精品 | 一本久道久久综合婷婷五月 | 精品无码一区二区三区爱欲 | 好男人www社区 | 日日摸天天摸爽爽狠狠97 | 国产黑色丝袜在线播放 | 国产午夜视频在线观看 | 免费人成在线观看网站 | 午夜精品一区二区三区的区别 | 俄罗斯老熟妇色xxxx | 大地资源网第二页免费观看 | 中文字幕无码热在线视频 | а天堂中文在线官网 | 中文字幕无线码免费人妻 | 国产精品无码一区二区三区不卡 | 强伦人妻一区二区三区视频18 | 国产精品沙发午睡系列 | 熟妇激情内射com | 日本欧美一区二区三区乱码 | 思思久久99热只有频精品66 | 亚洲第一无码av无码专区 | 亚洲成av人片天堂网无码】 | 高潮喷水的毛片 | 亚洲自偷自偷在线制服 | 国产绳艺sm调教室论坛 | 啦啦啦www在线观看免费视频 | 精品久久久久久人妻无码中文字幕 | 国产免费无码一区二区视频 | 国内少妇偷人精品视频 | 蜜臀aⅴ国产精品久久久国产老师 | 人人妻人人澡人人爽欧美一区 | 草草网站影院白丝内射 | 国产在线aaa片一区二区99 | 国产精品久久久久久亚洲影视内衣 | 国产两女互慰高潮视频在线观看 | 人人妻人人澡人人爽欧美精品 | 狠狠色色综合网站 | 国产亚洲欧美日韩亚洲中文色 | 日本熟妇浓毛 | 国产亚洲人成在线播放 | 欧美人与善在线com | yw尤物av无码国产在线观看 | 色五月丁香五月综合五月 | 岛国片人妻三上悠亚 | 精品国产福利一区二区 | 成熟妇人a片免费看网站 | 亚洲精品一区二区三区在线观看 | 亚洲 欧美 激情 小说 另类 | 亚洲中文无码av永久不收费 | 性生交大片免费看女人按摩摩 | 国产亚洲欧美日韩亚洲中文色 | 国产亚洲欧美日韩亚洲中文色 | 99久久久无码国产精品免费 | 中国大陆精品视频xxxx | 天海翼激烈高潮到腰振不止 | 亚洲色大成网站www | 黑人粗大猛烈进出高潮视频 | 丁香花在线影院观看在线播放 | 亚洲中文字幕va福利 | 成人免费视频视频在线观看 免费 | 午夜嘿嘿嘿影院 | 波多野结衣av一区二区全免费观看 | 无码成人精品区在线观看 | 亚洲中文字幕av在天堂 | 欧美成人高清在线播放 | 人妻夜夜爽天天爽三区 | 亚洲精品国产a久久久久久 | 亚洲色www成人永久网址 | 亚洲人成网站免费播放 | 精品无码一区二区三区爱欲 | 内射老妇bbwx0c0ck | 东京热无码av男人的天堂 | 性欧美大战久久久久久久 | 欧美三级a做爰在线观看 | 国产精品资源一区二区 | 清纯唯美经典一区二区 | 免费无码一区二区三区蜜桃大 | 久久这里只有精品视频9 | 欧美日韩人成综合在线播放 | 国产偷自视频区视频 | 国产精品va在线播放 | 国产另类ts人妖一区二区 | 成人性做爰aaa片免费看不忠 | 欧美国产日韩亚洲中文 | 性生交片免费无码看人 | 国产网红无码精品视频 | 女人高潮内射99精品 | 欧美 日韩 亚洲 在线 | 久久亚洲精品中文字幕无男同 | 亚洲人成影院在线无码按摩店 | 窝窝午夜理论片影院 | 亚洲色无码一区二区三区 | 岛国片人妻三上悠亚 | 婷婷五月综合缴情在线视频 | 成人综合网亚洲伊人 | 国产精品a成v人在线播放 | 狂野欧美性猛交免费视频 | 亚洲精品久久久久中文第一幕 | 婷婷六月久久综合丁香 | 偷窥日本少妇撒尿chinese | 国产97人人超碰caoprom | 色一情一乱一伦一区二区三欧美 | 午夜理论片yy44880影院 | 欧美怡红院免费全部视频 | 久久成人a毛片免费观看网站 | 国产无av码在线观看 | 亚洲国产一区二区三区在线观看 | 久久久久免费精品国产 | 亚洲热妇无码av在线播放 | 久久综合给合久久狠狠狠97色 | 狠狠综合久久久久综合网 | 精品无码av一区二区三区 | 强开小婷嫩苞又嫩又紧视频 | 成熟女人特级毛片www免费 | a片免费视频在线观看 | 一本久道久久综合狠狠爱 | 国产熟女一区二区三区四区五区 | 日本熟妇大屁股人妻 | 国产亚洲精品久久久久久大师 | 一个人免费观看的www视频 | 伊人久久大香线蕉亚洲 | 国产在线aaa片一区二区99 | 熟妇激情内射com | 亚洲区欧美区综合区自拍区 | 领导边摸边吃奶边做爽在线观看 | 男人的天堂2018无码 | 国内揄拍国内精品少妇国语 | 成熟人妻av无码专区 | 一本久道久久综合狠狠爱 | 久久人妻内射无码一区三区 | 国产黄在线观看免费观看不卡 | 亚洲精品国产精品乱码不卡 | 少女韩国电视剧在线观看完整 | 亚洲性无码av中文字幕 | 色综合久久久无码中文字幕 | 成人女人看片免费视频放人 | 久久国产精品精品国产色婷婷 | 亚洲成av人片在线观看无码不卡 | 久久人人爽人人爽人人片ⅴ | 国产香蕉97碰碰久久人人 | 熟妇人妻无码xxx视频 | 国产免费观看黄av片 | 性欧美videos高清精品 | 亚洲日韩av片在线观看 | 牲欲强的熟妇农村老妇女视频 | 无码人妻av免费一区二区三区 | 国产真人无遮挡作爱免费视频 | 午夜嘿嘿嘿影院 | 亚洲爆乳大丰满无码专区 | av在线亚洲欧洲日产一区二区 | 国产一区二区不卡老阿姨 | 爆乳一区二区三区无码 | 国产成人无码区免费内射一片色欲 | 亚洲а∨天堂久久精品2021 | 熟女少妇在线视频播放 | 色婷婷综合中文久久一本 | 无码人妻精品一区二区三区不卡 | 亚洲日本va午夜在线电影 | 午夜不卡av免费 一本久久a久久精品vr综合 | 学生妹亚洲一区二区 | 成人精品天堂一区二区三区 | 久久精品国产一区二区三区 | 小泽玛莉亚一区二区视频在线 | www国产精品内射老师 | 色五月丁香五月综合五月 | 乱人伦人妻中文字幕无码 | 人妻人人添人妻人人爱 | 女人色极品影院 | 色婷婷综合中文久久一本 | 国产成人精品久久亚洲高清不卡 | 久久久久久亚洲精品a片成人 | 久久久久亚洲精品中文字幕 | 久久精品人妻少妇一区二区三区 | 亚洲日韩中文字幕在线播放 | 国产精品办公室沙发 | 伊人久久大香线蕉av一区二区 | 精品欧美一区二区三区久久久 | 国产凸凹视频一区二区 | 狂野欧美性猛交免费视频 | 久久久久免费看成人影片 | 亚洲国产日韩a在线播放 | 精品人妻av区 | 色婷婷综合激情综在线播放 | 樱花草在线播放免费中文 | 精品国产aⅴ无码一区二区 | 日本又色又爽又黄的a片18禁 | 久久综合狠狠综合久久综合88 | 亚洲娇小与黑人巨大交 | 久久久中文久久久无码 | 女人被男人爽到呻吟的视频 | 亚洲成在人网站无码天堂 | 久久人妻内射无码一区三区 | 国产绳艺sm调教室论坛 | 久久精品无码一区二区三区 | 日本熟妇乱子伦xxxx | 欧美激情一区二区三区成人 | 国产欧美精品一区二区三区 | 精品久久久久久亚洲精品 | 又粗又大又硬又长又爽 | 99国产欧美久久久精品 | 精品偷拍一区二区三区在线看 | 国产乱人偷精品人妻a片 | 精品国精品国产自在久国产87 | 国产午夜无码精品免费看 | 国产亚洲精品久久久闺蜜 | 国产精品香蕉在线观看 | 国产午夜福利100集发布 | 一区二区三区乱码在线 | 欧洲 | 激情爆乳一区二区三区 | 国产两女互慰高潮视频在线观看 | 成人毛片一区二区 | 国产福利视频一区二区 | 天堂а√在线中文在线 | 亚洲乱亚洲乱妇50p | 网友自拍区视频精品 | 鲁一鲁av2019在线 | 性色欲情网站iwww九文堂 | 日韩精品久久久肉伦网站 | 人妻天天爽夜夜爽一区二区 | 亚洲精品一区二区三区大桥未久 | 亚洲欧美色中文字幕在线 | 日本大乳高潮视频在线观看 | 熟妇人妻无乱码中文字幕 | 中文字幕精品av一区二区五区 | 色一情一乱一伦一视频免费看 | 成人试看120秒体验区 | 国内丰满熟女出轨videos | 熟妇女人妻丰满少妇中文字幕 | 青草视频在线播放 | 国产欧美精品一区二区三区 | 丰满少妇弄高潮了www | 久久久中文字幕日本无吗 | 丰满人妻翻云覆雨呻吟视频 | 久久午夜夜伦鲁鲁片无码免费 | 午夜精品久久久内射近拍高清 | 国产成人精品优优av | 亚洲精品一区三区三区在线观看 | 在线a亚洲视频播放在线观看 | 欧美性生交活xxxxxdddd | 无套内射视频囯产 | 成年女人永久免费看片 | 99精品无人区乱码1区2区3区 | 少妇被粗大的猛进出69影院 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲欧美中文字幕5发布 | 九九在线中文字幕无码 | 西西人体www44rt大胆高清 | 色欲综合久久中文字幕网 | 国内综合精品午夜久久资源 | 久久午夜无码鲁丝片午夜精品 | a片免费视频在线观看 | 少妇性l交大片欧洲热妇乱xxx | 久久久亚洲欧洲日产国码αv | 久久久久成人片免费观看蜜芽 | 久久久精品欧美一区二区免费 | 国产精品二区一区二区aⅴ污介绍 | 国产精品亚洲一区二区三区喷水 | 一本加勒比波多野结衣 | 亚洲精品一区二区三区在线观看 | 久精品国产欧美亚洲色aⅴ大片 | 欧美亚洲日韩国产人成在线播放 | 成在人线av无码免费 | 久久99精品国产麻豆 | 国产偷抇久久精品a片69 | 欧洲精品码一区二区三区免费看 | 一二三四在线观看免费视频 | 综合激情五月综合激情五月激情1 | 99久久久无码国产aaa精品 | 青草青草久热国产精品 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 日本护士毛茸茸高潮 | 久久人妻内射无码一区三区 | 18精品久久久无码午夜福利 | 精品午夜福利在线观看 | 国产99久久精品一区二区 | 国模大胆一区二区三区 | 欧美精品在线观看 | 国产亚洲视频中文字幕97精品 | 国产在线无码精品电影网 | 激情综合激情五月俺也去 | 特黄特色大片免费播放器图片 | 国产午夜亚洲精品不卡 | 丰满人妻翻云覆雨呻吟视频 | 鲁鲁鲁爽爽爽在线视频观看 | 一个人免费观看的www视频 | 少妇人妻av毛片在线看 | 国产午夜手机精彩视频 | 少妇性荡欲午夜性开放视频剧场 | 国产亚洲精品久久久ai换 | 99久久精品无码一区二区毛片 | 99riav国产精品视频 | 国产精品理论片在线观看 | 亚洲另类伦春色综合小说 | 亚洲中文字幕无码中文字在线 | 亚洲国精产品一二二线 | a片在线免费观看 | 国产后入清纯学生妹 | 欧美日韩一区二区三区自拍 | 久久aⅴ免费观看 | 国产在线一区二区三区四区五区 | 久久久久se色偷偷亚洲精品av | 少妇无码av无码专区在线观看 | 女人被男人躁得好爽免费视频 | 无码国模国产在线观看 | 亚洲精品国产第一综合99久久 | 国产亲子乱弄免费视频 | 任你躁在线精品免费 | 亚洲乱码国产乱码精品精 | 国产精品人妻一区二区三区四 | 亚洲狠狠婷婷综合久久 | 亚洲日本一区二区三区在线 | 日韩欧美群交p片內射中文 | 久久国产36精品色熟妇 | 国产精品美女久久久网av | 久久久久国色av免费观看性色 | 亚洲欧洲日本综合aⅴ在线 | 亚洲国产精品美女久久久久 | 国产成人一区二区三区别 | 国产精品久久久一区二区三区 | 图片区 小说区 区 亚洲五月 | 人人妻人人藻人人爽欧美一区 | 欧美zoozzooz性欧美 | v一区无码内射国产 | 99精品国产综合久久久久五月天 | 成年美女黄网站色大免费全看 | 日本饥渴人妻欲求不满 | 无码吃奶揉捏奶头高潮视频 | 日本乱人伦片中文三区 | 国产在线aaa片一区二区99 | 日本精品高清一区二区 | 波多野结衣高清一区二区三区 | 人人超人人超碰超国产 | 国产绳艺sm调教室论坛 | 精品久久久久久人妻无码中文字幕 | 日日碰狠狠躁久久躁蜜桃 | 国产乱子伦视频在线播放 | 人人澡人人妻人人爽人人蜜桃 | 亚洲大尺度无码无码专区 | 97夜夜澡人人爽人人喊中国片 | 欧美日本精品一区二区三区 | 久久精品国产大片免费观看 | 国产无av码在线观看 | 激情爆乳一区二区三区 | 亚洲第一无码av无码专区 | 国产色视频一区二区三区 | 国精品人妻无码一区二区三区蜜柚 | 蜜桃臀无码内射一区二区三区 | 沈阳熟女露脸对白视频 | 午夜精品久久久久久久久 | 国产人妻精品一区二区三区不卡 | 中文字幕无码热在线视频 | 成人动漫在线观看 | 日本乱人伦片中文三区 | 日本一区二区三区免费播放 | 欧美熟妇另类久久久久久多毛 | 99久久精品日本一区二区免费 | 亚洲va中文字幕无码久久不卡 | а√天堂www在线天堂小说 | 7777奇米四色成人眼影 | 最近中文2019字幕第二页 | 九九热爱视频精品 | 国产精品a成v人在线播放 | 日韩精品a片一区二区三区妖精 | 亚洲国产精品久久久天堂 | 亚洲欧洲无卡二区视頻 | 亚洲国产欧美在线成人 | 亚洲小说图区综合在线 | 亚洲国产av精品一区二区蜜芽 | 骚片av蜜桃精品一区 | 国产超碰人人爽人人做人人添 | 国产精品va在线播放 | 国产超碰人人爽人人做人人添 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 久久精品女人天堂av免费观看 | 色一情一乱一伦 | 岛国片人妻三上悠亚 | 高潮毛片无遮挡高清免费 | 欧美人妻一区二区三区 | 一区二区三区高清视频一 | 欧美怡红院免费全部视频 | 久久人妻内射无码一区三区 | 麻豆人妻少妇精品无码专区 | 欧美老妇交乱视频在线观看 | 午夜无码人妻av大片色欲 | 国产精品久久久 | 久久国语露脸国产精品电影 | 亚洲一区二区三区在线观看网站 | 精品日本一区二区三区在线观看 | 成人无码影片精品久久久 | 全黄性性激高免费视频 | 亚洲а∨天堂久久精品2021 | 亚洲s码欧洲m码国产av | 4hu四虎永久在线观看 | 中文字幕乱妇无码av在线 | 国内精品久久毛片一区二区 | 18禁黄网站男男禁片免费观看 | 国产精品亚洲专区无码不卡 | 大地资源网第二页免费观看 | 久久精品成人欧美大片 | 日日麻批免费40分钟无码 | 亚洲欧美日韩综合久久久 | 久久精品一区二区三区四区 | 日本乱偷人妻中文字幕 | 两性色午夜免费视频 | 内射后入在线观看一区 | 欧美兽交xxxx×视频 | 又紧又大又爽精品一区二区 | 亚洲成熟女人毛毛耸耸多 | 青春草在线视频免费观看 | 成人三级无码视频在线观看 | 国产精品美女久久久 | 中文字幕日韩精品一区二区三区 | 欧美黑人巨大xxxxx | 日日碰狠狠躁久久躁蜜桃 | 亚洲欧洲中文日韩av乱码 | 在线 国产 欧美 亚洲 天堂 | 亚洲精品一区三区三区在线观看 | 18禁止看的免费污网站 | 玩弄人妻少妇500系列视频 | 久久精品丝袜高跟鞋 | 欧美成人免费全部网站 | 精品国产aⅴ无码一区二区 | 四虎4hu永久免费 | 性啪啪chinese东北女人 | 成人性做爰aaa片免费看 | 99国产欧美久久久精品 | 少妇被粗大的猛进出69影院 | 久久综合狠狠综合久久综合88 | 国产绳艺sm调教室论坛 | 国产内射爽爽大片视频社区在线 | 成人试看120秒体验区 | 亚洲国产精品久久久天堂 | 美女扒开屁股让男人桶 | av无码不卡在线观看免费 | 丰满肥臀大屁股熟妇激情视频 | 国产农村妇女高潮大叫 | 少妇久久久久久人妻无码 | 99精品无人区乱码1区2区3区 | 国产成人综合色在线观看网站 | 国产亚洲精品久久久久久国模美 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲欧美日韩成人高清在线一区 | 久久综合激激的五月天 | 国产精品理论片在线观看 | 国产乱码精品一品二品 | 男女猛烈xx00免费视频试看 | 国产精品18久久久久久麻辣 | aa片在线观看视频在线播放 | 免费无码av一区二区 | 成人无码影片精品久久久 | 国产尤物精品视频 | 国产精品多人p群无码 | 日本又色又爽又黄的a片18禁 | 国产99久久精品一区二区 | 色窝窝无码一区二区三区色欲 | 午夜精品久久久内射近拍高清 | 久久伊人色av天堂九九小黄鸭 | 天堂亚洲2017在线观看 | 18精品久久久无码午夜福利 | 国内综合精品午夜久久资源 | 超碰97人人做人人爱少妇 | 一区二区三区高清视频一 | 国产精品久久久久无码av色戒 | 国产乱人伦偷精品视频 | 国产亚洲精品久久久ai换 | 国产精品二区一区二区aⅴ污介绍 | 精品无码av一区二区三区 | 国产精品美女久久久久av爽李琼 | 天下第一社区视频www日本 | 精品国产乱码久久久久乱码 | 天天拍夜夜添久久精品 | 奇米影视888欧美在线观看 | 少妇被黑人到高潮喷出白浆 | 水蜜桃色314在线观看 | 色狠狠av一区二区三区 | 国产精品a成v人在线播放 | 天天综合网天天综合色 | 国产在线无码精品电影网 | 99久久亚洲精品无码毛片 | 久久精品国产精品国产精品污 | 无套内谢老熟女 | 最近中文2019字幕第二页 | 成 人 免费观看网站 | 亚洲欧美综合区丁香五月小说 | 2020最新国产自产精品 | www国产精品内射老师 | 免费中文字幕日韩欧美 | 亚洲精品国偷拍自产在线麻豆 | 国产精品国产自线拍免费软件 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 国产成人一区二区三区在线观看 | 日韩无套无码精品 | 国产人妖乱国产精品人妖 | 最近中文2019字幕第二页 | 国产精品久久久久久亚洲毛片 | 人妻aⅴ无码一区二区三区 | 日本xxxx色视频在线观看免费 | 国产亚洲精品久久久久久 | 亚洲伊人久久精品影院 | 色欲人妻aaaaaaa无码 | 国产麻豆精品一区二区三区v视界 | 亚洲综合另类小说色区 | 少妇无码一区二区二三区 | 曰本女人与公拘交酡免费视频 | 精品aⅴ一区二区三区 | 欧美日韩视频无码一区二区三 | 日韩亚洲欧美精品综合 | 国产小呦泬泬99精品 | 人人澡人人透人人爽 | 四十如虎的丰满熟妇啪啪 | 亚洲国产精品美女久久久久 | 国产精品.xx视频.xxtv | 强辱丰满人妻hd中文字幕 | 夜夜夜高潮夜夜爽夜夜爰爰 | 日本又色又爽又黄的a片18禁 | 亚洲乱亚洲乱妇50p | 丰满少妇高潮惨叫视频 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲综合久久一区二区 | 久久国产精品精品国产色婷婷 | 日日天干夜夜狠狠爱 | 熟妇人妻中文av无码 | 日本高清一区免费中文视频 | 亚洲色无码一区二区三区 | 欧美丰满熟妇xxxx性ppx人交 | 国产疯狂伦交大片 | 狠狠色噜噜狠狠狠7777奇米 | 又紧又大又爽精品一区二区 | 无码人妻丰满熟妇区五十路百度 | 久久精品成人欧美大片 | 7777奇米四色成人眼影 | 色婷婷欧美在线播放内射 | 帮老师解开蕾丝奶罩吸乳网站 | 国产三级精品三级男人的天堂 | 妺妺窝人体色www在线小说 | 伊人久久大香线蕉av一区二区 | 成人无码精品1区2区3区免费看 | 亚洲国产成人av在线观看 | 无码帝国www无码专区色综合 | 夜夜高潮次次欢爽av女 | 国产三级精品三级男人的天堂 | 人人妻人人澡人人爽欧美一区九九 | a国产一区二区免费入口 | 精品 日韩 国产 欧美 视频 | 亚洲中文字幕无码中文字在线 | 久久亚洲a片com人成 | 亚洲a无码综合a国产av中文 | 无码国产色欲xxxxx视频 | 好爽又高潮了毛片免费下载 | 久久综合香蕉国产蜜臀av | 国产在热线精品视频 | 成人女人看片免费视频放人 | 国产69精品久久久久app下载 | 无码任你躁久久久久久久 | 日日摸天天摸爽爽狠狠97 | 亚洲最大成人网站 | 成人无码视频在线观看网站 | 欧美丰满少妇xxxx性 | 欧美xxxxx精品 | 色婷婷综合中文久久一本 | 日本丰满熟妇videos | 亚洲人成网站色7799 | 亚洲精品中文字幕久久久久 | 荫蒂被男人添的好舒服爽免费视频 | 国产成人精品久久亚洲高清不卡 | 国产亚洲人成在线播放 | 亚洲欧洲无卡二区视頻 | 亚洲va中文字幕无码久久不卡 | 成人片黄网站色大片免费观看 | 欧美老熟妇乱xxxxx | 久久亚洲中文字幕精品一区 | 熟妇人妻中文av无码 | 欧美日韩亚洲国产精品 | 亚洲 另类 在线 欧美 制服 | 久久综合网欧美色妞网 | 在线 国产 欧美 亚洲 天堂 | 野外少妇愉情中文字幕 | 亚洲成熟女人毛毛耸耸多 | 人人妻人人澡人人爽人人精品 | 女人和拘做爰正片视频 | 学生妹亚洲一区二区 | 丰满少妇人妻久久久久久 | 强开小婷嫩苞又嫩又紧视频 | 99久久精品午夜一区二区 | 精品少妇爆乳无码av无码专区 | 天堂а√在线中文在线 | 国产亚洲欧美日韩亚洲中文色 | 131美女爱做视频 | 丰满护士巨好爽好大乳 | 无码精品国产va在线观看dvd | 中文字幕av无码一区二区三区电影 | 国产超级va在线观看视频 | 国产精品福利视频导航 | 中文字幕日韩精品一区二区三区 | 亚洲欧美日韩国产精品一区二区 | 中文字幕av伊人av无码av | 午夜嘿嘿嘿影院 | 色妞www精品免费视频 | 亚洲精品国产精品乱码不卡 | 国产真人无遮挡作爱免费视频 | 日韩 欧美 动漫 国产 制服 | 精品欧美一区二区三区久久久 | 在线观看国产午夜福利片 | 欧美第一黄网免费网站 | 国产香蕉尹人综合在线观看 | 乌克兰少妇xxxx做受 | 99riav国产精品视频 | 国产免费久久精品国产传媒 | 国产精品久久久久久久9999 | √8天堂资源地址中文在线 | 欧美日韩色另类综合 | 亚洲va中文字幕无码久久不卡 | 国产无遮挡又黄又爽免费视频 | 国产一区二区三区精品视频 | 亚洲国产成人a精品不卡在线 | 久久熟妇人妻午夜寂寞影院 | 全黄性性激高免费视频 | 内射白嫩少妇超碰 | 日韩欧美中文字幕公布 | 在线精品国产一区二区三区 | 少妇的肉体aa片免费 | 亚洲自偷自偷在线制服 | 国产av剧情md精品麻豆 | 亚洲 激情 小说 另类 欧美 | 在教室伦流澡到高潮hnp视频 | 欧美性猛交内射兽交老熟妇 | 欧美 日韩 人妻 高清 中文 | 亚洲另类伦春色综合小说 | 亚洲精品中文字幕 | 久久亚洲精品中文字幕无男同 | 1000部夫妻午夜免费 | 亚洲一区二区三区国产精华液 | 国产免费无码一区二区视频 | 一本大道久久东京热无码av | 欧美一区二区三区视频在线观看 | 国产尤物精品视频 | 亚洲欧美色中文字幕在线 | 色综合久久久无码中文字幕 | 亚洲午夜无码久久 | 国内老熟妇对白xxxxhd | 久久亚洲中文字幕精品一区 | 亚洲熟悉妇女xxx妇女av | 国产成人综合在线女婷五月99播放 | 国产精品美女久久久网av | 精品一区二区不卡无码av | 欧美亚洲国产一区二区三区 | 欧美成人午夜精品久久久 | 亚洲欧洲中文日韩av乱码 | 国内精品人妻无码久久久影院蜜桃 | 精品久久久中文字幕人妻 | 精品亚洲韩国一区二区三区 | 狂野欧美性猛xxxx乱大交 | 无码精品人妻一区二区三区av | 55夜色66夜色国产精品视频 | 亚洲色偷偷男人的天堂 | 欧美成人免费全部网站 | 亚洲一区av无码专区在线观看 | 麻豆精品国产精华精华液好用吗 | 国产精品丝袜黑色高跟鞋 | 国产av无码专区亚洲a∨毛片 | 久久97精品久久久久久久不卡 | 天堂无码人妻精品一区二区三区 | 久久久久久久人妻无码中文字幕爆 | 扒开双腿吃奶呻吟做受视频 | 国产又爽又黄又刺激的视频 | 在线看片无码永久免费视频 | 99久久久无码国产精品免费 | 精品无码一区二区三区的天堂 | 天天做天天爱天天爽综合网 | 国产办公室秘书无码精品99 | 少妇无码av无码专区在线观看 | 久久无码中文字幕免费影院蜜桃 | 亚洲欧洲日本无在线码 | 亚洲阿v天堂在线 | 东京热男人av天堂 | 大乳丰满人妻中文字幕日本 | 国产凸凹视频一区二区 | 性做久久久久久久久 | 亚洲乱码日产精品bd | 久久久久亚洲精品中文字幕 | 中文久久乱码一区二区 | 欧美日韩一区二区三区自拍 | 成 人影片 免费观看 | 日韩精品无码免费一区二区三区 | 亚洲欧美精品aaaaaa片 | 强伦人妻一区二区三区视频18 | 图片区 小说区 区 亚洲五月 | 亚洲中文无码av永久不收费 | 一本色道久久综合亚洲精品不卡 | 欧洲精品码一区二区三区免费看 | 亚洲 a v无 码免 费 成 人 a v | 日韩av无码一区二区三区不卡 | 日本va欧美va欧美va精品 | 久久国产精品萌白酱免费 | 久久久久久国产精品无码下载 | 亚洲乱码日产精品bd | 免费看少妇作爱视频 | 国产熟妇另类久久久久 | 国产成人无码区免费内射一片色欲 | 波多野结衣av在线观看 | 亚拍精品一区二区三区探花 | 55夜色66夜色国产精品视频 | 国产成人无码午夜视频在线观看 | 未满小14洗澡无码视频网站 | 欧美三级不卡在线观看 | 欧美老妇与禽交 | 欧洲精品码一区二区三区免费看 | 日本一区二区三区免费播放 | 巨爆乳无码视频在线观看 | 亚洲国产一区二区三区在线观看 | 麻豆国产丝袜白领秘书在线观看 | 鲁大师影院在线观看 | 国产激情一区二区三区 | 亚洲精品成人福利网站 | 蜜桃臀无码内射一区二区三区 | 丝袜人妻一区二区三区 | 国产三级久久久精品麻豆三级 | 亚洲国产综合无码一区 | 粉嫩少妇内射浓精videos | 人人妻人人澡人人爽欧美一区 | 欧洲熟妇精品视频 | 国产精品无码mv在线观看 | 欧美喷潮久久久xxxxx | 九九综合va免费看 | 中文字幕中文有码在线 | 性做久久久久久久久 | 国产人妻久久精品二区三区老狼 | 亚洲色成人中文字幕网站 | 国产一区二区不卡老阿姨 | 国产午夜亚洲精品不卡下载 | 成人片黄网站色大片免费观看 | 日本丰满熟妇videos | 玩弄人妻少妇500系列视频 | 欧美日韩一区二区综合 | 日日摸天天摸爽爽狠狠97 | 亚洲色成人中文字幕网站 | 国产人妻大战黑人第1集 | 亚洲日韩一区二区三区 | 欧美第一黄网免费网站 | 色窝窝无码一区二区三区色欲 | 玩弄少妇高潮ⅹxxxyw | 国产精品99久久精品爆乳 | 国语自产偷拍精品视频偷 | 欧美丰满少妇xxxx性 | 激情综合激情五月俺也去 | 熟女少妇在线视频播放 | 精品久久久久久亚洲精品 | 国产婷婷色一区二区三区在线 | 内射爽无广熟女亚洲 | 日产精品高潮呻吟av久久 | 大肉大捧一进一出视频出来呀 | 无码人妻出轨黑人中文字幕 | 久久精品国产精品国产精品污 | 乌克兰少妇xxxx做受 | 欧美精品无码一区二区三区 | 亚拍精品一区二区三区探花 | 亚洲无人区午夜福利码高清完整版 | 欧美激情综合亚洲一二区 | 中文字幕无线码 | 成人欧美一区二区三区 | 国产一区二区三区日韩精品 | 成人精品一区二区三区中文字幕 | 玩弄人妻少妇500系列视频 | 亚洲精品美女久久久久久久 | 久久亚洲中文字幕精品一区 | 野外少妇愉情中文字幕 | 国产一区二区三区四区五区加勒比 | 成在人线av无码免观看麻豆 | 久久精品中文字幕大胸 | 久久精品丝袜高跟鞋 | 日本一卡二卡不卡视频查询 | 伊人久久大香线蕉av一区二区 | 国产激情综合五月久久 | 少妇愉情理伦片bd | 亚洲国产精品成人久久蜜臀 | 影音先锋中文字幕无码 | 国产熟妇另类久久久久 | 日本高清一区免费中文视频 | 影音先锋中文字幕无码 | 亚洲国精产品一二二线 | 亚洲精品久久久久avwww潮水 | 国产成人精品三级麻豆 | 少妇激情av一区二区 | 久久久精品成人免费观看 | aⅴ亚洲 日韩 色 图网站 播放 | 日本免费一区二区三区最新 | 日本一区二区三区免费高清 | 欧美阿v高清资源不卡在线播放 | 青草视频在线播放 | 婷婷五月综合激情中文字幕 | 国内丰满熟女出轨videos | 婷婷色婷婷开心五月四房播播 | 午夜福利一区二区三区在线观看 | 精品日本一区二区三区在线观看 | 亚洲日韩精品欧美一区二区 | 色偷偷人人澡人人爽人人模 | 国产凸凹视频一区二区 | 国产成人人人97超碰超爽8 | 亚洲啪av永久无码精品放毛片 | 欧美 亚洲 国产 另类 | 18黄暴禁片在线观看 | 亚洲成色www久久网站 | 亚洲国产精品成人久久蜜臀 | 天堂а√在线中文在线 | 日韩欧美群交p片內射中文 | 亚无码乱人伦一区二区 | 国产精品美女久久久久av爽李琼 | 欧美成人高清在线播放 | 亚洲国产高清在线观看视频 | 麻豆国产人妻欲求不满谁演的 | 大色综合色综合网站 | 少妇一晚三次一区二区三区 | 色婷婷综合中文久久一本 | 亚洲日本在线电影 | 自拍偷自拍亚洲精品10p | 国产成人精品一区二区在线小狼 | 女人高潮内射99精品 | 午夜丰满少妇性开放视频 | 老子影院午夜伦不卡 | 日韩精品无码一本二本三本色 | 欧美人妻一区二区三区 | 国产真实夫妇视频 | 亚洲一区二区三区偷拍女厕 | 国产精品亚洲五月天高清 | 国产内射爽爽大片视频社区在线 | 精品乱子伦一区二区三区 | 亚洲精品成人av在线 | 狠狠亚洲超碰狼人久久 | 亚洲爆乳大丰满无码专区 | 亚洲中文字幕在线无码一区二区 | 日韩人妻无码一区二区三区久久99 | 国产激情精品一区二区三区 | 狠狠色色综合网站 | 女人色极品影院 | 亚洲人成无码网www | 国产内射爽爽大片视频社区在线 | 无码午夜成人1000部免费视频 | 日日橹狠狠爱欧美视频 | 樱花草在线社区www | 99麻豆久久久国产精品免费 | 日韩亚洲欧美中文高清在线 | 波多野结衣一区二区三区av免费 | 丰满妇女强制高潮18xxxx | 中文久久乱码一区二区 | 青春草在线视频免费观看 | 国产成人无码午夜视频在线观看 | 欧美freesex黑人又粗又大 | 亚洲精品一区二区三区大桥未久 | 最新版天堂资源中文官网 | 国产午夜福利100集发布 | 性欧美疯狂xxxxbbbb | 亚洲国产精品久久久天堂 | 国产偷抇久久精品a片69 | 国产色在线 | 国产 | 亚洲成av人综合在线观看 | 未满小14洗澡无码视频网站 | 欧美老妇交乱视频在线观看 | 国产精品人妻一区二区三区四 | 午夜无码区在线观看 | 香港三级日本三级妇三级 | 国产无套粉嫩白浆在线 | 亚洲综合无码久久精品综合 | 欧美 日韩 亚洲 在线 | 亚洲无人区午夜福利码高清完整版 | 国产一区二区三区日韩精品 | 精品国产一区二区三区四区在线看 | 荡女精品导航 | 国产人妻大战黑人第1集 | 国产在线精品一区二区三区直播 | 粉嫩少妇内射浓精videos | 国产成人综合在线女婷五月99播放 | 日韩人妻无码中文字幕视频 | 亚洲va中文字幕无码久久不卡 | 久久久久久av无码免费看大片 | 麻豆国产97在线 | 欧洲 | 曰本女人与公拘交酡免费视频 | 久久无码人妻影院 | 中文字幕+乱码+中文字幕一区 | 国产精品国产自线拍免费软件 | 国产成人精品一区二区在线小狼 | 一本色道久久综合狠狠躁 | 欧美日本免费一区二区三区 | 国产成人精品三级麻豆 | 好男人www社区 | 国产激情一区二区三区 | 漂亮人妻洗澡被公强 日日躁 | 欧美第一黄网免费网站 | 国产精品资源一区二区 | 97夜夜澡人人双人人人喊 | 又粗又大又硬又长又爽 | 亚洲日韩av一区二区三区中文 | 成人三级无码视频在线观看 | 鲁鲁鲁爽爽爽在线视频观看 | 日日摸日日碰夜夜爽av | 亚洲国产高清在线观看视频 | 一本大道伊人av久久综合 | 蜜桃臀无码内射一区二区三区 | 精品午夜福利在线观看 | 欧美zoozzooz性欧美 | 高潮毛片无遮挡高清免费 | 亚洲gv猛男gv无码男同 | 台湾无码一区二区 | 国产内射爽爽大片视频社区在线 | 亚洲成av人片在线观看无码不卡 | 亚洲aⅴ无码成人网站国产app | 初尝人妻少妇中文字幕 | 熟女俱乐部五十路六十路av | 久久精品无码一区二区三区 | 亚洲乱码国产乱码精品精 | 亚洲中文字幕av在天堂 | 国产三级久久久精品麻豆三级 | 熟妇人妻激情偷爽文 | 51国偷自产一区二区三区 | 99久久久国产精品无码免费 | 亚洲の无码国产の无码影院 | 亚洲日韩一区二区 | 欧美 日韩 人妻 高清 中文 | 亚洲精品一区二区三区在线观看 | 中文字幕乱妇无码av在线 | 国产麻豆精品一区二区三区v视界 | 亚洲の无码国产の无码步美 | 四虎影视成人永久免费观看视频 | 国产精品99爱免费视频 | 我要看www免费看插插视频 | 久久精品女人天堂av免费观看 | 亲嘴扒胸摸屁股激烈网站 | 男女作爱免费网站 | 欧美自拍另类欧美综合图片区 | 福利一区二区三区视频在线观看 | 牛和人交xxxx欧美 | 国产成人无码区免费内射一片色欲 | 乱人伦中文视频在线观看 | 少妇被黑人到高潮喷出白浆 | 风流少妇按摩来高潮 | 免费国产黄网站在线观看 | 久久综合九色综合97网 | 亚洲日韩av一区二区三区中文 | 在线看片无码永久免费视频 | 丰满岳乱妇在线观看中字无码 | 久久久国产一区二区三区 | 欧美熟妇另类久久久久久多毛 | 东京无码熟妇人妻av在线网址 | 欧美大屁股xxxxhd黑色 | 亚洲 高清 成人 动漫 | 人人妻人人澡人人爽人人精品 | 国产精品无套呻吟在线 | 正在播放东北夫妻内射 | 无码人妻精品一区二区三区不卡 | 四虎影视成人永久免费观看视频 | 亚洲无人区午夜福利码高清完整版 | 欧美日韩综合一区二区三区 | 成人欧美一区二区三区黑人免费 | 国产亚洲人成a在线v网站 | 国产精品亚洲综合色区韩国 | 中文无码伦av中文字幕 | 国产乡下妇女做爰 | 久久精品一区二区三区四区 | 波多野结衣av一区二区全免费观看 | 国产亚洲tv在线观看 | 少妇性荡欲午夜性开放视频剧场 | 免费看男女做好爽好硬视频 | 亚洲国产精品成人久久蜜臀 | 男人的天堂2018无码 | 亚洲熟熟妇xxxx | 中文无码精品a∨在线观看不卡 | 精品人人妻人人澡人人爽人人 | 国精品人妻无码一区二区三区蜜柚 | 久久国产自偷自偷免费一区调 | 色欲人妻aaaaaaa无码 | 亚洲男人av香蕉爽爽爽爽 | 性生交大片免费看女人按摩摩 | 欧美一区二区三区视频在线观看 | 久久精品无码一区二区三区 | 亚洲人成影院在线无码按摩店 | 国产在线精品一区二区高清不卡 | 精品人妻人人做人人爽 | www成人国产高清内射 | 激情内射日本一区二区三区 | 精品国产成人一区二区三区 | 午夜理论片yy44880影院 | 色偷偷人人澡人人爽人人模 | 99在线 | 亚洲 | 强辱丰满人妻hd中文字幕 | 日本一卡二卡不卡视频查询 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产精品高潮呻吟av久久4虎 | 正在播放老肥熟妇露脸 | 蜜桃av抽搐高潮一区二区 | 国产黑色丝袜在线播放 | 久久99精品久久久久婷婷 | 蜜桃视频韩日免费播放 | 亚洲中文字幕在线无码一区二区 | 激情人妻另类人妻伦 | 亚洲日韩av一区二区三区中文 | 成人性做爰aaa片免费看不忠 | 日韩精品无码一本二本三本色 | 成人精品视频一区二区三区尤物 | 国产手机在线αⅴ片无码观看 | 亚洲精品无码国产 | 久久久国产精品无码免费专区 | 亚洲va欧美va天堂v国产综合 | 国产精品久久久一区二区三区 | 国产激情无码一区二区app | www国产亚洲精品久久网站 | 精品久久久无码中文字幕 | 日韩精品无码一区二区中文字幕 | 人人妻人人澡人人爽精品欧美 | 无码纯肉视频在线观看 | 蜜桃臀无码内射一区二区三区 | 成年美女黄网站色大免费全看 | 亚洲色在线无码国产精品不卡 | 97无码免费人妻超级碰碰夜夜 | 熟女少妇在线视频播放 | 久在线观看福利视频 | 欧美黑人乱大交 | 免费人成在线观看网站 | 亚洲成熟女人毛毛耸耸多 | 亲嘴扒胸摸屁股激烈网站 | 精品国产av色一区二区深夜久久 | 国产精品-区区久久久狼 | 国产高清不卡无码视频 | 激情五月综合色婷婷一区二区 | 国产又爽又猛又粗的视频a片 | 久久伊人色av天堂九九小黄鸭 | 亚洲 欧美 激情 小说 另类 | 麻花豆传媒剧国产免费mv在线 | 色婷婷av一区二区三区之红樱桃 | 帮老师解开蕾丝奶罩吸乳网站 | 日韩欧美群交p片內射中文 | 激情内射亚州一区二区三区爱妻 | 少妇人妻av毛片在线看 | 久久99精品久久久久久 | 狂野欧美激情性xxxx | 中文字幕无码av激情不卡 | 天下第一社区视频www日本 | 亚洲午夜福利在线观看 | 色欲综合久久中文字幕网 | 一个人免费观看的www视频 | 亚洲中文字幕在线观看 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 亚洲自偷精品视频自拍 | 国产亚洲精品精品国产亚洲综合 | 美女极度色诱视频国产 | 少妇人妻偷人精品无码视频 | 国产亚洲欧美日韩亚洲中文色 | 久久久亚洲欧洲日产国码αv | 乱码av麻豆丝袜熟女系列 | 天天躁日日躁狠狠躁免费麻豆 | 黑人粗大猛烈进出高潮视频 | 中文字幕无码av波多野吉衣 | 色五月丁香五月综合五月 | 国产偷抇久久精品a片69 | 色婷婷综合中文久久一本 | 天堂一区人妻无码 | av无码久久久久不卡免费网站 | 亚洲国产成人av在线观看 | 亚洲欧美中文字幕5发布 | 中文精品久久久久人妻不卡 | 天天综合网天天综合色 | 国产精品亚洲五月天高清 | 九九在线中文字幕无码 | 一本久道久久综合婷婷五月 | 国产乱人伦偷精品视频 | 欧美zoozzooz性欧美 | 国产区女主播在线观看 | 男人和女人高潮免费网站 | 久久久无码中文字幕久... | 日本一卡二卡不卡视频查询 | 在线 国产 欧美 亚洲 天堂 | 久久精品无码一区二区三区 | 国产精品久久国产三级国 | 真人与拘做受免费视频 | 四虎国产精品免费久久 | 美女毛片一区二区三区四区 | 亚洲欧洲中文日韩av乱码 | 中文字幕人成乱码熟女app | 性欧美牲交xxxxx视频 | 亚洲 a v无 码免 费 成 人 a v | 黑人粗大猛烈进出高潮视频 | 天堂无码人妻精品一区二区三区 | 5858s亚洲色大成网站www | 国内精品久久毛片一区二区 | 无遮无挡爽爽免费视频 | 国产又爽又黄又刺激的视频 | 亚洲综合在线一区二区三区 | 午夜精品久久久久久久 | 麻豆成人精品国产免费 | 夜精品a片一区二区三区无码白浆 | 精品亚洲成av人在线观看 | 欧美亚洲日韩国产人成在线播放 | 久久综合网欧美色妞网 | 成人无码精品1区2区3区免费看 | 亚洲欧洲日本无在线码 | 99视频精品全部免费免费观看 | 日本爽爽爽爽爽爽在线观看免 | 久久99精品久久久久久动态图 | 国产午夜手机精彩视频 | 亚洲国产精品久久久久久 | 亚洲一区二区三区偷拍女厕 | 久久精品国产日本波多野结衣 | 欧美性生交xxxxx久久久 | а√天堂www在线天堂小说 | 性生交大片免费看女人按摩摩 | 国产成人无码av在线影院 | 少妇无码一区二区二三区 | 日本精品少妇一区二区三区 | 理论片87福利理论电影 | 性啪啪chinese东北女人 | 精品国产一区二区三区四区在线看 | 中文字幕无码热在线视频 | 少妇厨房愉情理9仑片视频 | 日韩无码专区 | 最近免费中文字幕中文高清百度 | 国产绳艺sm调教室论坛 | 欧美老妇交乱视频在线观看 | 国产在线精品一区二区三区直播 | 国产精品人人爽人人做我的可爱 | 人人爽人人澡人人高潮 | 人妻少妇精品久久 | 国产莉萝无码av在线播放 | 无码吃奶揉捏奶头高潮视频 | 欧美阿v高清资源不卡在线播放 | 夜精品a片一区二区三区无码白浆 | 国产人成高清在线视频99最全资源 | 国产精品久久久久久亚洲影视内衣 | 亚洲人成无码网www | 亚洲欧美精品伊人久久 | 妺妺窝人体色www婷婷 | 久久精品人人做人人综合试看 | 乱人伦中文视频在线观看 | а√资源新版在线天堂 | 亚洲天堂2017无码中文 | 精品国产av色一区二区深夜久久 | 亚洲色大成网站www国产 | 国产亚洲欧美日韩亚洲中文色 | 日本精品人妻无码77777 天堂一区人妻无码 | 无码帝国www无码专区色综合 | 欧美老人巨大xxxx做受 | 久久精品国产99精品亚洲 | 亚洲精品久久久久中文第一幕 | 美女扒开屁股让男人桶 | 无码人中文字幕 | 亚洲日本在线电影 | 18无码粉嫩小泬无套在线观看 | 日欧一片内射va在线影院 | 一本久道高清无码视频 | 亚洲中文字幕va福利 | 成年美女黄网站色大免费全看 | 无码av中文字幕免费放 | 精品偷自拍另类在线观看 | 狠狠躁日日躁夜夜躁2020 | 97精品国产97久久久久久免费 | 2020久久香蕉国产线看观看 | 网友自拍区视频精品 | 高潮毛片无遮挡高清免费 | 欧美日韩色另类综合 | 精品无码国产一区二区三区av | 亚洲国产欧美日韩精品一区二区三区 | 免费无码一区二区三区蜜桃大 | 国产精品人人爽人人做我的可爱 | 日本在线高清不卡免费播放 | 无码福利日韩神码福利片 | 日韩少妇白浆无码系列 | 免费观看激色视频网站 | 免费人成在线视频无码 | 日韩人妻无码中文字幕视频 | 久久精品国产一区二区三区 | 日本高清一区免费中文视频 | 女人高潮内射99精品 | 国产69精品久久久久app下载 | 亚洲成a人片在线观看日本 | 日韩在线不卡免费视频一区 | 久久综合九色综合欧美狠狠 | 成人片黄网站色大片免费观看 | 人人澡人人透人人爽 | 极品尤物被啪到呻吟喷水 | 97精品人妻一区二区三区香蕉 | 99re在线播放 | 成人欧美一区二区三区黑人 | 亚洲熟妇色xxxxx欧美老妇y | 少妇被黑人到高潮喷出白浆 | 精品久久8x国产免费观看 | 中文字幕 亚洲精品 第1页 | 性生交大片免费看女人按摩摩 | 麻豆国产97在线 | 欧洲 | 免费观看的无遮挡av | 宝宝好涨水快流出来免费视频 | 国产精品国产自线拍免费软件 | 日本一卡二卡不卡视频查询 | 97精品人妻一区二区三区香蕉 | 日韩人妻无码中文字幕视频 | 国产成人亚洲综合无码 | 影音先锋中文字幕无码 | 99久久精品国产一区二区蜜芽 | 久精品国产欧美亚洲色aⅴ大片 | 中文字幕乱妇无码av在线 | 东京热无码av男人的天堂 | 日本丰满熟妇videos | 国产亚洲精品精品国产亚洲综合 | 亚洲自偷自偷在线制服 | 丰满少妇高潮惨叫视频 | 激情爆乳一区二区三区 | 免费无码的av片在线观看 | 午夜精品一区二区三区在线观看 | 人妻有码中文字幕在线 | 国产精品久久久久久亚洲影视内衣 | 亚洲日韩av一区二区三区中文 | 色妞www精品免费视频 | 18禁黄网站男男禁片免费观看 | 中文字幕无码免费久久9一区9 | 色爱情人网站 | 亚洲爆乳精品无码一区二区三区 | 久久久久久a亚洲欧洲av冫 | 欧洲美熟女乱又伦 | 久久无码中文字幕免费影院蜜桃 | 日韩欧美中文字幕在线三区 | 一个人看的www免费视频在线观看 | 国产精品第一国产精品 | 国产成人人人97超碰超爽8 | 国产精品亚洲综合色区韩国 | 久久亚洲国产成人精品性色 | 国产绳艺sm调教室论坛 | 亚洲色无码一区二区三区 | 欧洲美熟女乱又伦 | 国产精品无码mv在线观看 | 少妇性l交大片欧洲热妇乱xxx | 免费视频欧美无人区码 | 国产精品人妻一区二区三区四 | 精品久久久久久人妻无码中文字幕 | 无码一区二区三区在线 | 小sao货水好多真紧h无码视频 | 久久久婷婷五月亚洲97号色 | 国产午夜手机精彩视频 | √8天堂资源地址中文在线 | 欧美午夜特黄aaaaaa片 | 色综合视频一区二区三区 | 国产麻豆精品一区二区三区v视界 | 特级做a爰片毛片免费69 | 天堂在线观看www | 熟妇人妻无码xxx视频 | 亚洲日韩av一区二区三区中文 | 女人高潮内射99精品 | 嫩b人妻精品一区二区三区 | 国产偷抇久久精品a片69 | www国产亚洲精品久久久日本 | 亚洲 另类 在线 欧美 制服 | 特黄特色大片免费播放器图片 | 成人女人看片免费视频放人 | 欧美国产亚洲日韩在线二区 | 国产三级精品三级男人的天堂 | 国产成人无码av一区二区 | 日韩av无码一区二区三区不卡 | 永久黄网站色视频免费直播 | 内射爽无广熟女亚洲 | 最近免费中文字幕中文高清百度 | 精品国产一区二区三区四区 | 一区二区传媒有限公司 | 久久精品国产99久久6动漫 | 四虎国产精品一区二区 | 国产精品美女久久久久av爽李琼 | 亚洲毛片av日韩av无码 | 清纯唯美经典一区二区 | 亚洲aⅴ无码成人网站国产app | 国产69精品久久久久app下载 | 黑森林福利视频导航 | 精品人妻人人做人人爽夜夜爽 | 激情五月综合色婷婷一区二区 | 成人片黄网站色大片免费观看 | 亚洲色在线无码国产精品不卡 | 国产熟女一区二区三区四区五区 | 国产在线无码精品电影网 | 国产亚洲人成在线播放 | 国产精品va在线观看无码 | 丰满人妻一区二区三区免费视频 | 久久99精品国产.久久久久 | 午夜无码人妻av大片色欲 | 高清国产亚洲精品自在久久 | 亚洲国产精品久久久天堂 | 色 综合 欧美 亚洲 国产 | 久激情内射婷内射蜜桃人妖 | 久久久www成人免费毛片 | 台湾无码一区二区 | 精品国产青草久久久久福利 | 未满小14洗澡无码视频网站 | 夜夜影院未满十八勿进 | 又紧又大又爽精品一区二区 | 真人与拘做受免费视频 | 精品国偷自产在线视频 | 亚洲七七久久桃花影院 | 少妇性l交大片欧洲热妇乱xxx | 国产精品99爱免费视频 | 97无码免费人妻超级碰碰夜夜 | 欧美人与物videos另类 | 色欲av亚洲一区无码少妇 | 一本大道久久东京热无码av | 国产精品毛多多水多 | 亚洲国产精品无码一区二区三区 | 男女作爱免费网站 | 人人妻人人澡人人爽人人精品 | 色欲人妻aaaaaaa无码 | 亚洲日韩中文字幕在线播放 | 精品国产乱码久久久久乱码 | 成人女人看片免费视频放人 | 久久精品人人做人人综合试看 | 黄网在线观看免费网站 | 精品少妇爆乳无码av无码专区 | 沈阳熟女露脸对白视频 | 国产综合久久久久鬼色 | 国产精品久久久av久久久 | 国产在线精品一区二区三区直播 | 丰满诱人的人妻3 | 亚洲成色在线综合网站 | 伊人色综合久久天天小片 | 久久zyz资源站无码中文动漫 | a片免费视频在线观看 | 88国产精品欧美一区二区三区 | 51国偷自产一区二区三区 | 欧美35页视频在线观看 | 久久久精品人妻久久影视 | 日韩精品成人一区二区三区 | 国产后入清纯学生妹 | 亚洲人成网站在线播放942 | 蜜桃视频插满18在线观看 | 免费观看激色视频网站 | 波多野结衣高清一区二区三区 | 装睡被陌生人摸出水好爽 | 日韩成人一区二区三区在线观看 | 亚洲综合伊人久久大杳蕉 | 性生交大片免费看女人按摩摩 | 日本一区二区三区免费播放 | 国内精品人妻无码久久久影院蜜桃 | 国产深夜福利视频在线 | 日本www一道久久久免费榴莲 | 久久99热只有频精品8 | 亚洲午夜福利在线观看 | 国产肉丝袜在线观看 | 国产av人人夜夜澡人人爽麻豆 | 强辱丰满人妻hd中文字幕 | 精品熟女少妇av免费观看 | 在线播放免费人成毛片乱码 | 国精产品一品二品国精品69xx | 欧美第一黄网免费网站 | 99久久精品无码一区二区毛片 | 国产乱人伦av在线无码 | 欧美人与善在线com |