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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

leetcode hot100(第二部分) + python(c++)

發布時間:2024/7/23 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode hot100(第二部分) + python(c++) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

50-1. 乘積最大子數組

思路1:找到狀態轉移方程:

maxf[i]:表示在i處最大連乘數
minf[i]:表示在i處最小連乘數
maxf[i] = max(nums[i],nums[i]*minf[i-1],nums[i]*maxf[i-1])
minf[i] = min(nums[i],nums[i]*minf[i-1],nums[i]*maxf[i-1])

#maxf[i]:表示在i處最大連乘數 #minf[i]:表示在i處最小連乘數 #maxf[i] = max(nums[i],nums[i]*minf[i-1],nums[i]*maxf[i-1]) #minf[i] = min(nums[i],nums[i]*minf[i-1],nums[i]*maxf[i-1]) class Solution:def maxProduct(self, nums):n = len(nums)maxf,minf = [0]*n,[0] * nmaxf[0],minf[0] = nums[0],nums[0]for i in range(1,n):maxf[i] = max(nums[i], nums[i] * minf[i - 1], nums[i] * maxf[i-1])minf[i] = min(nums[i], nums[i] * minf[i - 1], nums[i] * maxf[i-1])print('==maxf:', maxf)return max(maxf)nums = [2,3,-2,4] sol = Solution() sol.maxProduct(nums)

思路2:優化版 由于第 i?個狀態只和第 i - 1個狀態相關,可以只用兩個變量來維護 i - 1時刻的狀態,一個維護 max, 一個維護 min

class Solution:def maxProduct(self, nums):min_value = nums[0]max_value = nums[0]res = nums[0]for i in range(1, len(nums)):mx = max_valuemn = min_valuemax_value = max(nums[i], nums[i]*mx, nums[i]*mn)min_value = min(nums[i], nums[i]*mx, nums[i]*mn)print('==max_value:', max_value)print('==min_value:', min_value)res = max(max_value, res)print('==res:', res) nums = [2,3,-2,4] sol = Solution() sol.maxProduct(nums)

50-2.三個數的最大乘積

思路:從小到大排序,如果都是正數則結果是最后三個相乘,如有正有負,結果有可能就是前兩個相乘在乘以最后一個正數

class Solution:def maximumProduct(self, nums):nums = sorted(nums)return max(nums[-1]*nums[-2]*nums[-3], nums[0]*nums[1]*nums[-1])# nums = [1, 2, 3, 4] nums = [-1, -2, 1, 2, 3] sol = Solution() sol.maximumProduct(nums)

51. 最小棧

class MinStack:def __init__(self):"""initialize your data structure here."""self.stack = []def push(self, x: int) -> None:self.stack.append(x)def pop(self) -> None:self.stack.pop()def top(self) -> int:return self.stack[-1]def min(self) -> int:return min(self.stack)# Your MinStack object will be instantiated and called as such: # obj = MinStack() # obj.push(x) # obj.pop() # param_3 = obj.top() # param_4 = obj.min()

c++實現:

class MinStack { public:stack<int> stack_A;stack<int> min_stack;/** initialize your data structure here. */MinStack() {}void push(int x) {stack_A.push(x);if(min_stack.empty() || min_stack.top()>=x){min_stack.push(x);}}void pop() {if(stack_A.top() == min_stack.top()){min_stack.pop();}stack_A.pop();}int top() {return stack_A.top();}int min() {return min_stack.top();} };/*** Your MinStack object will be instantiated and called as such:* MinStack* obj = new MinStack();* obj->push(x);* obj->pop();* int param_3 = obj->top();* int param_4 = obj->min();*/

52.多數元素

排序:

