单向链表 [cpp] view plain copy struct ListNode {// 单向链表 &…
分类:算法
且说 深度优先搜索算法
在我做LintCode上面算法题目的时候,发现深度优先搜索算法是一个实用性非常强的算法,它帮助我解决了很多题目。下面我就来谈一下我对这个…
27. Remove Element
Given an array nums and a value val, remove all instances of that value in-place and …
Valid Parentheses
Given a string containing just the characters '(', ')', '{', '}', '[' and '…
算法笔记 - 数组与单链表快速排序(Java)
数组快速排序 public class QuickSort { private static final int COUNT = 1000000; private static final int ZONE = 200;…
Triangle: Dynamic Programming解法
研究了一会,贴上Triangle的Dynamic Programming的解法。 Dynamic Programming的解题其实一般有四个关键点: 1.定义:一般DP问题都是求出一个最优解,所以你首先要定义出一个最优解…
堆排序
大顶堆构造+堆顶值取出(注:下标从0开始) 大小顶堆需满足条件:左右孩子需大于/小于父节点,左右孩子之间无具体关联; package work.算法优先级队列; import java.util.Arrays; publ…
KMP
字符匹配问题。 因为项目需要,在字符串中查找是否有某段特定的字符出现,想起前段时间看的KMP算法,于是总结一下以免忘记了。 例如:字符串s: BDABCDABACD. 模式串p: ABA,因为s中有一小段字符串与模式串A…
【排序】选择排序
标准的选择排序 /** * 选择排序 * 原理:每次都选出最小值,依次赋给数组位置:0,1,2...... */ public void sort4() { int[] a = new int[]{1, 4, 3, 6,…
无限循环小数转化分数
问题 给出一个无限循环小数以及循环节,求原最简分数,例如输入 5.3 1 表示从小数点后一位开始循环,也就是循环小数是5.33333….. 输出结果是 16/3 分析 其实一个简单的数学结论就可以解决这个问题, 循环节有…
[搜索]一种分词的实现(2)
上文提到 http://blog.csdn.net/zhanghaiyang9999/article/details/41864169 能否顺序打印单词。 顺序打印单词代码如下: char *dict[]={"a","i…
文章标题
计算机为什么采用补码存储数值 初学C,问题源自:为什么C中的int类型(16位)的下溢下限为-32768而上溢上限却是32767。 首先说吧,32767很容易理解,32767=2^15-1 (因为要有一个符号位),但为什…