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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

算法笔记总结

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

算法筆記總結

一般不考慮空間復雜度,能降低時間復雜度就降低復雜度

時間復雜度排列順序

常見的算法時間復雜度由小到大依次為:

O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<…<O(2n)<O(n!)

暴力算法

暴力算法適用于沒有思路情況下第一會想到的,一般是幾成for循環搭配使用。

例如:

在一個長度為 n 的數組 nums 里的所有數字都在 0~n-1 的范圍內。數組中某些數字是重復的,但不知道有幾個數字重復了,也不知道每個數字重復了幾次。請找出數組中任意一個重復的數字。來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof 著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。 class Solution {public int findRepeatNumber(int[] nums) {int ans=0;for(int i=0;i<nums.length-1;i++){for(int j=i+1;j<nums.length;j++){if(nums[i]==nums[j]){ans=nums[i];return ans;}}}return ans;} }

哈希

HashSet

在一個長度為 n 的數組 nums 里的所有數字都在 0~n-1 的范圍內。數組中某些數字是重復的,但不知道有幾個數字重復了,也不知道每個數字重復了幾次。請找出數組中任意一個重復的數字。來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof 著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。class Solution {public int findRepeatNumber(int[] nums) {int ans=0;Set<Integer> set=new HashSet<Integer>();for(int i=0;i<nums.length;i++){if(set.contains(nums[i])){ans=nums[i];return ans;}set.add(nums[i]);}return ans;} }

貪心

貪心算法又稱貪婪算法,貪心算法是指在不考慮整體上最優,算法是在某種意義上的局部最優解。

貪心算法采用自頂向下,以迭代的方法做出相繼的貪心選擇,每做一次貪心選擇,就將所求問題簡化為一個規模更小的子問題,通過每一步貪心選擇,可得到問題的一個最優解。雖然每一步上都要保證能獲得局部最優解,但由此產生的全局解有時不一定是最優的,所以貪心算法不要回溯。

算法思路

一、建立數學模型。

二、把問題分成若干個子問題。

三、對子問題求解,得到子問題局部最優解。

四、把局部最優解合成合成原問題的解。

使用條件

1、貪心選擇的性質

一個問題的整體最優解可通過一系列局部的最優解的選擇達到,并且每次的選擇可以依賴以前作出的選擇,但不依賴于后面要作出的選擇。

2、最優子結構性質

當一個問題的最優解包含其子問題的最優解時,稱此問題具有最優子結構性質。