class Solution:def majorityElement(self, nums: List[int]) -> int:return sorted(nums)[len(nums)//2]

投票法(最優解):

class Solution:def majorityElement(self, nums: List[int]) -> int:votes = 0for num in nums:if votes == 0:x = numif num == x:votes += 1else:votes -= 1# print('==x:', x)# print('==votes:', votes)return x

53-1.打家劫舍

class Solution(object):def rob(self, nums):""":type nums: List[int]:rtype: int"""if len(nums)==0:return 0if len(nums)<2:return max(nums)opt = [0]*len(nums)opt[0] = nums[0]opt[1] = max(nums[0],nums[1])for i in range(2, len(nums)):opt[i] = max(opt[i-2]+nums[i],opt[i-1])print('=opt:', opt)return max(opt)nums = [2,7,9,3,1] sol = Solution() sol.rob(nums)

53-2. 打家劫舍 II

class Solution(object):def rob(self, nums):""":type nums: List[int]:rtype: int"""if len(nums)==0:return 0if len(nums)<=2:return max(nums)opt1 = [0] * len(nums)opt2 = [0] * len(nums)#不搶第一家opt1[0] = 0opt1[1] = nums[1]#不搶最后一家opt2[0] = nums[0]opt2[1] = max(nums[:2])for i in range(2,len(nums)):opt1[i]=max(opt1[i-2]+nums[i], opt1[i-1])print(opt1)for i in range(2, len(nums)-1):opt2[i] = max(opt2[i - 2] + nums[i], opt2[i - 1])print(opt2)return max(opt1[-1],opt2[-2]) nums=[1,2,3,1] sol = Solution() res = sol.rob(nums) print('res:') print(res)

53-3. 打家劫舍 III

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution:def helper(self,node):if node is None:return 0, 0choose_l_value,no_choose_l_value = self.helper(node.left)choose_r_value,no_choose_r_value = self.helper(node.right)return node.val+no_choose_l_value+no_choose_r_value, max(choose_l_value,no_choose_l_value)+max(choose_r_value,no_choose_r_value)def rob(self, root: TreeNode) -> int:return max(self.helper(root))

54.島嶼數量

思路:遞歸 也就是求1的連通域個數,從1開始進行遍歷,將遍歷過得1依次置位0,遍歷的次數就是連通域個數

# 求1的連通域個數,從1開始進行遍歷,將遍歷過得1依次置位0,遍歷的次數就是連通域個數 class Solution:def helper(self, i, j, h, w):if i < 0 or i >= h or j < 0 or j >= w or self.grid[i][j] == "0":returnself.grid[i][j] = "0"self.helper(i - 1, j, h, w)self.helper(i + 1, j, h, w)self.helper(i, j-1, h, w)self.helper(i, j+1, h, w)def numIslands(self, grid):if len(grid) == 0:return []self.grid = gridh, w = len(grid), len(grid[0])nums = 0for i in range(h):for j in range(w):if self.grid[i][j] == "1":nums += 1self.helper(i, j, h, w)print('==self.grid:', self.grid)print('==nums:', nums)return numsgrid = [["1", "1", "1", "1", "0"],["1", "1", "0", "1", "0"],["1", "1", "0", "0", "0"],["0", "0", "0", "0", "0"] ]sol = Solution() sol.numIslands(grid)

?c++實現:

class Solution { public:vector<vector<char>> grid;int h;int w;void help(int i, int j){if(i < 0 || i > this->h - 1 || j < 0 || j > this->w - 1 || this->grid[i][j] == '0'){return ;}this->grid[i][j] = '0';help(i - 1, j);help(i + 1, j);help(i, j - 1);help(i, j + 1);}int numIslands(vector<vector<char>>& grid) {this->grid = grid;this->h = grid.size();this->w = grid[0].size();int res = 0;for(int i = 0; i < this->h; i++){for(int j = 0; j < this->w; j++){if(this->grid[i][j] == '1'){res += 1;}help(i, j);}}return res;} };

55.反轉鏈表

思路1:雙指針?

class Solution(object):def reverseList(self, head):""":type head: ListNode:rtype: ListNode"""# 申請兩個節點,pre和 cur,pre指向Nonepre = Nonecur = head# 遍歷鏈表,while循環里面的內容其實可以寫成一行while cur:# 記錄當前節點的下一個節點tmp = cur.next# 然后將當前節點指向precur.next = pre# pre和cur節點都前進一位pre = curcur = tmpreturn pre

c++實現:

/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/ class Solution { public:ListNode* reverseList(ListNode* head) {ListNode* pre = nullptr;ListNode* temp = head;while(head){temp = head->next;head->next = pre;pre = head;head = temp;}return pre;} };

思路2.遞歸法

# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = Noneclass Solution:def reverseList(self, head: ListNode) -> ListNode:# pre = None# cur = head# while cur:# node = cur.next# cur.next = pre# pre = cur# cur = node# return preif head is None or head.next is None:return headnew_node = self.reverseList(head.next)print('head.val',head.val)head.next.next = headhead.next = Nonereturn new_node

56-1.?課程表

標題

思路:對于這種從圖找拓撲排序?,只有有向無環圖能夠找到,將入度為0的節點先進入隊列,在利用bfs進行出隊處理,此時將出隊的節點的下一個節點的度進行減一計數,同時遍歷的節點數進行加一,最終節點都進行了遍歷,則說明找到了拓撲排序.

思路1:用鄰接列表

class Solution:def canFinish(self, numCourses, prerequisites):indegrees = [0] * numCourses # 入度列表print('==indegrees:', indegrees)adjacency = [[] for i in range(numCourses)] # 鄰接列表 存儲節點的下一個節點print('=adjacency:', adjacency)#得到入度和每個課程的鄰接列表for cur, pre in prerequisites:indegrees[cur] += 1adjacency[pre].append(cur)print('====indegrees:', indegrees)print('====adjacency:', adjacency)quene = []# 如果度為0 就進入隊列for i in range(len(indegrees)):if indegrees[i] == 0:quene.append(i)print('==quene:', quene)num_nodes = 0while quene:node = quene.pop(0)num_nodes += 1for next_node in adjacency[node]:indegrees[next_node] -= 1 # 找出下一個點相應的度-1if indegrees[next_node] == 0: # 入度為0quene.append(next_node)print('==num_nodes:', num_nodes)return num_nodes == numCourses# numCourses, prerequisites = 2, [[1, 0]] # numCourses, prerequisites = 2, [[1, 0], [0, 1]] numCourses, prerequisites = 6, [[3, 0], [3, 1], [4, 1], [4, 2], [5, 3], [5, 4]] sol = Solution() res = sol.canFinish(numCourses, prerequisites) print('res:', res)

思路2:用鄰接矩陣的bfs

class Solution:def canFinish(self, numCourses, prerequisites):indegrees = [0] * numCourses # 度列表adjacency = [[0 for i in range(numCourses)] for i in range(numCourses)] # 鄰接矩陣 表示節點之間關系print('==init adjacency:', adjacency)for cur, pre in prerequisites:indegrees[cur] += 1adjacency[pre][cur] = 1print('==init adjacency complete:', adjacency)print('==init indegrees complete:', indegrees)quene = []for i in range(len(indegrees)):if indegrees[i] == 0:quene.append(i)print('==quene:', quene)num_nodes = 0while quene:node = quene.pop()num_nodes += 1for j in range(numCourses):if adjacency[node][j] == 1:next_node = jadjacency[node][j] -= 1indegrees[next_node] -= 1if indegrees[next_node] == 0:quene.append(next_node)print('==num_nodes:', num_nodes)return num_nodes == numCourses# numCourses = 2 # prerequisites = [[0, 1]] numCourses = 4 prerequisites = [[1, 0], [2, 0], [3,1],[3,2]] sol = Solution() sol.canFinish(numCourses, prerequisites)

56-2:課程表 II

思路:有向無環圖,BFS遍歷?

class Solution:def canFinish(self, numCourses, prerequisites):indegrees = [0] * numCourses # 入度列表print('==indegrees:', indegrees)adjacency = [[] for i in range(numCourses)] # 鄰接列表print('=adjacency:', adjacency)#得到入度和每個課程的鄰接列表for cur, pre in prerequisites:indegrees[cur] += 1adjacency[pre].append(cur)print('====indegrees:', indegrees)print('====adjacency:', adjacency)quene = []# 如果度為0 就進入隊列for i in range(len(indegrees)):if indegrees[i] == 0:quene.append(i)print('==quene:', quene)num_nodes = 0learn_node = []while quene:node = quene.pop(0)print('=======node', node)learn_node.append(node)num_nodes += 1for next_node in adjacency[node]:indegrees[next_node] -= 1 # 找出下一個點相應的度-1if indegrees[next_node] == 0: # 入度為0quene.append(next_node)print('==num_nodes:', num_nodes)return learn_node if num_nodes == numCourses else []# numCourses, prerequisites = 2, [[1, 0]] # numCourses, prerequisites = 2, [[1, 0], [0, 1]] numCourses, prerequisites = 6, [[3, 0], [3, 1], [4, 1], [4, 2], [5, 3], [5, 4]] sol = Solution() res = sol.canFinish(numCourses, prerequisites) print('res:', res)

思路2:用鄰接矩陣的bfs

class Solution:def canFinish(self, numCourses, prerequisites):indegrees = [0] * numCourses # 度列表adjacency = [[0 for i in range(numCourses)] for i in range(numCourses)] # 鄰接矩陣 表示節點之間關系print('==init adjacency:', adjacency)for cur, pre in prerequisites:indegrees[cur] += 1adjacency[pre][cur] = 1print('==init adjacency complete:', adjacency)print('==init indegrees complete:', indegrees)quene = []for i in range(len(indegrees)):if indegrees[i] == 0:quene.append(i)print('==quene:', quene)num_nodes = 0learn_nodes = []while quene:node = quene.pop()learn_nodes.append(node)num_nodes += 1for j in range(numCourses):if adjacency[node][j] == 1:next_node = jadjacency[node][j] -= 1indegrees[next_node] -= 1if indegrees[next_node] == 0:quene.append(next_node)print('==num_nodes:', num_nodes)print('=learn_nodes:', learn_nodes)return learn_nodes if num_nodes == numCourses else []# numCourses = 2 # prerequisites = [[0, 1]] numCourses = 4 prerequisites = [[1, 0], [2, 0], [3,1],[3,2]] sol = Solution() sol.canFinish(numCourses, prerequisites)

57.實現 Trie (前綴樹)

思路:利用字典存儲每個單詞,同時用特殊字符結尾。

class Trie:def __init__(self):"""Initialize your data structure here."""self.root = {}self.word_end = -1def insert(self, word):"""Inserts a word into the trie."""curNode = self.rootfor c in word:if c not in curNode:curNode[c] = {}curNode = curNode[c]curNode[self.word_end] = True# print('==curNode:', curNode)def search(self, word):"""Returns if the word is in the trie."""curNode = self.rootfor c in word:if c not in curNode:return FalsecurNode = curNode[c]if self.word_end not in curNode:return Falsereturn Truedef startsWith(self, prefix):"""Returns if there is any word in the trie that starts with the given prefix."""curNode = self.rootfor c in prefix:if c not in curNode:return FalsecurNode = curNode[c]return Trueword = 'apple' prefix = 'ad' obj = Trie() obj.insert(word='apple') obj.insert(word='add') # obj.insert(word='app') print('tree:', obj.root) param_2 = obj.search(word) print('search res:', param_2) param_3 = obj.startsWith(prefix) print('==param_3:', param_3)

58.數組中的第K個最大元素

思路:排序 取第k個值就可

class Solution:def quicksort(self, arr):if len(arr) <= 1:return arrprivot = arr[len(arr) // 2]left = [i for i in arr if i < privot]middle = [i for i in arr if i == privot]right = [i for i in arr if i > privot]# left = [arr[i] for i in range(len(arr)) if arr[i] < privot]# middle = [arr[i] for i in range(len(arr)) if arr[i] == privot]# right = [arr[i] for i in range(len(arr)) if arr[i] > privot]return self.quicksort(left) + middle + self.quicksort(right)def findKthLargest(self, nums, k):return self.quicksort(nums)[::-1][k-1]# nums = [3, 2, 1, 5, 6, 4] # k = 2 nums = [3,2,3,1,2,4,5,5,6] k = 4 sol = Solution() res = sol.findKthLargest(nums, k) print('res:', res)

思路2:topk問題用最小堆?

class Solution:def findKthLargest(self, nums, k):arr = []heapq.heapify(arr)for i in range(k):heapq.heappush(arr, nums[i])for i in range(k, len(nums)):heapq.heappush(arr, nums[i])heapq.heappop(arr)print('==arr:', arr)return arr[0]arr = [3,2,1,5,6,4] k = 2 sol = Solution() sol.findKthLargest(arr, k)

59.最大正方形

思路:題目既然求最大正方形面積,那就先由2*2正方形拓展更大即可,也就是可以用動態規劃來存儲左上角,左邊,上邊的最小值,也是正方形邊長

1.轉移方程為 dp[i][j] = min(dp[i-1][j],dp[i][j-1].dp[i-1][j-1])+1

2.初始化邊界條件為: dp[:][0] = matrix[:][0] dp[0][:] = matrix[0][:]

class Solution:def maximalSquare(self, matrix):max_side = 0h,w = len(matrix),len(matrix[0])dp = [[0 for i in range(w)] for i in range(h)]print('初始化dp',np.array(dp))for i in range(h):dp[i][0] = int(matrix[i][0])max_side = max(max_side, dp[i][0])for i in range(w):dp[0][i] = int(matrix[0][i])max_side = max(max_side, dp[0][i])print('初始化邊界dp',np.array(dp))for i in range(1,h):for j in range(1,w):if matrix[i][j]=='1':dp[i][j] = min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1])+1max_side = max(max_side, dp[i][j])print('轉移好dp',np.array(dp))return max_side**2matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]] # matrix = [["0","1"],["1","0"]] sol = Solution() res= sol.maximalSquare(matrix) print(res)

