数据结构
叶子在这儿
踮起脚尖,更接近阳光
展开
-
随机快速排序
public void quickSort(int[] arr) { if (arr == null || arr.length < 2) { return; } quickSort(arr, 0, arr.length - 1); } public void quickSort(int[] arr, int l, int r) { if (l ...原创 2018-08-15 09:31:25 · 147 阅读 · 0 评论 -
kmp算法
昨天看到网易的笔试题有一道kmp算法,就复习了一遍 kmp算法主要针对的是模式串匹配问题,主要分为两个步骤 一、求解next数组 所谓的next数组,指的是当主串(在下标i)和模式串(在下标j)上的元素不匹配时,模式串下标j要回退的位置,记为k 每一个j,都对应一个回退的位置k,所以在求模式串的匹配问题时,我们首先要根据模式串初始化一个next数组 具体求解可参考htt...原创 2018-08-12 12:09:13 · 110 阅读 · 0 评论 -
栈,队列的实现(Java版)
一、栈(先进后出) public class Stack{ public int maxsize; public int top=-1; public String []arr; public Stack(int maxsize){ this.maxsize=maxsize; arr=new String[maxsize]; ...原创 2018-07-29 13:16:49 · 177 阅读 · 0 评论 -
分支定界法与回溯法
一、求解目标 分支定界法:找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 回溯法:是找出T中满足约束条件的所有解 二、遍历方式 分支定界法:先遍历根结点的所有子节点,在子节点中选取最符合要求的结点,再以该子节点为根结点继续搜索(树中只有某些结点及其子节点会被遍历);搜索方式为:广度优先搜索...原创 2018-08-18 16:13:24 · 691 阅读 · 0 评论 -
最长公共子串
解析: 每次在其中的一个字符串中找子串,判断是否在第二个字符串中,如果在第二个字符串中,并且子串长度大于之前找到的子串,更新当前最长公共子串 public String getMaxString(String str1,String str2){ String res=""; for(int i=0;i<str1.length();i++)...原创 2018-09-09 17:42:11 · 160 阅读 · 0 评论 -
大数乘法
解析: 对输入的数的储存结构逆序储存,定义一个结果数组,存储结果,数组长度为两个数的长度相加,然后从第一位开始,用第一个数的每一位和第二个数的每一位相乘 相乘的结果加到结果数组里 rs[j + i] += (num1[j] * num2[i]) 然后将结果数组进行进位操作 最后逆序从第一个不为0的位置开始输出结果 import java.util.*; public cla...转载 2018-09-09 21:25:24 · 428 阅读 · 0 评论 -
二叉树的遍历
前序遍历(根左右) 递归 public void preOrderTraverse1(TreeNode root){ if (root == null) return; System.out.print(root.val+" ");//遍历根节点 preOrderTraverse1(root.left);//先序递归遍历左子树 preOrderTr...原创 2018-10-18 21:22:22 · 147 阅读 · 0 评论