來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/can-place-flowers/ 著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。class Solution {public boolean canPlaceFlowers(int[] flowerbed, int n) {int count = 0;int m = flowerbed.length;int prev = -1;for (int i = 0; i < m; i++) {if (flowerbed[i] == 1) {if (prev < 0) {count += i / 2; //計算第一次左邊可以種植花的次數} else {count += (i - prev - 2) / 2; //距離上次的花的位置之間可以種植的花的次數}prev = i;}}if (prev < 0) {count += (m + 1) / 2;//全是0的情況,及總長度可以種植的次數} else {count += (m - prev - 1) / 2; //計算總長度和上次花的位置之間可以種植的次數}return count >= n;} }

滑動窗口最大值

暴力破解

來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/sliding-window-maximum/ 著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。//當數值很多的時候會時間超時,不可取。 class Solution {public int[] maxSlidingWindow(int[] nums, int k) {int len=nums.length;int[] ans=new int[len-k+1];for(int i=0;i<len-k+1;i++){int tmp=nums[i];for(int j=1;j<k;j++){int t=nums[i+j];if(tmp<t){tmp=t;}}ans[i]=tmp;}return ans;} }

單調隊列

作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/sliding-window-maximum/solution/hua-dong-chuang-kou-zui-da-zhi-by-leetco-ki6m/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class Solution {public int[] maxSlidingWindow(int[] nums, int k) {int n = nums.length;Deque<Integer> deque = new LinkedList<Integer>();for (int i = 0; i < k; ++i) {while (!deque.isEmpty() && nums[i] >= nums[deque.peekLast()]) { //獲取元素但不刪除deque.pollLast();//獲取元素并刪除}deque.offerLast(i); //隊尾增加元素}int[] ans = new int[n - k + 1];ans[0] = nums[deque.peekFirst()];for (int i = k; i < n; ++i) {while (!deque.isEmpty() && nums[i] >= nums[deque.peekLast()]) {deque.pollLast();}deque.offerLast(i);while (deque.peekFirst() <= i - k) {deque.pollFirst();}ans[i - k + 1] = nums[deque.peekFirst()];}return ans;} }

雙指針

作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/sliding-window-median/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class Solution {public double[] medianSlidingWindow(int[] nums, int k) {int len=nums.length;double[] ans=new double[len-k+1];int r=0;int l=0;int[] t=new int[k];int count=0;while(r<=len){int countk=0; if(r-l+1>k){for(int j=l;j<r;j++){t[countk]=nums[j];countk++;}l++;//開始Arrays.sort(t);if(k%2==0){ans[count]=(double)(t[(k/2)-1])/2 +(double)(t[k/2])/2;}else{ans[count]=t[k/2];}count++;}r++;}return ans;} } 作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/get-equal-substrings-within-budget/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class Solution {public int equalSubstring(String s, String t, int maxCost) {int len=s.length();//首先總開銷應當小于等于該預算int cost=0;int l=0,r=0;//雙指針用法滑窗while(r<len){cost+=Math.abs(s.charAt(r)-t.charAt(r));//差值r++;if(cost>maxCost){cost-=Math.abs(s.charAt(l)-t.charAt(l));l++;}}return r-l;} } 作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/subarrays-with-k-different-integers/submissions/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class Solution {public int subarraysWithKDistinct(int[] A, int K) {return getNum(A,K)-getNum(A,K-1);}public int getNum(int[] A,int K){int len = A.length;int[] freq = new int[len+1];int left = 0;int right = 0;// [left, right) 里不同整數的個數int count = 0;int res = 0;// [left, right) 包含不同整數的個數小于等于 Kwhile (right < len) {System.out.println("right="+right+" A[right]="+A[right]+" freq[A[right]]="+freq[A[right]]);if (freq[A[right]] == 0) { //不包含重復元素count++;}freq[A[right]]++;System.out.println("====>"+"right="+right+" A[right]="+A[right]+" freq[A[right]]="+freq[A[right]]);right++;System.out.println("count=="+count);while (count > K) {freq[A[left]]--;System.out.println("<<===="+"left="+left+" A[left]="+A[left]+" freq[A[left]]="+freq[A[left]]);if (freq[A[left]] == 0) {count--;}left++;}// [left, right) 區間的長度就是對結果的貢獻System.out.println(right+" - "+left+"\n");res += right - left;//System.out.println("res="+res);}return res;} } 哈希表+雙指針作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/degree-of-an-array/submissions/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class Solution {public int findShortestSubArray(int[] nums) {int len =nums.length;//先統計元素的最大頻數// nums的值 對應的個數Map<Integer,Integer> map = new HashMap<Integer,Integer>();for (int i = 0; i <len; i++) {if(map.containsKey(nums[i])) {map.put(nums[i], map.get(nums[i])+1);}else {map.put(nums[i], 1);}}int maxCount=-1;int maxKey=-1;for(Integer key : map.keySet()){Integer value = map.get(key);if(value>=maxCount){maxCount=value;}}int l=0,r=0;int res=Integer.MAX_VALUE;for(Integer key : map.keySet()){Integer value = map.get(key);if(value==maxCount){maxKey=key;int lcount=1;for(int i=0;i<len;i++){if(lcount==1 && nums[i]==maxKey){lcount=0;l=i;}if(nums[i]==maxKey){r=i;}}res=Math.min(res,r-l+1);}}return res;} }

二分法

作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/maximum-points-you-can-obtain-from-cards/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class Solution {public int maxScore(int[] cardPoints, int k) {int ans=0;int len=cardPoints.length;int sum=0;for(int i=0;i<k;i++){sum+=cardPoints[i];}ans=sum;for(int i=0;i<k;i++){sum+=cardPoints[len-i-1];sum-=cardPoints[k-i-1];ans=Math.max(ans,sum);}return ans;} } 作者:Y6blNU1L 鏈接:https://leetcode-cn.com/problems/search-in-rotated-sorted-array-ii/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class Solution {public boolean search(int[] nums, int target) {boolean ans=false;int n = nums.length;if (nums== null || n == 0) {return false;}if (n == 1) {return nums[0] == target;}Arrays.sort(nums);int l=0,r=n-1,mid=0;while (l <= r) {mid = l + (r - l) / 2;if (nums[mid] == target) {return true;}if (nums[l] == nums[mid]) {l++;continue;}if (nums[l] < nums[mid]) {if (nums[mid] > target && nums[l] <= target) {r = mid - 1;} else {l = mid + 1;}} else {if (nums[mid] < target && nums[r] >= target) {l = mid + 1;} else {r = mid - 1;}}}return ans;} }

單鏈表

單鏈表基礎:https://www.cnblogs.com/whgk/p/6589920.html

  • 頭結點:有時,在鏈表的第一個結點之前會額外增設一個結點,結點的數據域一般不存放數據(有些情況下也可以存放鏈表的長度等信息),此結點被稱為頭結點。

若頭結點的指針域為空(NULL),表明鏈表是空表。頭結點對于鏈表來說,不是必須的,在處理某些問題時,給鏈表添加頭結點會使問題變得簡單。
首元結點:鏈表中第一個元素所在的結點,它是頭結點后邊的第一個結點。

  • 頭指針:永遠指向鏈表中第一個結點的位置(如果鏈表有頭結點,頭指針指向頭結點;否則,頭指針指向首元結點)。
  • 頭結點和頭指針的區別:頭指針是一個指針,頭指針指向鏈表的頭結點或者首元結點;頭結點是一個實際存在的結點,它包含有數據域和指針域。兩者在程序中的直接體現就是:頭指針只聲明而沒有分配存儲空間,頭結點進行了聲明并分配了一個結點的實際物理內存。

單鏈表中可以沒有頭結點,但是不能沒有頭指針!

ListNode list=new ListNode(0) 初始化一個節點值為0的空節點,最常用最正規寫法

class Solution {public ListNode partition(ListNode head, int x) {ListNode small = new ListNode(0);ListNode smallHead = small;ListNode large = new ListNode(0);ListNode largeHead = large;while (head != null) {if (head.val < x) {small.next = head;small = small.next;} else {large.next = head;large = large.next;}head = head.next;}large.next = null;small.next = largeHead.next;//合并一條return smallHead.next;} }作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/partition-list/solution/fen-ge-lian-biao-by-leetcode-solution-7ade/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

優先隊列

隊列的核心思想就是先進先出,在優先級隊列中,數據按關鍵詞有序排列,插入新數據的時候,會自動插入到合適的位置保證隊列有序。(順序有兩種形式:升序或者是降序),優先級隊列底層的數據結構其實是一顆二叉堆。Java中PriorityQueue通過二叉小頂堆實現。

PriorityQueue是基于優先堆的一個無界隊列,這個優先隊列中的元素可以默認自然排序或者通過提供的Comparator(比較器)在隊列實例化的時排序。要求使用Java Comparable和Comparator接口給對象排序,并且在排序時會按照優先級處理其中的元素。

二叉堆有以下特征:

(1)二叉堆是一個完全二叉樹

(2)根節點總是大于左右子節點(大頂堆),或者是小于左右子節點(小頂堆)。

方法:

  • add:插入一個元素,不成功會拋出異常
  • offer:插入一個元素,不能被立即執行的情況下會返回一個特殊的值(true 或者 false)
  • remove:刪除一個元素,如果不成功會返回false。
  • poll:刪除一個元素,并返回刪除的元素
  • **peek:獲取首元素但不刪除 **
  • indexOf(Object o):查詢對象o的索引
  • contain(Object o):判斷是否容納了元素

實例

PriorityQueue<Integer>q=new PriorityQueue<Integer>();q.offer(5);q.offer(7);q.offer(6);q.offer(4);q.offer(8);q.remove(8);//升序后刪除 刪除的是元素的值,若為空則刪除排序后的首元素System.out.println(q.peek());//獲取升序后的首元素但不刪除System.out.println(q);System.out.println(q.poll());//獲取升序后的首元素但刪除System.out.println(q);//獲取升序后的首元素但刪除 的排列順序 作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/kth-largest-element-in-a-stream/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class KthLargest {PriorityQueue<Integer>que;int k;public KthLargest(int k, int[] nums) {this.k=k;que=new PriorityQueue<Integer>();for(int n: nums){add(n);}}public int add(int val) {que.offer(val);//增加元素if(que.size() >k){que.poll();//獲取首元素并刪除}return que.peek();//獲取首元素不刪除} }/*** Your KthLargest object will be instantiated and called as such:* KthLargest obj = new KthLargest(k, nums);* int param_1 = obj.add(val);*/

動態規劃

數組求和

思路: 原數組內增加長度1,出數組從索引 i 到 j(i ≤ j)范圍內元素的總和,包含 i、j兩點

// 0 --> 0 //1 0 0 --> 0 -2 -> -2 --> 表示nums中第1個數前值和 //2 1 1 --> -2 0 -> -2 --> 表示nums中第2個數前值和 //3 2 2 --> -2 3 -> 1 --> 表示nums中第3個數前值和class NumArray {int[] sum;public NumArray(int[] nums) {int len =nums.length;sum=new int[len+1];for(int i=0;i<len;i++){sum[i+1]=sum[i]+nums[i];}}public int sumRange(int i, int j) {return sum[j+1]-sum[i];} }作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/range-sum-query-immutable/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

一維前綴和

同上同理,只是二維數組轉成一維數組進行計算。

作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/range-sum-query-2d-immutable/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class NumMatrix {int[][]arr;public NumMatrix(int[][] matrix) {int r=matrix.length;if(r==0) return ;int c=matrix[0].length;arr=new int[r][c+1];for(int i=0;i<r;i++){for(int j=0;j<c;j++){arr[i][j+1]=arr[i][j]+matrix[i][j];}}}public int sumRegion(int row1, int col1, int row2, int col2) {int sum=0;for(int i=row1;i<=row2;i++){sum+=arr[i][col2+1]-arr[i][col1];}return sum;} }

二維前綴和

詳細具體參考:https://leetcode-cn.com/problems/range-sum-query-2d-immutable/solution/ru-he-qiu-er-wei-de-qian-zhui-he-yi-ji-y-6c21/

作者:LeetCode-Solution 鏈接:https://leetcode-cn.com/problems/range-sum-query-2d-immutable/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class NumMatrix {/*** 二維前綴和*/int[][]arr;public NumMatrix(int[][] matrix) {int r=matrix.length;if(r==0) return ;int c=matrix[0].length;arr=new int[r+1][c+1];for(int i=0;i<r;i++){for(int j=0;j<c;j++){arr[i+1][j+1]=arr[i][j+1]+arr[i+1][j]-arr[i][j]+matrix[i][j];}}}public int sumRegion(int r1, int c1, int r2, int c2) {return arr[r2+1][c2+1] - arr[r1][c2+1]- arr[r2+1][c1] + arr[r1][c1];} }

動態規劃 + 回溯算法

我們只需要以首個字符為起點,枚舉以其開頭所有的回文串方案,加入集合,然后對剩下的字符串部分繼續爆搜。就能做到以任意字符作為回文串起點進行分割的效果了。

剩下的問題是,我們如何快速判斷連續一段 [i, j] 是否為回文串,因為爆搜的過程每個位置都可以作為分割點,復雜度為 O(2^n)O(2
n) 的。

因此我們不可能每次都使用雙指針去線性掃描一遍 [i, j] 判斷是否回文。

一個直觀的做法是,我們先預處理除所有的 f[i][j],f[i][j] 代表 [i, j] 這一段是否為回文串。

預處理 f[i][j] 的過程可以用遞推去做。

要想 f[i][j] == true ,必須滿足以下兩個條件:

一、f[i + 1][j - 1] == true
二、s[i] == s[j]
由于狀態 f[[i][j]依賴于狀態 f[i + 1][j - 1],因此需要我們左端點 i 是從大到小進行遍歷;而右端點 j 是從小到大進行遍歷。

因此,我們的遍歷過程可以整理為:右端點 j 一直往右移動(從小到大),在 j 固定情況下,左端點 i 在 j 在左邊開始,一直往左移動(從大到小)

鏈接:https://leetcode-cn.com/problems/palindrome-partitioning/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class Solution {public List<List<String>> partition(String s) {int n = s.length();char[] cs = s.toCharArray();// f[i][j] 代表 [i, j] 這一段是否為回文串boolean[][] f = new boolean[n][n];for (int j = 0; j < n; j++) {for (int i = j; i >= 0; i--) {// 當 [i, j] 只有一個字符時,必然是回文串if (i == j) {f[i][j] = true;} else {// 當 [i, j] 長度為 2 時,滿足 cs[i] == cs[j] 即回文串if (j - i + 1 == 2) {f[i][j] = cs[i] == cs[j];// 當 [i, j] 長度大于 2 時,滿足 (cs[i] == cs[j] && f[i + 1][j - 1]) 即回文串} else {f[i][j] = cs[i] == cs[j] && f[i + 1][j - 1];}}}}List<List<String>> ans = new ArrayList<>();List<String> cur = new ArrayList<>();dfs(s, 0, ans, cur, f);return ans;}/*** s: 要搜索的字符串* u: 以 s 中的那一位作為回文串分割起點* ans: 最終結果集* cur: 當前結果集* f: 快速判斷 [i,j] 是否為回文串*/void dfs(String s, int u, List<List<String>> ans, List<String> cur, boolean[][] f) {int n = s.length();if (u == n) ans.add(new ArrayList<>(cur));for (int i = u; i < n; i++) {if (f[u][i]) {cur.add(s.substring(u, i + 1));dfs(s, i + 1, ans, cur, f);cur.remove(cur.size() - 1);}}} }

動態轉移方程方程思想

思想:抽出動態規劃里非常重要的兩個概念:狀態和狀態轉移方程。

動態規劃算法通常基于一個遞推公式及一個或多個初始狀態。當前子問題的解將由上一次子問題的解推出。使用動態規劃來解題只需要多項式時間復雜度,因此它比回溯法、暴力法等要快許多。

鏈接:https://leetcode-cn.com/problems/distinct-subsequences/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class Solution {public int numDistinct(String s, String t) {int m = s.length(), n = t.length();if (m < n) {return 0;}int[][] dp = new int[m + 1][n + 1];for (int i = 0; i <= m; i++) {dp[i][n] = 1;}for (int i = m - 1; i >= 0; i--) {char sChar = s.charAt(i);for (int j = n - 1; j >= 0; j--) {char tChar = t.charAt(j);if (sChar == tChar) {dp[i][j] = dp[i + 1][j + 1] + dp[i + 1][j];} else {dp[i][j] = dp[i + 1][j];}}}return dp[0][0];} } 鏈接:https://leetcode-cn.com/problems/longest-common-subsequence/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。詳解參考: https://leetcode-cn.com/problems/longest-common-subsequence/solution/fu-xue-ming-zhu-er-wei-dong-tai-gui-hua-r5ez6/class Solution {public int longestCommonSubsequence(String text1, String text2) {int m=text1.length(),n=text2.length();int dp[][]=new int[m+1][n+1];for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){if(text1.charAt(i-1) == text2.charAt(j-1) ){dp[i][j] = dp[i-1][j-1] +1;}else{dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]);}}}return dp[m][n];} }

Stack是棧;特點是:先進后出。

E push(E item) // 把項壓入堆棧頂部。E pop() //移除堆棧頂部的對象,并作為此函數的值返回該對象。 E peek() //查看堆棧頂部的對象,但不從堆棧中移除它。 boolean empty() //測試堆棧是否為空。 int search(Object o) // 返回對象在堆棧中的位置,以 1 為基數。 import java.util.Stack;public class StackX {public static void main(String[] args) {stackMethod();}//stack operatepublic static void stackMethod(){//定義一個Integer泛型的StackStack<Integer> stack = new Stack<Integer>();System.out.println("新建棧stack是否為空 : "+(stack.empty() ? "空" : stack.size()));//push : 把項壓入堆棧頂部,返回值泛型指定的類型//此處將1到5壓入棧中stack.push(1);stack.push(2);stack.push(3);stack.push(4);stack.push(5);System.out.println("將1到5按順序壓入棧中后為:"+stack);//empty : 測試堆棧是否為空,size() == 0,返回值booleanSystem.out.println("值為1~5的棧中stack是否為空 : "+(stack.empty() ? "空" : stack.size()));//search : 返回對象在堆棧中的位置,以 1 為基數,參數:search(Object o) ,返回值intint oStack = stack.search(3);System.out.println("查找棧stack中對象3的位置elementId為 : "+oStack);//peek : 查看堆棧頂部的對象,但不從堆棧中移除它,返回值泛型指定的類型int topElement =stack.peek();System.out.println("查看stack的棧頂元素為 : "+topElement);System.out.println("peek操作stack后為 : "+stack);//pop : 移除堆棧頂部的對象,并作為此函數的值返回該對象,返回值泛型指定的類型int oRemove = stack.pop();System.out.println("移除stack棧頂的元素為 : "+oRemove);System.out.println("pop操作移除stack棧頂元素后為 : "+stack);} }輸出為:新建棧stack是否為空 : 空 將15按順序壓入棧中后為:[1, 2, 3, 4, 5] 值為1~5的棧中stack是否為空 : 5 查找棧stack中對象3的位置elementId為 : 3 查看stack的棧頂元素為 : 5 peek操作stack后為 : [1, 2, 3, 4, 5] 移除stack棧頂的元素為 : 5 pop操作移除stack棧頂元素后為 : [1, 2, 3, 4]//自定義獲取棧的的值 class Solution {public boolean isValidSerialization(String preorder) {Deque<String> stack = new LinkedList<>();for (String s : preorder.split(",")) {stack.push(s);while (stack.size() >= 3&& ((LinkedList<String>) stack).get(0).equals("#")&& ((LinkedList<String>) stack).get(1).equals("#")&& !((LinkedList<String>) stack).get(2).equals("#")) {stack.pop();stack.pop();stack.pop();stack.push("#");}}return stack.size() == 1 && stack.pop().equals("#");} }

隊列

隊列是線性表的一種,在操作數據元素時,和棧一樣,有自己的規則:使用隊列存取數據元素時,數據元素只能從表的一端進入隊列,另一端出隊列。特點是先進先出。

Deque

Deque是Queue的子接口。

Deque有兩個比較重要的類:ArrayDeque和LinkedList

建議 使用棧時,用ArrayDeque的push和pop方法;

使用隊列時,使用ArrayDeque的add和remove方法。

三種用途

  • 普通隊列(一端進另一端出):
    Queue queue = new LinkedList()或Deque deque = new LinkedList()
  • 雙端隊列(兩端都可進出)
    Deque deque = new LinkedList()
  • 堆棧
    Deque deque = new LinkedList()

Java官方推薦使用Deque替代Stack使用。Deque堆棧操作方法:push()、pop()、peek()。

詳細參考:https://blog.csdn.net/devnn/article/details/82716447

實例

作者:Y6blNU1L 鏈接:https://leetcode-cn.com/problems/basic-calculator-ii/solution/227-ji-ben-ji-suan-qi-ii-javayong-dequed-zci2/ 來源:力扣(LeetCode) 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。class Solution {public int calculate(String s) {//Deque堆棧操作Deque<Integer> stack = new LinkedList<Integer>();char sign = '+';int num = 0;int n = s.length();for (int i = 0; i < n; ++i) {if (Character.isDigit(s.charAt(i))) {//為數字num = num * 10 + s.charAt(i) - '0';}if (!Character.isDigit(s.charAt(i)) && s.charAt(i) != ' ' || i == n - 1) {//為字符switch (sign) {case '+':stack.push(num);// System.out.println("+"+stack);break;case '-':stack.push(-num);// System.out.println("-"+stack);break;case '*':stack.push(stack.pop() * num);// System.out.println("*"+stack);break;default:stack.push(stack.pop() / num);// System.out.println("/"+stack);}sign = s.charAt(i);num = 0;}}int ans = 0;while (!stack.isEmpty()) {ans += stack.pop();}return ans;} }

Queue

Queue是java中實現隊列的接口,它總共只有6個方法,我們一般只用其中3個就可以了。Queue的實現類有LinkedList和PriorityQueue。最常用的實現類是LinkedList。

Queue的6個方法分類:

壓入元素(添加):add()、offer()
相同:未超出容量,從隊尾壓入元素,返回壓入的那個元素。
區別:在超出容量時,add()方法會對拋出異常,offer()返回false

彈出元素(刪除):remove()、poll()
相同:容量大于0的時候,刪除并返回隊頭被刪除的那個元素。
區別:在容量為0的時候,remove()會拋出異常,poll()返回false

獲取隊頭元素(不刪除):element()、peek()
相同:容量大于0的時候,都返回隊頭元素。但是不刪除。
區別:容量為0的時候,element()會拋出異常,peek()返回null。

詳細參考:https://blog.csdn.net/devnn/article/details/82591349

public class QueueTest {public static void main(String[] args) {Queue<String> queue = new LinkedList();queue.offer("元素A");queue.offer("元素B");queue.offer("元素C");queue.offer("元素D");queue.offer("元素E");while (queue.size() > 0) {String element = queue.poll();System.out.println(element);}} }輸出:元素A 元素B 元素C 元素D 元素E

二叉樹

  • 根(Root):樹中最頂端的節點,根沒有父節點。
  • 子節點(Child):節點所擁有子樹的根節點稱為該節點的子節點。
  • 父節點(Parent):如果節點擁有子節點,則該節點為子節點的父節點。
  • 兄弟節點(Sibling):與節點擁有相同父節點的節點。
  • 子孫節點(Descendant):節點向下路徑上可達的節點。
  • 葉節點(Leaf):沒有子節點的節點。
  • 內節點(Internal Node):至少有一個子節點的節點。
  • 度(Degree):節點擁有子樹的數量。
  • 邊(Edge):兩個節點中間的鏈接。
  • 路徑(Path):從節點到子孫節點過程中的邊和節點所組成的序列。
  • 層級(Level):根為 Level 0 層,根的子節點為 Level 1 層,以此類推。
  • 高度(Height)/深度(Depth):樹中層的數量。比如只有 Level 0,Level 1,Level 2 則高度為 3。

二叉搜索樹

二叉搜索樹是一種節點值之間具有一定數量級次序的二叉樹,對于樹中每個節點:

  • 若其左子樹存在,則其左子樹中每個節點的值都不大于該節點值;
  • 若其右子樹存在,則其右子樹中每個節點的值都不小于該節點值。

觀察二叉搜索樹結構可知,二叉樹節點個數確定的情況下,整顆樹的高度越低,節點的查詢復雜度越低。

遍歷樹

遍歷指的是按照某種特定的次序來訪問二叉搜索樹中的每個節點,主要有三種遍歷的方法:

  • 前序遍歷,“根左右”
  • 中序遍歷,“左根右”
  • 后續遍歷,“左右根”
  • 上面的口訣“中左右”表示的含義是,先訪問根節點,再訪問左子,最后訪問右子。舉個例子:

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UzQlNmla-1618277790358)(https://z3.ax1x.com/2021/04/13/cruyVJ.jpg)]

    • 前序遍歷:39 24 23 30 64 53 60
    • 中序遍歷:23 24 30 39 53 60 64
    • 后序遍歷:23 30 24 60 53 64 39

    詳細參考博客: https://www.cnblogs.com/yahuian/p/10813614.html

    來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/ 來源:力扣(LeetCode) 著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/ class Solution {int pre;int ans;public int minDiffInBST(TreeNode root) {ans = Integer.MAX_VALUE;pre = -1;dfs(root);return ans;}public void dfs(TreeNode root) {if (root == null) {return;}//中序遍歷dfs(root.left);if (pre == -1) {pre = root.val;} else {ans = Math.min(ans, root.val - pre);pre = root.val;}dfs(root.right);} }

    總結

    以上是生活随笔為你收集整理的算法笔记总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产黄色一级片 | 国产亚洲视频中文字幕视频 | 久久婷婷精品视频 | 免费精品视频 | 波多野结衣视频一区 | 日韩亚洲在线观看 | 中文日韩在线视频 | 免费观看黄色av | 波多野结衣在线观看一区二区三区 | 97精品国产97久久久久久春色 | 国产精品日韩在线播放 | 亚洲一级理论片 | 国产精品毛片一区 | 麻豆久久久久久久 | 久草五月| 一区二区三区三区在线 | 日本在线中文在线 | 91人人澡人人爽 | 精品在线观看国产 | 亚洲成人高清在线 | 国产一区二区在线免费视频 | 日韩欧美一区二区在线观看 | 精品夜夜嗨av一区二区三区 | 视频一区二区国产 | 欧美日韩xxx| 91精品国产一区二区三区 | 亚洲综合欧美激情 | 日批视频国产 | 成人毛片网 | 999成人网| 国产精品美乳一区二区免费 | 超碰在线日本 | 五月天视频网 | 精品国产一二区 | 国产精品国产毛片 | 99日韩精品 | 欧美亚洲一区二区在线 | 丁香五月缴情综合网 | 日本高清久久久 | 丁香婷婷射 | 欧美一区二区三区免费看 | 91麻豆精品国产91久久久更新时间 | 国产性xxxx| 91精品国产91热久久久做人人 | 五月天激情综合网 | 麻豆传媒视频在线免费观看 | 欧美日韩亚洲一 | 久久成人亚洲欧美电影 | 超碰国产在线观看 | 久久精品视频在线看 | 国产精品欧美一区二区三区不卡 | 欧美在线观看视频免费 | 国产精品成人一区二区三区吃奶 | 亚洲精品视频在线观看免费视频 | 麻豆视频www | 黄网站免费久久 | 亚洲综合色站 | 久久精品免费观看 | www.福利视频| 91网免费观看 | 91高清视频在线 | 国产免费高清 | 国产日韩精品一区二区 | 国产在线欧美 | 久久亚洲欧美日韩精品专区 | 黄色1级大片 | 中文字幕中文字幕在线中文字幕三区 | 天天色天天综合网 | 久久久久久视频 | 欧美激情综合色综合啪啪五月 | 欧美一区二区在线免费观看 | 国内精品久久久久影院男同志 | 亚洲精品美女在线观看 | 特级毛片网站 | 99热这里只有精品免费 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 亚州精品在线视频 | 欧美怡红院视频 | 一区二区在线电影 | 99久久毛片 | 国产一区私人高清影院 | 久草资源在线 | 国内精品视频在线播放 | 99在线免费视频 | 四虎国产精品成人免费影视 | 黄网站app在线观看免费视频 | 天天干夜夜操视频 | 国产在线视频资源 | 久久精品视频观看 | 在线导航av | 久碰视频在线观看 | 美女国产网站 | 国产高清永久免费 | 久久国产精品99国产 | 伊人天天操 | 99精品免费视频 | 成人在线视频你懂的 | 视频二区在线 | 午夜少妇一区二区三区 | 国产字幕在线看 | 亚洲成人av在线播放 | 中文字幕av专区 | 日韩中出在线 | 中国一级片视频 | 国产福利一区二区三区在线观看 | 91免费观看国产 | 亚洲激精日韩激精欧美精品 | 成人一级 | 精品国产视频在线观看 | 国产精品9999久久久久仙踪林 | 天天干天天干天天干天天干天天干天天干 | 精品久久一区 | 麻豆一精品传二传媒短视频 | 国产精品不卡视频 | 久久久福利影院 | 午夜91视频 | 国色天香在线观看 | 91精品国产综合久久婷婷香蕉 | 97色资源 | 日韩不卡高清 | 久久91久久久久麻豆精品 | 中文字幕在线国产精品 | 黄色三级免费观看 | 精品久久五月天 | 中文字幕一区三区 | 欧美日韩久 | 在线国产精品一区 | 午夜电影久久久 | 欧美日韩中 | 日韩色视频在线观看 | 色久五月| 国产淫a| 97超碰在线久草超碰在线观看 | 波多野结衣一区三区 | 天天综合成人网 | 天天色天天操天天爽 | 日韩黄色网络 | 欧美亚洲另类在线视频 | 婷婷六月天丁香 | 婷婷在线资源 | 久久 亚洲视频 | 国内小视频在线观看 | 成人网中文字幕 | 亚洲丝袜一区 | 日韩av免费一区 | 三级a视频 | 一区二区三区免费在线 | 亚洲精品视频偷拍 | 色婷丁香 | 免费三级黄色片 | a天堂一码二码专区 | 亚洲人成人在线 | 狠狠黄| 在线观看免费日韩 | 在线免费观看涩涩 | 香蕉视频免费看 | 亚州精品视频 | 国产成人一二片 | 日本99精品| 九九热av| 欧美精品在线一区二区 | 天天干天天操天天射 | 玖玖在线资源 | 久久免费的精品国产v∧ | av免费看电影 | 在线亚洲人成电影网站色www | 亚洲国产人午在线一二区 | 97天堂 | 在线观看免费色 | 色婷婷一区 | 999成人国产 | 色婷婷 亚洲 | 欧美午夜理伦三级在线观看 | 曰韩在线 | 日韩欧美精品在线观看 | 九九久久国产精品 | 97超碰国产精品女人人人爽 | 国产一级免费观看视频 | 日韩在线免费看 | 91在线视频播放 | 久久综合免费视频影院 | 国产精品麻豆99久久久久久 | 久久久亚洲精华液 | 久久国产精品成人免费浪潮 | 久久精品a | 狠狠的日日 | 国产成人a v电影 | 特级黄色视频毛片 | 中国一级片在线观看 | 亚洲人成人天堂h久久 | 久久兔费看a级 | 一区二区精品在线 | 探花视频免费观看高清视频 | 99热这里精品 | 中文字幕成人在线 | 91夫妻自拍 | 国产日韩欧美在线播放 | 精品你懂的 | 在线国产日本 | 国产精品久久久99 | av成人在线观看 | 91丨九色丨蝌蚪丨对白 | 国产免费av一区二区三区 | 在线观看成人 | 高清av中文在线字幕观看1 | 亚洲一级理论片 | av在线免费观看网站 | 久久特级毛片 | 亚洲精品网址在线观看 | 射射色| 日本中文字幕久久 | 黄色一级片视频 | 亚洲精品国产成人av在线 | 久久艹在线 | 国产一区二区三精品久久久无广告 | 九九免费在线观看 | 成人黄视频 | 国产精品69av | 日韩网站在线免费观看 | 91精品一| 2023亚洲精品国偷拍自产在线 | 国产精品18久久久久久久久 | 美女黄视频免费 | 激情欧美一区二区免费视频 | 这里只有精彩视频 | 国产精品一区二区免费看 | 国产日韩精品一区二区在线观看播放 | 国产精品123 | 18+视频网站链接 | 亚洲最大免费成人网 | 97超碰资源 | 又粗又长又大又爽又黄少妇毛片 | 天天射天天射天天 | 日韩午夜一级片 | 97成人精品区在线播放 | 国产精品va最新国产精品视频 | 97国产精品亚洲精品 | 日韩欧美视频一区二区三区 | 天天操天天色天天射 | 欧美日韩国产色综合一二三四 | 日日夜夜天天人人 | 日韩中文字幕免费 | 午夜av一区 | 亚洲九九 | 蜜臀91丨九色丨蝌蚪老版 | 亚洲精品视频在线播放 | 国产成人三级三级三级97 | 亚洲精品国产精品乱码在线观看 | 色婷婷综合久久久中文字幕 | 国产在线播放不卡 | 国产69精品久久久久9999apgf | 欧美激情综合五月色丁香 | av亚洲产国偷v产偷v自拍小说 | 日本中文字幕在线观看 | 日韩精品久久久免费观看夜色 | 一区二区三区在线视频观看58 | 97视频免费在线 | 日韩区欧美久久久无人区 | 国产一区在线播放 | 午夜精品久久久久久久久久久久 | 久久精品视频在线观看 | av片在线看| 日韩资源在线播放 | 亚洲成av人电影 | 97久久久免费福利网址 | 国产精品久久久久久五月尺 | 国产精品一区在线观看你懂的 | 视频在线观看一区 | 精品免费久久久久久 | 69av网| 国产亚洲一区二区在线观看 | 久久精品4 | 日韩成人精品一区二区三区 | 欧美一区二区在线免费看 | 久久综合免费视频影院 | 中文字幕在线视频精品 | 五月天激情综合网 | 亚洲成人资源 | 婷婷国产精品 | 久久精品视频在线 | 天堂av观看| 6699私人影院| 亚洲区另类春色综合小说 | 制服丝袜在线91 | 日韩中文字幕视频在线 | 午夜av不卡 | 久久这里精品视频 | 国产精品久久久视频 | 精品一区 在线 | 欧美一级片免费在线观看 | 色婷婷激婷婷情综天天 | 国产一区二区久久久久 | 欧美最猛性xxxxx免费 | 成人黄色电影在线播放 | 激情婷婷综合网 | 成人亚洲精品国产www | 黄色成人影院 | 欧美另类调教 | 亚洲激情av | 国内精品久久久久久中文字幕 | 黄色软件网站在线观看 | 9色在线视频 | 日韩亚洲国产中文字幕 | 久久精品亚洲精品国产欧美 | 最近中文字幕免费视频 | 精品国产一区二区三区日日嗨 | 人人精品 | 999成人| 高清av免费观看 | 国产中文字幕免费 | 久久久这里有精品 | 日日操网站 | 国内精品视频一区二区三区八戒 | 少妇性xxx | 开心丁香婷婷深爱五月 | 91最新在线视频 | 美女视频国产 | 中文字幕在线一区观看 | 国产精品婷婷午夜在线观看 | 国内精品久久久久久久久久 | 婷婷久久亚洲 | 五月激情久久久 | 91免费版成人 | 三级黄色片子 | 国产精品综合在线 | 香蕉视频久久久 | 青青看片 | 97成人精品 | 免费日韩高清 | 日本黄色免费电影网站 | 三级动图 | 国产色就色 | 国内久久视频 | 成人久久久精品国产乱码一区二区 | 欧美污污网站 | 亚洲 精品在线视频 | 日韩欧美高清免费 | 伊人久久国产精品 | 午夜精品一区二区三区在线视频 | a在线免费 | 国产视频久久久久 | 特级大胆西西4444www | 国产精品第54页 | 九九视频热| 中文字幕精品三级久久久 | 国产精品欧美日韩在线观看 | 91丨九色丨高潮 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产99一区| 国产精品国产三级国产aⅴ无密码 | 97精品国产aⅴ | 免费看高清毛片 | 欧美综合色 | 91人人插| 亚洲天堂香蕉 | 97国产大学生情侣酒店的特点 | 91黄色免费网站 | 国产精品福利一区 | 亚洲国产无| 麻豆传媒在线免费看 | 色婷婷久久久 | 99在线免费观看 | 亚洲综合视频在线播放 | 蜜臀av性久久久久av蜜臀三区 | 久久99爱视频 | 日韩精品久久一区二区三区 | 国产一二三四在线观看视频 | 2000xxx影视| 日日干天天射 | 欧美色噜噜噜 | 91在线色| 午夜久久久影院 | 黄av免费在线观看 | 超碰在线人人草 | av福利在线免费观看 | 日本狠狠色| 在线观看av免费观看 | 久久久免费精品国产一区二区 | 天天操天天干天天爽 | 99久久超碰中文字幕伊人 | 91最新网址在线观看 | 成人免费视频网址 | 黄色一级免费 | 手机看片国产日韩 | 五月婷香蕉久色在线看 | 97成人精品区在线播放 | 国产又黄又猛又粗 | 亚洲黄色精品 | 国产日韩精品一区二区三区在线 | 中文字幕观看在线 | 97碰碰精品嫩模在线播放 | 亚洲精品在线一区二区 | 在线电影日韩 | 欧美a免费 | 国产福利在线不卡 | 美女黄频在线观看 | 欧美精品久久久久久久亚洲调教 | av中文字幕在线观看网站 | 久久综合中文字幕 | 天天摸日日摸人人看 | 久久男人视频 | 国内毛片毛片 | 久久9999久久 | 亚洲三级在线 | 亚欧日韩成人h片 | 久久色网站| 免费看一级一片 | 国产黄色网 | 日本公妇色中文字幕 | 黄色一级免费网站 | 手机av网站 | 一区二区三区免费在线 | 99re国产| 亚洲伊人成综合网 | 国产精品自产拍在线观看蜜 | 国产中文字幕视频在线观看 | 亚洲精品网页 | 欧美一二三专区 | 狠狠的操狠狠的干 | 91精品国产99久久久久久红楼 | 国产中文字幕在线 | 91精品国产成 | 久久综合干 | 国产精品久久久久免费 | 欧美精品一区二区免费 | 久久一二区| 国产精品入口久久 | 999久久久国产精品 高清av免费观看 | 国产在线毛片 | 人人干狠狠干 | 99在线精品免费视频九九视 | av7777777| 制服丝袜亚洲 | 欧美一区二区精品在线 | 97影视| 国产精选在线观看 | 黄色1级毛片 | 国产a高清 | 国产在线精品播放 | 久久美女高清视频 | 国产美女久久 | 国产色婷婷在线 | 国产一区免费视频 | 日韩欧美91| 久久久精品小视频 | 美女视频免费一区二区 | 国产黄在线免费观看 | 又黄又爽又刺激视频 | 91人人澡人人爽人人精品 | 99视频精品视频高清免费 | www.激情五月.com | 在线色网站 | 98超碰在线 | 久久久免费精品国产一区二区 | 中文字幕观看在线 | 91爱爱网址 | 久操伊人 | 天天干 夜夜操 | 激情欧美一区二区三区 | 五月开心六月婷婷 | 亚洲精品国精品久久99热 | 久久久国际精品 | 最近中文字幕视频完整版 | 久久国内免费视频 | 天天操夜操 | 午夜影视剧场 | 91精品在线免费视频 | av超碰在线| 97精品国产97久久久久久久久久久久 | 欧美成人在线免费 | 99re久久资源最新地址 | 亚洲黄色在线播放 | 国产精品一区免费在线观看 | av看片在线观看 | 国产精品久久久av久久久 | 深爱激情五月婷婷 | 久久精品aaa | 在线观看一区二区精品 | 亚洲国产精品久久久久婷婷884 | 中文字幕有码在线 | 日韩欧美一区二区三区在线观看 | 日韩精品在线免费播放 | 免费在线电影网址大全 | 久久一区精品 | 国产小视频在线免费观看 | 日韩中文字幕a | 九九亚洲精品 | 成年人在线视频观看 | 免费毛片aaaaaa| 日韩一级网站 | 亚洲国产日本 | 三级免费黄 | a级国产乱理伦片在线观看 亚洲3级 | 特级西西444www大胆高清无视频 | 99精品欧美一区二区蜜桃免费 | 国产精品一区二区免费视频 | 久久免费视频在线观看30 | 伊人黄色网 | 黄色影院在线免费观看 | 亚洲日本国产精品 | 久久久久亚洲最大xxxx | 人人爱人人爽 | 精品国产一二区 | 成人久久久久 | 国产高清视频在线 | 亚洲国产日韩在线 | 天天做天天干 | 亚洲精品动漫在线 | 狠狠色伊人亚洲综合网站野外 | 成年免费在线视频 | 天天曰| 日韩精品一区二区不卡 | www.久久久精品 | 成人久久视频 | 久久久久久久久久亚洲精品 | 亚洲精品在线免费观看视频 | 91免费版成人 | 免费又黄又爽 | 欧美性大胆 | 日韩高清国产精品 | 中文字幕在线播放第一页 | 免费亚洲视频 | 亚洲精品午夜久久久久久久久久久 | 中国精品少妇 | 青青河边草观看完整版高清 | 久久人人射 | 精品国产欧美 | 色av婷婷| 色综合小说 | 亚洲男女精品 | 国产美女视频一区 | 成人免费视频播放 | 亚洲视频在线观看 | 国产精久久久 | 热久久免费视频精品 | 国产三级av在线 | 久久香蕉电影网 | 国产午夜激情视频 | 狠狠操精品 | 超碰在线国产 | 天天插天天狠天天透 | 亚洲性视频 | 国产麻豆精品久久 | 色婷婷综合久久久久 | 欧美三级在线播放 | 国产视频1区2区 | 天天干,天天射,天天操,天天摸 | 六月色| 中文字幕精品一区 | 在线视频日韩一区 | 深爱激情站 | 成人在线中文字幕 | 久久色在线观看 | 日韩欧美一区二区在线 | www.天天草 | 日本护士三级少妇三级999 | 亚洲国产欧洲综合997久久, | 婷婷在线色 | 激情 婷婷| 亚洲欧洲中文日韩久久av乱码 | 欧美精品九九99久久 | 在线视频观看成人 | jizzjizzjizz亚洲| 亚洲欧洲国产视频 | 中文字幕在线网 | 精品久久国产 | 黄色一级性片 | 国产这里只有精品 | 四虎影视成人精品 | 香蕉在线影院 | 日本中文字幕视频 | 国产精品av久久久久久无 | 波多野结衣电影一区二区 | 欧美另类重口 | 日韩精品欧美一区 | 亚洲最大av网 | 中文字幕刺激在线 | 91丨九色丨91啦蝌蚪老版 | 在线视频观看你懂的 | 亚洲精品久久久久中文字幕m男 | 91九色蝌蚪视频 | 成人黄色av网站 | 97在线看片 | 综合天天久久 | 国产一二三四在线视频 | 国产美腿白丝袜足在线av | 国产精品久久久久久久久久久杏吧 | 91亚洲精品久久久久图片蜜桃 | 国内少妇自拍视频一区 | www亚洲国产 | 成人黄在线 | 久久精品国产免费 | 欧美日本不卡视频 | 亚洲黄网址 | 欧美日韩xxxxx | 国产在线精 | 五月婷婷激情六月 | 日韩精品免费专区 | 欧美在线aaa | 美女网站在线看 | 日韩精品一区二区三区在线播放 | 超碰97免费在线 | 激情综合五月 | 久久久久久高潮国产精品视 | av免费看在线| 国产成免费视频 | 操操操操网| 97超碰在线久草超碰在线观看 | 超级碰碰免费视频 | 一区二区三区高清在线观看 | 日韩精品一区二区三区水蜜桃 | 国产一级性生活视频 | 一区二区精品在线观看 | 国产精品专区在线 | 国产精品一区二区 91 | av电影免费观看 | 亚洲电影黄色 | 亚洲天天在线 | 久久午夜免费视频 | 国产在线欧美日韩 | 九九九九九九精品任你躁 | 黄色免费电影网站 | 日韩91在线| 免费观看完整版无人区 | 亚洲高清网站 | 日韩乱色精品一区二区 | 天天射狠狠干 | 91精品啪在线观看国产线免费 | 97超碰在线免费 | 99视频精品免费视频 | 日日夜夜精品视频天天综合网 | 麻豆观看 | 四虎影视精品永久在线观看 | 久久综合久久综合这里只有精品 | 嫩草伊人久久精品少妇av | 国产福利小视频在线 | 超碰个人在线 | 亚洲第一av在线播放 | 欧美日韩午夜 | 国产高清免费在线播放 | 国产经典三级 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 亚洲黄色成人 | 五月婷婷中文网 | 国产视频在线观看一区二区 | 国产亚洲精品成人av久久影院 | 草久在线观看视频 | 婷婷在线五月 | 夜夜躁狠狠躁日日躁视频黑人 | 久久久精品久久日韩一区综合 | 国产精品成人品 | 97在线精品视频 | 久久免费片 | 在线免费观看羞羞视频 | 久久福利小视频 | 国产精品免费视频网站 | 国产伦精品一区二区三区高清 | 17婷婷久久www | 国产精品女人网站 | 黄色精品一区 | 成年人在线播放视频 | 91亚洲网 | 欧美日本不卡视频 | 国产a视频免费观看 | 亚州成人av在线 | 在线免费观看黄色 | 高清视频一区 | 99精品国产99久久久久久福利 | 欧美另类高清 | 96av视频 | 精品免费久久久久久 | 热久久国产| 99色网站| 久久a v电影 | 五月婷婷久 | 久久亚洲欧美 | 免费日韩一区 | 日韩特级黄色片 | 二区三区中文字幕 | 欧美久久久影院 | 99久久精品国产免费看不卡 | 99久久电影 | 深夜免费福利在线 | av在线等 | 91精品视频免费在线观看 | 国产一区免费在线 | 黄视频网站大全 | 九色在线视频 | 国产美腿白丝袜足在线av | 精品国产91亚洲一区二区三区www | 男女免费av| 久久高清免费视频 | 亚洲女欲精品久久久久久久18 | 久久热亚洲 | 免费污片 | 久久精品屋 | 久久国产精品一区二区三区 | 久视频在线 | 日韩欧美综合精品 | 九九免费精品视频在线观看 | 亚洲有 在线 | 日批网站免费观看 | 久久超碰免费 | 五月天狠狠操 | 成人h在线播放 | 免费福利视频网 | 麻豆视频www | 国产黄大片 | 免费一级片在线观看 | 国产精品入口麻豆www | 久久综合久久88 | 免费福利视频网站 | 久久久综合色 | 国产色婷婷 | 亚洲激情p | 午夜精品一区二区三区四区 | 精品视频97| 日韩精品一区二区三区在线视频 | 亚洲区视频在线 | 91精品对白一区国产伦 | 五月天婷婷丁香花 | 久99久在线视频 | 99久久综合狠狠综合久久 | av免费播放| 免费在线观看av网站 | 免费黄色一区 | 天天干天天操天天搞 | 精品久久久久久综合日本 | 91香蕉视频720p | 在线观看视频免费大全 | 精品久久中文 | 久久99网站 | 国产91在线免费视频 | 国产原创在线观看 | 国产午夜av | 中文字幕免费高清在线观看 | 精品一区二区三区在线播放 | 亚洲国产av精品毛片鲁大师 | 亚洲综合视频在线播放 | 国产一二区免费视频 | 免费观看v片在线观看 | 国产精品a级| 久久成人国产精品一区二区 | 成人资源站 | 婷婷在线网 | 国产流白浆高潮在线观看 | 国产97在线播放 | 国产又粗又猛又黄视频 | 天天插综合网 | 久色 网 | 亚洲黄色免费 | 国产成人三级在线播放 | 欧美日韩一区三区 | 热99在线 | 成人av网址大全 | 婷婷成人在线 | 热久久影视 | 西西444www大胆高清视频 | 国产91在 | 日产av在线播放 | 国产精品午夜在线 | 久久久综合九色合综国产精品 | 999电影免费在线观看2020 | 一区二区三区在线看 | 欧美精品国产综合久久 | 成人网在线免费视频 | 波多野结衣久久资源 | 欧美日韩国产二区三区 | 91中文在线| 久久国产精品一区二区三区 | 91亚洲精品在线观看 | 日日干美女| 夜夜躁日日躁狠狠久久88av | 久久久精品二区 | 69av视频在线观看 | 日韩欧美国产激情在线播放 | 午夜丁香视频在线观看 | 狠狠狠狠狠狠天天爱 | 久久久久久久影视 | 天天色天天上天天操 | 99视屏| 免费久久精品视频 | 日本不卡一区二区三区在线观看 | 在线观看一区视频 | www.com黄| 国产一级在线 | 国产精品久久久久三级 | 热久久99这里有精品 | 91在线欧美| 久久九九免费视频 | 超碰人人99 | 免费看黄色91 | 精品久久一区二区 | 国产视频网站在线观看 | 天天综合网天天综合色 | 日韩精品视频免费看 | 最近2019中文免费高清视频观看www99 | 在线观看视频黄色 | 国产精品久久在线 | www.黄色网.com | 国产亚洲精品久久久久久电影 | 天天干天天操天天射 | 在线亚洲人成电影网站色www | 精品国产精品国产偷麻豆 | free. 性欧美.com | 成人网在线免费视频 | 国产精品第54页 | 国产视频高清 | 日本性久久 | 97精品国产一二三产区 | 在线视频观看91 | 麻豆国产电影 | 国产在线观看网站 | 三上悠亚一区二区在线观看 | 婷婷激情在线观看 | 一区二区三区精品在线视频 | 欧美99精品| 成人在线播放av | 国产精品区免费视频 | 99久久婷婷国产精品综合 | www178ccom视频在线 | 免费在线观看污网站 | 免费在线观看av网址 | 国产精品福利午夜在线观看 | 国产一区二区在线观看视频 | 亚洲激精日韩激精欧美精品 | 久久资源总站 | 日韩高清 一区 | 色www免费视频 | 毛片二区 | 九九九视频精品 | 香蕉日日| 伊人狠狠操 | 亚洲欧美日韩国产精品一区午夜 | 日韩精品一区二区免费 | 色噜噜在线观看视频 | 国产精品成人久久久久 | 国产精品免费av | 麻豆视频免费版 | 深爱开心激情 | 亚洲理论电影网 | 日韩videos高潮hd | 亚洲h视频在线 | 一区二区三区国产精品 | 国产精品视频久久久 | 亚洲片在线资源 | 在线国产视频 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 成人一级视频在线观看 | 国精产品永久999 | 九九交易行官网 | 啪啪免费观看网站 | 日韩av不卡在线观看 | 午夜国产一区二区三区四区 | 日韩视频免费观看高清完整版在线 | 欧美 激情 国产 91 在线 | 国产一级特黄毛片在线毛片 | 九九视频精品在线 | 水蜜桃亚洲一二三四在线 | 久久久久久久久毛片 | 欧美一区二区三区四区夜夜大片 | 蜜桃av久久久亚洲精品 | 天天色综合三 | 成人免费一级片 | 国产精品一区二区免费看 | 精品嫩模福利一区二区蜜臀 | 最近中文字幕完整视频高清1 | 亚洲精品免费在线观看视频 | 欧美成人免费在线 | 国内精品久久久久国产 | 国产精品久久久久婷婷二区次 | 激情伊人五月天久久综合 | 国产一区二区免费看 | 国产精品久久久久久久av电影 | 日韩视频免费在线 | 日韩精品一区二区在线视频 | 日韩在线视频播放 | 波多野结衣视频网址 | 亚洲五月激情 | 一区二区视频欧美 | 免费亚洲婷婷 | 久久久久久久久亚洲精品 | 日韩免费在线看 | 久99久在线 | 草久在线播放 | 国产a级片免费观看 | 天堂网一区二区三区 | 国内久久久久 | 九色视频网| 91在线视频观看 | 久久免费视屏 | 国产一区二区三区免费在线观看 | 国产亚洲综合性久久久影院 | 狠狠色伊人亚洲综合成人 | 欧美高清成人 | 精品国产亚洲一区二区麻豆 | 国产视频欧美视频 | 99在线精品视频观看 | 国产精品久久久久久久久久了 | 最近免费中文字幕 | 五月天亚洲激情 | 婷婷在线五月 | 日韩在线短视频 | 亚洲精品国产精品国 | 欧美一二区在线 | 免费在线观看日韩欧美 | 亚洲在线观看av | 久久黄色影院 | 最近中文字幕免费观看 | 最新av网站在线观看 | 在线观看的av | 亚洲一区二区三区毛片 | 美女视频久久黄 | 一级黄色片在线 | 亚洲精品视频网 | 国产午夜精品一区二区三区欧美 | 友田真希x88av | 免费激情网 | 热久久免费国产视频 | a极黄色片 | 亚州av网站大全 | 玖玖国产精品视频 | 色九九影院 | 久草在线免费看视频 | www.天天操| 欧美一二三四在线 | 激情久久婷婷 | 国产精品刺激对白麻豆99 | 国产丝袜制服在线 | 五月婷婷天堂 | 日韩久久精品一区二区三区 | 亚洲精品综合在线观看 | 亚洲国产美女久久久久 | 国产精品久久久久久久久久久免费看 | 91女人18片女毛片60分钟 | 欧美综合在线观看 | 成人a视频在线观看 | 日韩电影一区二区在线观看 | 最新av中文字幕 | 伊人干综合 | 91在线成人 | 中文字幕日韩国产 | 午夜天天操 | 国产精品电影一区二区 | 欧美日韩不卡一区二区 | 日日草天天干 | 亚洲激情五月 | 成人夜晚看av | 狠狠干天天射 | 中文字幕日韩精品有码视频 | 超级碰碰碰视频 | 久99久在线 | 96av视频| 在线看片视频 | 色婷婷88av视频一二三区 | 久久国产一区二区 | 在线免费观看黄色 | 亚洲精品美女久久久久 | 亚洲精品播放 | 91麻豆免费视频 | 亚洲欧美日韩一级 | 四虎免费av | 一区二区三区 中文字幕 | 亚洲一区二区精品 | 波多野结衣在线视频免费观看 | 夜夜躁狠狠躁日日躁视频黑人 | 久二影院 | 黄网站免费久久 | 97色狠狠 | 久草在线免费看视频 | 91大神精品视频 | 欧美国产视频在线 | 免费观看国产精品视频 | 日韩精品高清视频 | 午夜精品一区二区国产 | 精品国产美女 | 久久免费成人网 | 日韩精选在线观看 | 欧美日韩高清一区二区 国产亚洲免费看 | 97超碰色偷偷 | 91福利国产在线观看 | 中午字幕在线 | 久久久久久久久久久成人 | 久久视精品 | 国产午夜精品福利视频 | 免费观看版 | 五月婷婷毛片 | 成人国产一区二区 | www操操操| 99久久超碰中文字幕伊人 | 国产免费av一区二区三区 | 特级毛片在线免费观看 | 怡红院成人在线 | 91免费看黄色 | 九九在线高清精品视频 | 97人人模人人爽人人喊中文字 | 日韩中字在线 | 国产+日韩欧美 |