算法与数据结构
文章平均质量分 73
ZeroLhp
这个作者很懒,什么都没留下…
展开
-
算法与数据结构 - 数组
二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 public class Solution { public boolean Find(int [][] array,int target) { int h = array.length-原创 2016-06-23 09:45:07 · 330 阅读 · 0 评论 -
算法与数据结构 - String
将一个字符串中的空格替换成 "%20" 。 public class Solution { public String replaceSpace(StringBuffer str) { return str.toString().replaceAll(" ", "%20"); } } 自定义一个正则表达式匹配类,用来匹配包括'.'和'*'的正则表达式。模式中的字原创 2016-06-22 15:03:19 · 283 阅读 · 0 评论 -
算法与数据结构 - 搜索算法
二分搜索 public class BinarySearch { /** 递归二分 **/ public int binarySearch(int[] arr, int left, int right, int key) { if (left > right) { return -1; } else { int mid = (left + right)原创 2016-06-16 17:07:04 · 322 阅读 · 0 评论 -
算法与数据结构 - 堆
堆、二叉堆、最大堆、最小堆 二叉堆是一个完全二叉树,且二叉堆中的所有父总是>=(或 一般将二叉堆就简称为堆。 父总大于或等于子的堆叫最大堆,父总小于或等于子的堆叫最小堆。 堆和数组 一般用数组来表示堆。 i的父是(i – 1) / 2,左儿子是2 * i + 1,右儿子是2 * i + 2。 堆化数组 现有数组 array = {9, 12, 17, 30,原创 2016-06-05 15:18:07 · 370 阅读 · 0 评论 -
算分与数据结构 - 冒泡思想
冒泡思想的一个特点是所有的操作都在原数组中进行,不占用额外的空间。 一、冒泡排序 public class BubbleSort { public void bubbleSort(int[] array) { int len = array.length; int temp; for (int i=0; i<len; i++) { // n趟越来越短的相邻位置的两两交换原创 2016-06-05 11:22:55 · 248 阅读 · 0 评论 -
算法与数据结构 - 贪心算法
贪心算法 总是做出在当前看来是最好的选择。 不从整体最优上加以考虑,做出局部最优解。 贪心算法不一定能得到整体最优解,但可以得到整体最优解的近似解。 应用 1、0/1背包问题 一个旅行者有一个最多能装m公斤的背包,现在有n个物品,重量分别是W1,W2,... , Wn 。 每件的价值分别为V1,V2, ... , Vn 。求旅行者能装入的最大总价值及其解向量。 Code im原创 2016-06-04 23:19:21 · 426 阅读 · 0 评论 -
算法与数据结构 - 动态规划
动态规划(DP)的基本思想是:当前子问题的解可由上一子问题的解得出。 动态规划算法通常基于由一个递推公式(状态转移方程)和若干个初始状态(状态)。 应用 1、LIS(Longest Increasing Subsequence):求一个数组中的最长非降子序列的长度。 子问题 我们可以考虑先求A[0]、A[1]、A[2] ... A[i]的最长非降子序列长度,这个LIS的一个子问题。 接原创 2016-06-04 22:01:51 · 333 阅读 · 0 评论