60.翻轉二叉樹

思路:遞歸遍歷左右子樹進行交換即可

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution:def invertTree(self, root: TreeNode) -> TreeNode:if root is None:return Noneleft = self.invertTree(root.left)right = self.invertTree(root.right)root.left = rightroot.right = leftreturn root

c++實現:

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:TreeNode* invertTree(TreeNode* root) {if(root == nullptr){return nullptr;}TreeNode* left = invertTree(root->left);TreeNode* right = invertTree(root->right);root->left = right;root->right = left;return root;} };

61.請判斷一個鏈表是否為回文鏈表

利用列表將列表值進行拷貝,在判斷是否是回文字符串

# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = Noneclass Solution:def isPalindrome(self, head: ListNode) -> bool:stack= []while head:stack.append(head.val)head = head.nextreturn stack==stack[::-1]

c++實現:

/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/ class Solution { public:bool isPalindrome(ListNode* head) {vector<int> res;while(head){res.push_back(head->val);head = head->next;}int left=0;int right=res.size()-1;while(left<right){if(res[left]==res[right]){left+=1;right-=1;}else{return false;}}return true;} };

62:二叉樹的最近公共祖先

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution:def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':if root is None or root==p or root==q:#遞歸終止條件 節點為空 或者節點等于p,q其中之一return rootleft = self.lowestCommonAncestor(root.left, p, q)#遍歷左子樹right = self.lowestCommonAncestor(root.right, p, q)#遍歷右子樹if left is None:#左子樹為空 就去右子樹 return rightif right is None:#右子樹為空 就去左子樹 return leftreturn root#左右子樹都不為空 說明找到了節點 

c++實現:

代碼段 小部件

63.除自身以外數組的乘積

思路1:超時

#超時時間復雜度O(N) class Solution:def productExceptSelf(self, nums):output = len(nums)*[0]for i in range(len(nums)):temp = 1for j in nums[:i]:temp*=jfor j in nums[i+1:]:temp*=joutput[i] = temp# print('==output:', output)return outputnums = [1, 2, 3, 4] sol = Solution() sol.productExceptSelf(nums)

思路2:利用空間換時間

1.借用左右數組來存儲值,L[i]代表i左邊的乘積值,R[i]代表i右邊的乘積值

2.最終i處的值為L[i]*R[i]

class Solution:def productExceptSelf(self, nums):length = len(nums)L,R,output = [0]*length,[0]*length,[0]*lengthL[0] = 1for i in range(1, length):L[i] = L[i-1]*nums[i-1]print('==L:', L)R[length-1] = 1for i in range(length-2, -1, -1):print('==i:', i)R[i] = R[i + 1] * nums[i + 1]print('==R:', R)for i in range(length):output[i] = L[i]*R[i]return outputnums = [1, 2, 3, 4] sol = Solution() sol.productExceptSelf(nums)

64.滑動窗口最大值

思路1.超時O(n*k)

class Solution:def maxSlidingWindow(self, nums, k):#時間復雜度O(Nk)超時了res = []for i in range(len(nums)-k+1):res.append(max(nums[i:i+k]))return res

思路2:

動態規劃:時間復雜度O(N)
1.將數組分成k+1個,剩下的一個可能不足;?
2.left數組存儲每個拆分的從左到右的值,對于left來說每個塊最右邊元素最大;
3.right數組存儲每個拆分的從右到左的值,對于right來說每個塊最左邊元素最大;
4.最后在利用left和right求最大值,max(left[i],right(j)) i每個塊最右邊元素索引,j每個塊最左邊元素索引

