
算法
文章平均质量分 78
慕森
这个作者很懒,什么都没留下…
展开
-
算法与数据结构-动态规划 讲解与java代码实现
1. 从暴力搜索到记忆搜索,再到动态规划2. 找零问题有数组penny,penny中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim(小于等于1000)代表要找的钱数,求换钱有多少种方法。 给定数组penny及它的大小(小于等于50),同时给定一个整数aim,请返回有多少种方法可以凑成aim。 测试样例: [1,2,4],3,3 返回:2原创 2018-01-23 14:28:21 · 289 阅读 · 0 评论 -
算法与数据结构-二叉树 讲解与java代码实现
1. 三种遍历方式和宽度优先遍历递归实现先序,中序,后序遍历import java.util.*;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.v原创 2018-01-06 16:51:46 · 411 阅读 · 0 评论 -
算法与数据结构-链表 讲解与java代码实现
1.链表基础 从左到右,使用两个指针进行性翻转 空间复杂度最优解可以做到O(1) 2.例题1. 有序环形链表插入节点import java.util.*;/*public class ListNode { int val; ListNode next = null; ListNode(int val) {原创 2018-01-31 19:23:58 · 489 阅读 · 0 评论 -
算法与数据结构-字符串 讲解与java代码实现
1.基础 2.例题1. 拓扑结构相同子树练习题 KMP算法及示例讲解:http://blog.youkuaiyun.com/bury_/article/details/79199228import java.util.*;//拓扑结构相同的子树判断,要求时间复杂度为O(n)/*public class TreeNode { int val = 0; Tre原创 2018-02-01 11:10:52 · 576 阅读 · 1 评论 -
算法与数据结构-排序 讲解与java代码实现
1. 时间复杂度为O(N^2)的排序算法冒泡,选择,插入排序 - 冒泡排序:时间复杂度O(n^2) 与数组元素原始顺序无关import java.util.*;public class BubbleSort { public int[] bubbleSort(int[] A, int n) { // 一共需要循环n-1次 for(int i=1原创 2018-01-17 15:18:24 · 243 阅读 · 0 评论 -
算法与数据结构-二分搜索 讲解与java代码实现
1. 二分搜索要点 2. 二分搜索例题 无序数组的局部最小值查找: 局部最小值位置查找: 定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0]//无序数组返回任一局部最小位置public class Solution { public int getLessIndex(int[] arr) {原创 2018-01-17 15:58:31 · 244 阅读 · 2 评论 -
字符串匹配-KMP算法 讲解与java代码实现
如何高效地查找字符串a是否包含字符串s?可以使用KMP算法,首先计算字符串s的模式偏移数组next,然后在遍历a查找s的时候可以利用next偏移数组对s进行偏移,以求更快地进行匹配检测。假设要计算字符串a=”bcbcbacbcbcbc”是否包含字符串s=”bcbcbc”。1.算法思想第一步:计算字符串”bcbcbc”的next偏移数组: next[0]=-1,next[1原创 2018-01-29 19:57:12 · 4100 阅读 · 0 评论 -
算法与数据结构-栈与队列 讲解与java代码实现
1.栈的基本知识2.例题1.返回栈最小元素import java.util.Stack;//可查询最小值的栈设计public class Solution { Stack stackData=new Stack();//保存元素 Stack stackMin=new Stack();//保存从stackData的栈中元素的最小值集合 publ原创 2018-02-05 19:44:38 · 340 阅读 · 0 评论