![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
外面纷纷扰扰
深爱java
展开
-
反转链表(java)
迭代实现pre指针为head前面的一个空指针。public ListNode reverseList(ListNode head) { ListNode prev = null; ListNode curr = head; while (curr != null) { //将原来下一个节点保存在临时变量 ListNode next = curr.next; //反转 curr.next = prev;原创 2021-04-28 16:45:53 · 66 阅读 · 0 评论 -
双栈实现队列
双栈实现队列class MyQueue { Deque<Integer> inStack; Deque<Integer> outStack; public MyQueue() { inStack = new LinkedList<Integer>(); outStack = new LinkedList<Integer>(); } public void push(int x原创 2021-04-28 16:41:21 · 51 阅读 · 0 评论 -
队列实现栈(java)
两个队列实现栈class MyStack { Queue<Integer> queue1; Queue<Integer> queue2;/** Initialize your data structure here. */ public MyStack() { queue1 = new LinkedList<Integer>(); queue2 = new LinkedList<Integer>();原创 2021-04-28 16:40:21 · 121 阅读 · 0 评论 -
合并两个有序链表(java)
递归实现class Node{ Node next=null; int data; public Node(int data) { this.data=data; }}public class MergeList { /** * 使用递归 */ public static Node mergeList(Node head1,Node head2) { if(head1==null) return head2; if (head2==null) {原创 2021-04-28 16:36:01 · 69 阅读 · 0 评论 -
排序算法-插入排序(java)
#排序算法-插入排序(java)public class InsertSort { static int[] insertSort(int[] arr) { //第一个元素有序,从第二个元素开始s for(int i=1;i<arr.length;i++) {//将第i个元素与前i-1个分别比较 for(int j=i;j>0;j--) { if(arr[j]<arr[j-1]) swap(arr,j,j-1); } } return ar原创 2021-04-27 15:28:41 · 42 阅读 · 0 评论 -
排序算法-选择排序(java)
#排序算法-选择排序(java)public class SelectSort { static void selectSort(int[] arr) { if(arr==null||arr.length<2) return; for(int i=0;i<arr.length-1;i++) { int minIndex=i;//最小下标位置 for(int j=i+1;j<arr.length;j++) { minIndex=arr[j]<arr原创 2021-04-27 15:27:41 · 42 阅读 · 0 评论 -
排序算法-冒泡排序(java)
排序算法-冒泡排序(java)public class BubbleSort { static void bubbleSort(int[] arr) { //空数组和只有一个元素的数组不用排序 if(arr==null||arr.length<2) return; for(int n=arr.length-1;n>0;n--) { for(int i=0;i<n;i++) { if(arr[i]>arr[i+1]) swap(arr,i,原创 2021-04-27 15:24:58 · 64 阅读 · 0 评论 -
手写双向链表(java)
1、创建Node类保存节点信息2、在双向链表中last.next=first;first.pre=lastpublic class DoubleLinkedList<T> { private Node first;// 头节点 private Node last;// 尾节点 private int size; public void add(T value) { Node node = new Node(); node.value = value; // .原创 2020-07-12 23:34:13 · 246 阅读 · 0 评论 -
动态规划-矩阵链乘(java)
package com.wanali.dynamic_planning;/** * 矩阵链乘(A的列数等于B的行数时,才能相乘,A是p*q的矩阵,B是q*r的矩阵,乘积C是p*r的矩阵) * 1、最优括号方案的结构特征 * 2、一个递归求解的方案 * 3、计算最优代价 * 4、构造最优解 * @author wan_ys * * 2019年1月9日下午9:59:17 */p...原创 2019-01-10 08:57:33 · 479 阅读 · 0 评论 -
动态规划-最长公共自序列(java)
package com.wanali.dynamic_planning;/** * 最长公共自序列LCS(动态规划求解) * @author wan_ys * * 2019年1月10日上午8:43:34 */public class LCS { public static void main(String[] args) { String[] x = new String[]...原创 2019-01-10 08:55:42 · 533 阅读 · 0 评论 -
贪心算法-活动选择问题-递归实现(java)
package com.wanali.greedy_algorithm;import java.util.ArrayList;import java.util.List;/** * 活动选择问题(贪心算法-递归实现) * 在每一步做出当前看来最好的选择,即做出局部最优选择,该算法找到的解不一定是最优解 * @author wan_ys * * 2019年1月10日下午3:30:...原创 2019-01-10 15:37:02 · 955 阅读 · 0 评论