class Solution:def maxSlidingWindow(self, nums, k):n = len(nums)if n * k == 0:return []if k == 1:return numsleft = [0] * nleft[0] = nums[0]right = [0] * nright[n - 1] = nums[n - 1]for i in range(1, n):#從左往右if i%k==0:#分塊的第一個元素left[i] = nums[i]else:left[i] = max(left[i-1],nums[i])# 從右往左j = n-i-1# 分塊的最右邊元素if (j+1) % k == 0:right[j] = nums[j]else:right[j] = max(right[j + 1], nums[j])print('===left:', left)print('===right:', right)#最后在利用left和right求最大值output = []for i in range(n - k + 1):output.append(max(left[i + k - 1], right[i]))return outputnums = [1,3,-1,-3,5,3,6,7] k = 3 sol = Solution() res = sol.maxSlidingWindow(nums, k) print('res:', res)

思路3:雙端隊列:用一個隊列一直存儲更新最大值

# 雙端隊列:用一個隊列一直存儲更新最大值 class Solution:def maxSlidingWindow(self, nums, k):length = len(nums)if length == 0:return []res = []quene = []for j in range(length):i = j-k+1if i > 0 and quene[0] == nums[i-1]:#當要左移掉的元素等于quene頭部元素,那么quene就移除頭部元素quene.pop(0)while quene and quene[-1] < nums[j]:#保持quene里面都是單調遞減的,且頭部元素最大quene.pop()quene.append(nums[j])print('==quene:', quene)if i >= 0:res.append(quene[0])return resnums = [1, 3, -1, -3, 5, 3, 6, 7] k = 3 sol = Solution() res = sol.maxSlidingWindow(nums, k) print(res)

c++代碼:

class Solution { public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {vector<int> res;deque<int> queue_A;for(int i=0;i<nums.size();i++){int j=i-k+1;if(j>0 && nums[j-1]==queue_A.front()){queue_A.pop_front();}while (queue_A.size() && queue_A.back()<nums[i]){queue_A.pop_back();}queue_A.push_back(nums[i]);if(j>=0){res.push_back(queue_A.front());} }return res;} };

65.搜索二維矩陣 II

class Solution:def find(self,number,matrix):rows=len(matrix)#行數cols=len(matrix[0])#列數if rows<0 and cols<0:return Falsecol=0row=rows-1while row>=0 and col<cols:if matrix[row][col]<number:col+=1elif matrix[row][col]>number:row-=1else:return True#找到return False#沒找到 if __name__ == '__main__':matrix = [[1, 3, 5, 6],[2, 5, 8, 12],[4, 9, 10, 17],[6, 11, 11, 18]]sol=Solution()print(sol.find(17,matrix))

66.?完全平方數

?

思路:可看成M(n) = M(n-1k)+1,這里就可以用回溯當成求子集問題,但是容易超出時間限制.

1.回溯

#公式為 M(n) = M(n - k) + 1 import math class Solution(object):def numSquares(self, n):square_nums = [i**2 for i in range(1, int(math.sqrt(n))+1)]print('==square_nums:', square_nums)res = []track = []def minNumSquares(k,track):""" recursive solution """# bottom cases: find a square numberif k in square_nums:track.append(k)res.append(track)#滿足選擇條件return 1min_num = float('inf')# Find the minimal value among all possible solutionsfor square in square_nums:if k < square:break# 滿足選擇列表store = track.copy()track.append(square)#做選擇new_num = minNumSquares(k-square, track) + 1#回溯track = store#撤消選擇min_num = min(min_num, new_num)return min_numreturn minNumSquares(n, track), res n = 3 sol = Solution() numbers, res = sol.numSquares(n) print('個數:', numbers, res)

2.對于遞歸這種,其實都是可以用dp來減少計算量

#公式為 M(n) = M(n - k) + 1 class Solution(object):def numSquares(self, n):""":type n: int:rtype: int"""square_nums = [i ** 2 for i in range(0, int(math.sqrt(n)) + 1)]print('square_nums==:', square_nums)dp = [float('inf')] * (n + 1)# bottom casedp[0] = 0for i in range(1, n + 1):for square in square_nums:if i < square:#小于平方的數 就breakbreakprint('==square:', square)dp[i] = min(dp[i], dp[i - square] + 1)print('==dp:', dp)return dp[-1] n = 4 sol = Solution() numbers = sol.numSquares(n) print('個數:', numbers)

c++實現:

class Solution { public:int numSquares(int n) {vector<int> dp(n+1, INT_MAX);vector<int> nums;for(int i=1; i < int(sqrt(n)) + 1; i++){nums.push_back(pow(i, 2));}dp[0] = 0;for(int i = 1; i < n+1; i++){for(int j=0; j < nums.size(); j++){if(i < nums[j]){break;}dp[i] = min(dp[i], dp[i - nums[j]] + 1);}}return dp[n];} };

67.移動零

思路1:移0法

class Solution:def moveZeroes(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""n = len(nums)i=0while 0 in nums:nums.remove(0)i+=1nums.extend([0]*i)return nums

思路2:指針記錄非0索引

class Solution:def moveZeroes(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""idx = 0 n = len(nums)for i in range(len(nums)):if nums[i]!=0:nums[idx] = nums[i]idx+=1nums[idx:] = (n - idx )*[0]return nums

思路3:指針 交換數字

class Solution:def moveZeroes(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""idx = 0n = len(nums)for i in range(len(nums)):if nums[i]!=0:nums[idx], nums[i] = nums[i], nums[idx]idx+=1# print(idx)# print(nums)# nums[idx:] = (n - idx )*[0]return nums

思路4:優化特殊非0元素

class Solution:def moveZeroes(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""idx = 0n = len(nums)for i in range(len(nums)):if nums[i]!=0:if i!=idx:nums[idx], nums[i] = nums[i], nums[idx]idx+=1else:idx +=1# print(idx)# print(nums)# nums[idx:] = (n - idx )*[0]return nums

68.尋找重復數

思路:對于上述題目示例1,將數組值作為索引,會發現陷入無窮循環,而無窮循環的起始點就是重復出現的數,故構成一個環,所以就想到用快慢指針進行解決,如下圖所示,A是起點,B是環開始點,C是相遇點,快指針是慢指針速度的兩倍。

在C點相遇以后,在從起始點和C點用相同速度奔跑,就在B點相遇了,即可以得到重復的數字。

class Solution:def findDuplicate(self, nums: List[int]) -> int:fast = 0slow = 0while True:# print('==fast:', fast)# print('==slow:', slow)fast = nums[nums[fast]]slow = nums[slow]if fast == slow:breakstart = 0while True:start = nums[start]fast = nums[fast]if start ==fast:break# print(start)return start

69.最長遞增子序列的個數

思路:利用dp,一個數組存儲向上遞增的長度,一個數組存儲相同長度序列的個數

class Solution:def findNumberOfLIS(self, nums):if nums ==[]:return(0)n = len(nums)opt_length = [1]*nopt_counter = [1]*nfor i in range(1, n):for j in range(i):if nums[j] < nums[i]:if opt_length[j]+1 > opt_length[i]:# 代表第一次遇到最長子序列opt_length[i] = 1+opt_length[j]opt_counter[i] = opt_counter[j]elif opt_length[j]+1 == opt_length[i]:# 代表已經遇到過最長子序列opt_counter[i] = opt_counter[i]+opt_counter[j]# print('====opt_length:', opt_length)# print('====opt_counter:', opt_counter)tmp = max(opt_length)res = sum([opt_counter[i] for i in range(n) if opt_length[i] == tmp])return (res)sol = Solution() nums = [1, 3, 5, 4, 7] res = sol.findNumberOfLIS(nums) print('===res:', res)

70. 刪除無效的括號

思路:回溯

class Solution:def removeInvalidParentheses(self, s: str) -> List[str]:if not s:return [""]if s[0] not in "()":return [s[0]+i for i in self.removeInvalidParentheses(s[1:])]if len(s) < 2:return [""]if s[0] == ")":return self.removeInvalidParentheses(s[1:])res = set(self.removeInvalidParentheses(s[1:]))for i in range(1, len(s)):if s[i] == ")":a, b = set(self.removeInvalidParentheses(s[1:i])), set(self.removeInvalidParentheses(s[i+1:]))res |= {f"({i}){j}" for i in a for j in b}p = len(max(res, key=len))return [i for i in res if len(i) == p]

71-1.零錢兌換

?思路:找準狀態狀轉移方程,f代表選擇銀幣的函數,則f(11)=f(11-1)+1或f(11)=f(11-2)+1或f(11)=f(11-5)+1,則一般方程為:

f(money) = min(f(money), f(money-coin)+1)

class Solution:def coinChange(self, coins: List[int], amount: int) -> int:#狀態轉移方程f(money) = min(f(money),f(money-coin)+1)f = [float('inf')] * (amount + 1)f[0] = 0# print('==f:', f)for i in range(1, amount + 1):for coin in coins:if i - coin >= 0:f[i] = min(f[i], f[i - coin] + 1)# print('==f:', f)return f[-1] if f[-1]!=float('inf') else -1

71-2:零錢兌換 II

思路1:回溯 會超時

# 組合問題 回溯 超時 class Solution:def backtrace(self, amount, start, coins, track):if amount == 0: # 終止條件# self.res.append(track)self.res+=1returnfor i in range(start, len(coins)): # 選擇條件if coins[i] > amount:continue# store = track.copy()# track.append(coins[i])self.backtrace(amount - coins[i], i, coins, track)# track = storedef change(self, amount, coins):self.res = 0#[]coins = sorted(coins)self.backtrace(amount, 0, coins, [])return self.res# amount = 5 # coins = [2] amount = 5 coins = [1, 2, 5] # amount = 500 # coins = [3,5,7,8,9,10,11] sol = Solution() res = sol.change(amount, coins) print('==res:', res)

思路2:當成完全背包問題,用dp

#dp[i][j] 硬幣為i 金額為j的組合數 import numpy as np class Solution:def change(self, amount, coins):if len(coins) == 0:if amount == 0:return 1else:return 0dp = [[0 for i in range(amount+1)] for j in range(len(coins))]print('==np.array(dp):', np.array(dp))dp[0][0] = 1for j in range(coins[0], amount+1, coins[0]):dp[0][j] = 1print('==np.array(dp):', np.array(dp))for i in range(1, len(coins)):print('==coins[i]:', coins[i])for j in range(amount+1):dp[i][j] = dp[i - 1][j]#不選if j >= coins[i]:#選 注意與0 1背包有一點不同dp[i][j] += dp[i][j - coins[i]]print('==np.array(dp):', np.array(dp))return dp[-1][-1]amount = 5 coins = [1, 2, 5] sol = Solution() sol.change(amount, coins)

72.比特位計數

思路:

#思路:計算n的時候n-1計算過了 #n&n-1 就是抹掉二進制n最右邊的1 class Solution:def countBits(self, num):#動態規劃res = [0]*(num+1)for i in range(1, num+1):res[i] = res[i & i-1] + 1return resnum = 5 sol = Solution() res = sol.countBits(num) print('==res:', res)

73.前 K 個高頻元素

思路:hash字典

class Solution:def topKFrequent(self, nums, k):dict_ = {}for num in nums:dict_[num] = dict_.get(num, 0)+1print('==dict_:', dict_)sort_dict = sorted(dict_.items(), key=lambda x:(x[-1], x[0]), reverse=True)return [sort_dict[j][0] for j in range(k)]# nums = [1,1,1,2,2,3] # k = 2 nums = [-1, -1] k = 1 # nums = [1, 2] # k = 2sol = Solution() res = sol.topKFrequent(nums, k) print('==res:', res)

?74.字符串解碼

思路:棧

class Solution:def decodeString(self, s):stack = [] # (str, int) 記錄之前的字符串和括號外的上一個數字num = 0res = "" # 實時記錄當前可以提取出來的字符串for c in s:if c.isdigit():num = num * 10 + int(c)elif c == "[":stack.append((res, num))res, num = "", 0elif c == "]":top = stack.pop()print('===top:', top)res = top[0] + res * top[1]print('==res:', res)else:res += creturn res# s = "3[a]2[bc]" s = "3[a2[c]]" sol = Solution() res = sol.decodeString(s) print('res:', res)

75.除法求值

思路:并查集

# 并查集 class Solution:def __init__(self):self.f = {} # 每個節點的依次關系self.d = {} # 每個節點的值 將根節點值置為1def find(self, x): # 查找與你連通的最上面一位self.f.setdefault(x, x)self.d.setdefault(x, 1)if self.f[x] == x:return xelse:t = self.f[x]self.f[x] = self.find(t)self.d[x] *= self.d[t]return self.f[x]def union(self, A, B, value): # 合并集a, b = self.find(A), self.find(B)if a != b:self.f[a] = bself.d[a] = self.d[B] / self.d[A] * value# print('===f===:', f)# print('===d===:', d)def check(self, x, y):if x not in self.f or y not in self.f:return -1.0a, b = self.find(x), self.find(y)# print('==a, b:', a, b)if a != b: # 如果不在同一條線上就返回-1return -1.0return self.d[x] / self.d[y]def calcEquation(self, equations, values, queries):for i, nums in enumerate(equations):self.union(nums[0], nums[1], values[i])print('===f:', self.f)print('===d:', self.d)res = []for x, y in queries:res.append(self.check(x, y))return resequations = [["a", "b"], ["b", "c"]] values = [2.0, 3.0] queries = [["a", "c"], ["b", "a"], ["a", "e"], ["a", "a"], ["x", "x"]]# equations = [["a","b"]] # values = [2.0] # queries = [["a","c"],["b","a"],["a","e"],["a","a"],["x","x"]] sol = Solution() res = sol.calcEquation(equations, values, queries) print('==res:', res)

76.根據身高重建隊列

思路:按身高由高到低進行排序,身高相等時按索引從小排序

#新建一個隊列按照索引進行插入

#思路:按身高由高到低進行排序,身高相等時按索引從小排序 #新建一個隊列按照索引進行插入 class Solution:def reconstructQueue(self, people):people = sorted(people, key=lambda x: (-x[0], x[1]))print('===people:', people)output = []for p in people:print('===p:', p)output.insert(p[1], p)print('==output:', output)return output people = [[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]] sol = Solution() sol.reconstructQueue(people)

77-1.目標和

思路2:動態規劃 dp[i][j]表示到i為止,數字和為j的方案數,下面以兩個例子為例

# dp[i][j] = dp[i-1][j-nums[i]]+dp[i-1][j+nums[i]] class Solution:def findTargetSumWays(self, nums, S):sum_ = sum(nums)if abs(S) > sum_:return 0opt = [[0 for i in range(2 * sum_ + 1)] for i in range(len(nums))]print(np.array(opt))##nums = [0,0,0,0,0,0,0,0,1]# S = 1if nums[0] == 0: # 邊界條件opt[0][sum_] = 2else:opt[0][sum_ - nums[0]] = 1opt[0][sum_ + nums[0]] = 1print(np.array(opt))for i in range(1, len(nums)):for j in range(2 * sum_ + 1):l = j - nums[i] if j - nums[i] > 0 else 0r = j + nums[i] if j + nums[i] < 2 * sum_ + 1 else 0opt[i][j] = opt[i - 1][l] + opt[i - 1][r]# print('===print(np.array(opt)):', np.array(opt))return opt[-1][sum_ + S]# nums = [1, 1, 1, 1, 1] # S = 3 # nums = [1000] # S = 1000 nums = [0, 0, 0, 0, 0, 0, 0, 0, 1] S = 1 sol = Solution() res = sol.findTargetSumWays(nums, S) print('==res:', res)

77-2.分割等和子集

思路1:

(1)轉換成0 1背包問題,找到數組和的一半的子集

(2)dp[i][j]表示到i為止和為j是否存在

(3)dp[i][j] = dp[i-1][j] 不選擇nums[i]

(4)dp[i][j] = dp[i-1][j-nums] 選擇nums[i]

(5)如果 j<nums[i] dp[i][j] = dp[i-1][j]

以[1,2,3,6]為例

#轉換成0 1背包問題 找到數組和的一半的子集 #到i為止和為j是否存在 #dp[i][j] = dp[i-1][j]#不選擇nums[i] #dp[i][j] = dp[i-1][j-nums]#選擇nums[i] #如果 j<nums[i] dp[i][j] = dp[i-1][j] class Solution:def canPartition(self, nums):# nums = sorted(nums)# print('==nums:', nums)n = len(nums)if n<2:#數組長度無法劃分return Falsesum_ = sum(nums)max_value = max(nums)if sum_ % 2==1:#奇數的話沒法拆分return Falsetarget = sum_//2if max_value>target:#最大值大于一半了 不滿足條件return Falsedp = [[False for i in range(target+1)] for i in range(n)]print('===np.array(dp):', np.array(dp))for i in range(n):#不選取任何正整數,則被選取的正整數等于 00dp[i][0] = Truedp[0][nums[0]] = True#i==0 只有一個正整數 nums[0] 可以被選取for i in range(1,n):for j in range(1, target+1):if j<nums[i]:#j<nums[i]dp[i][j] = dp[i-1][j]else:#不選擇nums[i]與選擇nums[i]dp[i][j] = dp[i - 1][j] or dp[i - 1][j-nums[i]]print('===np.array(dp):', np.array(dp))return dp[-1][target] # nums = [1, 5, 11, 5] nums = [1, 2, 3, 6] sol = Solution() res = sol.canPartition(nums) print('==res:', res)

思路2:優化版 用一維數組替代,只不過采用逆序

其中dp[j] = dp[j] || dp[j - nums[i]] 可以理解為 dp[j] (新)= dp[j] (舊) || dp[j - nums[i]] (舊),如果采用正序的話 dp[j - nums[i]]會被之前的操作更新為新值

import numpy as np #轉換成0 1背包問題 找到數組和的一半的子集 #優化版 #dp[j] = [j]#不選擇nums[i] #dp[j] = dp[j-nums]#選擇nums[i] # #如果 j<nums[i] dp[i][j] = dp[i-1][j] class Solution:def canPartition(self, nums):# nums = sorted(nums)# print('==nums:', nums)n = len(nums)if n<2:#數組長度無法劃分return Falsesum_ = sum(nums)max_value = max(nums)if sum_ % 2==1:#奇數的話沒法拆分return Falsetarget = sum_//2if max_value>target:#最大值大于一半了 不滿足條件return Falsedp = [False for i in range(target+1)]print('===np.array(dp):', np.array(dp))#不選取任何正整數dp[0] = Truedp[nums[0]] = True#i==0 只有一個正整數 nums[0] 可以被選取for i in range(1, n):for j in range(target, 0, -1):if j<nums[i]:#j<nums[i]dp[j] = dp[j]else:#不選擇nums[i]與選擇nums[i]dp[j] = dp[j] or dp[j-nums[i]]print('===np.array(dp):', np.array(dp))return dp[-1] # nums = [1, 5, 11, 5] nums = [1, 2, 3, 6] sol = Solution() res = sol.canPartition(nums) print('==res:', res)

78-1.路徑總和

1.遞歸法?

# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution(object):def hasPathSum(self, root, sum):""":type root: TreeNode:type sum: int:rtype: bool"""if not root:return Falseif not root.left and not root.right and root.val==sum:return Truesum -=root.valreturn self.hasPathSum(root.left,sum) or self.hasPathSum(root.right,sum)

c++實現:

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:bool hasPathSum(TreeNode* root, int targetSum) {if(root == nullptr){return false;}if (root->left == nullptr && root->right == nullptr && targetSum==root->val){return true;}targetSum -=root->val;return hasPathSum(root->left,targetSum) || hasPathSum(root->right,targetSum);} };

2.利用棧--DFS

class Solution(object):def hasPathSum(self, root, sum):""":type root: TreeNode:type sum: int:rtype: bool"""# # #遞歸終止條件 # if root is None:# return False# if root.left is None and root.right is None and root.val == sum:# return True# sum = sum - root.val# # print('===sum:', sum)# return self.hasPathSum(root.left, sum) or self.hasPathSum(root.right, sum) if not root:return Falsequene = [(root, root.val)]while quene:node,value = quene.pop()if node.left is None and node.right is None and value==sum:return Trueif node.left is not None:quene.append((node.left,value+node.left.val))if node.right is not None:quene.append((node.right,value+node.right.val)) # print('==quene:',quene)return False

3.利用隊列--BFS

class Solution(object):def hasPathSum(self, root, sum):""":type root: TreeNode:type sum: int:rtype: bool"""# # #遞歸終止條件 # if root is None:# return False# if root.left is None and root.right is None and root.val == sum:# return True# sum = sum - root.val# # print('===sum:', sum)# return self.hasPathSum(root.left, sum) or self.hasPathSum(root.right, sum) if not root:return Falsequene = [(root, root.val)]while quene:node,value = quene.pop(0)if node.left is None and node.right is None and value==sum:return Trueif node.left is not None:quene.append((node.left,value+node.left.val))if node.right is not None:quene.append((node.right,value+node.right.val)) # print('==quene:',quene)return False

78-2:路徑總和 II

思路:回溯 這種里面要調用兩層回溯的  track就不要放在遞歸函數里面了

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution:def dfs(self, node, sum_):if node is None:return 0store = self.track.copy()self.track.append(node.val)# print('==self.track:', self.track)if node.left is None and node.right is None and sum_==node.val: self.res.append(self.track)sum_ -= node.valself.dfs(node.left, sum_)self.dfs(node.right, sum_)# self.track.pop()self.track = storedef pathSum(self, root: TreeNode, sum: int) -> List[List[int]]:self.res = []self.track = []self.dfs(root, sum)return self.res

c++實現:

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:vector<vector<int>> res;vector<int> track;void dfs(TreeNode* root, int targetSum){if(root==nullptr){return ;}vector<int> store;store = track;track.push_back(root->val); if(root->left==nullptr && root->right==nullptr && targetSum==root->val){res.push_back(track);}targetSum -= root->val;dfs(root->left, targetSum);dfs(root->right, targetSum);track = store;}vector<vector<int>> pathSum(TreeNode* root, int targetSum) {dfs(root, targetSum);return res;} };

78-3:路徑總和 III

思路:用一個列表存儲從節點開始的數字和

# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right #用列表記錄從每一個節點開始的和 class Solution:def dfs(self, node, sum_list, sum):if node is None:return 0 sum_list = [num+node.val for num in sum_list]sum_list.append(node.val)for num in sum_list:if num==sum:self.res+=1self.dfs(node.left, sum_list, sum)self.dfs(node.right, sum_list, sum)def pathSum(self, root: TreeNode, sum: int) -> int:self.res = 0self.dfs(root, [], sum)return self.res

c++實現:

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:int res;void dfs(TreeNode* node, vector<int> num_list, int sum){if(node == nullptr){return ;}for (int i=0; i<num_list.size(); i++){num_list[i] += node->val;} num_list.push_back(node->val);for(int i=0; i<num_list.size(); i++){if(num_list[i]==sum){res++;}}dfs(node->left, num_list, sum);dfs(node->right, num_list, sum);}int pathSum(TreeNode* root, int sum) {vector<int> num_list;dfs(root, num_list, sum);return res;} };

79.找到所有數組中消失的數字

思路1:hash

#利用hash存儲出現過得數字 class Solution:def findDisappearedNumbers(self, nums):dict_ = {}for num in nums:dict_[num] = dict_.get(num, 0)+1print('==dict_:', dict_)res =[]for i in range(1, len(nums)+1):if i not in dict_:res.append(i)return res nums = [4,3,2,7,8,2,3,1] sol = Solution() res = sol.findDisappearedNumbers(nums) print('==res:', res)

思路2:原地修改

#利用list原地進行修改 class Solution:def findDisappearedNumbers(self, nums):for i in range(len(nums)):index = abs(nums[i]) - 1if nums[index] > 0:nums[index] *= -1print('==nums:', nums)res =[]for i in range(len(nums)):if nums[i]>0:res.append(i+1)return res nums = [4,3,2,7,8,2,3,1] # nums = [1, 3, 3, 4, 5] sol = Solution() res = sol.findDisappearedNumbers(nums) print('==res:', res)

80.漢明距離

思路:通過異或取得不同數的 在向右移動 依次與1進行& 獲得1的個數

#思路:通過異或取得不同數的 在向右移動 依次與1進行& 獲得1的個數 class Solution:def hammingDistance(self, x, y):res = x ^ y#異或取得不同的數 異或 相同為0 不同為1# print('==res:', res)dis = 0while res:#向右移位# print('==res&1:', res&1)if res&1:dis+=1res = res>>1# print('==res:', res)return dis x = 1 y = 4 sol = Solution() sol.hammingDistance(x, y)

81.把二叉搜索樹轉換為累加樹?

思路:其實就是逆中序遍歷,利用二叉搜索樹的特點,跟節點值更新為右孩子和根節點值之和,左孩子值更新為根節點與左孩子值之和。

1.迭代法:

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution:def convertBST(self, root: TreeNode) -> TreeNode:stack = []node = rootvalue = 0while stack or node:while node:#把跟節點與右子樹節點依次壓進棧 實現逆中序遍歷stack.append(node)node = node.rightprint('==stack:', stack)node = stack.pop()print('==node:',node)value += node.valnode.val = valueprint('==node.left:', node.left)node = node.leftreturn root

2.遞歸法:

其中res存儲逆中序遍歷(右根左)的值,便于查看

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution:def helper(self, node):if node:self.helper(node.right)# self.res.append(node.val)self.value+=node.valnode.val = self.valueself.helper(node.left)def convertBST(self, root: TreeNode) -> TreeNode:# self.res =[]self.value = 0self.helper(root)return root

c++實現:

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:int res = 0;void help(TreeNode* node){if(node == nullptr){return ;}help(node->right);res += node->val;node->val = res;help(node->left);}TreeNode* convertBST(TreeNode* root) {help(root);return root;} };

82.二叉樹的直徑

思路:遞歸函數用來獲取每一層深度,然后在分別對左右子樹深度求和,這里要注意的是最長直徑不一定過根節點,所有要用一個變量存儲遍歷每個節點時的最大直徑.

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution:def get_depth(self, node):if node is None:return 0l = self.get_depth(node.left)r = self.get_depth(node.right)self.max_value = max(self.max_value, l+r)return max(l,r)+1def diameterOfBinaryTree(self, root: TreeNode) -> int:self.max_value = 0if root is None:return 0self.get_depth(root)return self.max_value

c++實現:

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:int max_value=0;int help(TreeNode* node){if(!node){return 0;}int l = help(node->left);int r = help(node->right);max_value = max(max_value, l+r);return max(l,r)+1;}int diameterOfBinaryTree(TreeNode* root) {help(root);return max_value;} };

?83.和為K的子數組

思路1:枚舉(超時) O(n2)

class Solution:def subarraySum(self, nums, k):res=0for i in range(len(nums)):tmp = 0for j in range(i,len(nums)):tmp+=nums[j]if tmp==k:res+=1print('=res:',res)return res# nums = [1,1,1] # k = 2 nums = [1,-1,0] k = 0 sol = Solution() sol.subarraySum(nums, k)

思路2:hash,利用字典的key值存儲累加和,value值存儲出現次數

#利用字典 key存儲累加的數字 value為出現的次數 class Solution:def subarraySum(self, nums, k):count_dict = {}count, sum_ = 0, 0for num in nums:sum_+=numif sum_==k:count+=1if sum_-k in count_dict:count+=count_dict[sum_-k]if sum_ in count_dict:count_dict[sum_]+=1else:count_dict[sum_]=1print('==count_dict:', count_dict)print('count:', count)return countnums = [1, 1, 1] k = 2 # nums = [1, -1, 1] # k = 0 sol = Solution() sol.subarraySum(nums, k)

84.最短無序連續子數組

思路1:單調遞增棧

class Solution:def findUnsortedSubarray(self, nums):#找到遞增的拐點stack = []left = len(nums)-1for i in range(len(nums)):while stack and nums[i] < nums[stack[-1]]:index = stack.pop()left = min(left, index)stack.append(i)print('==stack:', stack)print('left:', left)#找到逆序遞增的拐點stack = []right = 0for i in range(len(nums)-1, -1, -1):while stack and nums[i] > nums[stack[-1]]:index = stack.pop()right = max(right, index)stack.append(i)print('==right:', right)return right-left+1 if right-left>0 else 0nums = [2, 6, 4, 8, 10, 9, 15] # nums = [2, 1, 6] # nums = [1, 2] # nums = [2, 1] # nums = [5, 4, 3, 2, 1] sol = Solution() res = sol.findUnsortedSubarray(nums) print('======res:', res)

思路2:排序

class Solution:def findUnsortedSubarray(self, nums: List[int]) -> int:# print('==nums:', nums)sort_nums = sorted(nums)# print('==sort_nums:', sort_nums)left = len(nums) - 1right = 0for i in range(len(nums)):if nums[i] != sort_nums[i]:left = min(left, i)right = max(right, i)# print('==left:', left)# print('==right:', right)return right - left + 1 if right - left > 0 else 0

85.合并二叉樹

思路:采用前序遍歷訪問二叉樹,如果節點其一為none,就返回另一個

1.遞歸法

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution:def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> TreeNode:if t1 is None:return t2if t2 is None:return t1t1.val+=t2.valt1.left = self.mergeTrees(t1.left,t2.left)t1.right = self.mergeTrees(t1.right,t2.right)return t1

2.迭代法

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution:def mergeTrees(self, t1: TreeNode, t2: TreeNode) -> TreeNode:if t1 is None:return t2stack= [(t1,t2)]while stack:t = stack.pop()if t[0] is None or t[1] is None:continuet[0].val +=t[1].valif t[0].left is None:t[0].left = t[1].leftelse:stack.append((t[0].left, t[1].left))if t[0].right is None:t[0].right = t[1].rightelse:stack.append((t[0].right, t[1].right))return t1

c++實現:

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {if(root1 == nullptr){return root2;}if(root2 == nullptr){return root1;}root1->val += root2->val;root1->left = mergeTrees(root1->left, root2->left);root1->right = mergeTrees(root1->right, root2->right);return root1;} };

86.任務調度器

思路: 貪心 填桶法?

class Solution(object):def leastInterval(self, tasks, n):""":type tasks: List[str]:type n: int:rtype: int"""length = len(tasks)if length <= 1:return lengthprint('===length:', length)# 用于記錄每個任務出現的次數task_dict = {}for task in tasks:#不存在task時 返回0task_dict[task] = task_dict.get(task,0)+1print('==task_dict:', task_dict)# 按任務出現的次數從大到小排序task_sort = sorted(task_dict.items(), key=lambda x: x[1], reverse=True)print('==task_sort:', task_sort)# # 出現最多次任務的次數max_task_count = task_sort[0][1]# 至少需要的最短時間res = (max_task_count - 1) * (n + 1)for sort in task_sort:if sort[1] == max_task_count:res += 1print('==res:', res)# # 如果結果比任務數量少,則返回總任務數return res if res >= length else lengthtasks = ["A","A","A","B","B","B"] n = 2 # n = 0 sol = Solution() sol.leastInterval(tasks, n)

87-1.回文子串

思路1:兩層for循環遍歷進行判斷是否是回文字符串即可,超出時間限制

#雙層for循環超出時間限制 class Solution:def judge_palindrome(self, s):l = 0r = len(s) -1while l<=r:if s[l]==s[r]:l+=1r-=1else:return Falsereturn Truedef countSubstrings(self, s):res=0for i in range(len(s)):# print('==i:', i)for j in range(i, len(s)):# print('==j', j)# print('==s[i:j+1]:', s[i:j+1])if self.judge_palindrome(s[i:j+1]):res += 1return res# s = "abc" s = "aaa" sol = Solution() res = sol.countSubstrings(s) print('==res:', res)

思路2,中心枚舉,專門用self.res存儲 left與righe索引方便查看,,最后求和就是會文字符串的個數。

import numpy as np class Solution:def helper(self,left,right,s):while left>=0 and right<len(s) and s[left]==s[right]:self.res[left][right]=1self.fin_res+=1left-=1right+=1def countSubstrings(self, s):self.res = [[0 for i in range(len(s)) ] for i in range(len(s))]self.fin_res = 0for i in range(len(s)):self.helper(i,i,s)self.helper(i,i+1,s)print(np.array(self.res))return self.fin_ress = "aaa" sol = Solution() sol.countSubstrings(s)

87-2:回文串分割 IV

思路:中心枚舉 用一個矩陣存儲回文字符串左右索引的值,最后看看是不是分為三段即可

import numpy as np class Solution:def helper(self,left,right,s):while left>=0 and right<len(s) and s[left]==s[right]:self.res[left][right] = 1left-=1right+=1def checkPartitioning(self, s):length = len(s)self.res = [[0 for _ in range(length)]for _ in range(length)]for i in range(length):self.helper(i, i, s)self.helper(i, i+1, s)print(np.array(self.res))for i in range(length):for j in range(i+1, length):if self.res[0][i] and self.res[i+1][j] and self.res[j+1][length-1]:return Truereturn False# s = "abcbdd" s = "bcbddxy" # s = "juchzcedhfesefhdeczhcujzzvbmoeombv" sol = Solution() res = sol.checkPartitioning(s) print('==res:', res)

87-3.最長回文子串

class Solution:def helper(self,left,right,s):while left>=0 and right<len(s) and s[left]==s[right]:left-=1right+=1if len(s[left+1:right])>len(self.res):self.res = s[left+1:right]def longestPalindrome(self, s: str) -> str:self.res = ''for i in range(len(s)):self.helper(i,i,s)self.helper(i,i+1,s)return self.res

88-1.單調遞增的數字

class Solution(object):def monotoneIncreasingDigits(self, N):""":type N: int:rtype: int"""digits = []A = list(map(int, str(N)))# print('==A:', A)for i in range(len(A)):for d in range(1, 10):# print('==digits + [d] * (len(A) - i):', digits + [d] * (len(A) - i))if digits + [d] * (len(A) - i) > A:digits.append(d - 1)breakelse:digits.append(9)# print('==digits:', digits)return int("".join(map(str, digits)))

88-2:每日溫度

思路:單調遞增棧

class Solution:def dailyTemperatures(self, T):#單調遞增棧res = [0]*len(T)stack = []for i in range(len(T)):while stack and T[i] > T[stack[-1]]:res[stack[-1]] = i - stack[-1]stack.pop()print('==stack', stack)print('==res:', res)stack.append(i)return res T = [73, 74, 75, 71, 69, 72, 76, 73] sol = Solution() sol.dailyTemperatures(T)

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的leetcode hot100(第二部分) + python(c++)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

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