![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
hust_tank
这个作者很懒,什么都没留下…
展开
-
字典树(前缀树)
package com.tank.practice.basicClass;public class Code_31_Trie {//字典树(前缀树) public static class TrieNode { public int path;//记录多少单词公用这个节点 public int end;//记录多少个单词以这个节点结尾 ...原创 2018-12-02 16:31:38 · 167 阅读 · 0 评论 -
常用排序算法性能比较,及常见面试题
各种排序方法的性能比较:排序法平均时间最坏情况最好情况稳定度额外空间备注1.直接插入O(n2)O(n2)O(n)稳定O(1)大部分已排序时较好(简单)1.希尔O(nlogn)O(nlogn)与步长相关不稳定...转载 2019-04-13 16:32:54 · 670 阅读 · 0 评论 -
N皇后问题
问题描述n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:输入: 4输出: [[".Q…", // 解法 1“…Q”,“Q…”,...原创 2019-01-15 18:11:58 · 79462 阅读 · 3 评论 -
回溯算法及其应用
一. 回溯法 – 深度优先搜索简单概述 回溯法思路的简单描述是:把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。基本思想类同于:图的深度优先搜索二叉树的后序遍历分支限界法:广度优先搜索思想类同于:图的广度优先...转载 2019-01-07 14:51:25 · 3736 阅读 · 1 评论 -
删除链表中重复的结点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/* public class ListNode { int val; ListNode next = null; ListNode(int val)...原创 2018-12-24 12:27:49 · 75 阅读 · 0 评论 -
表示数值的字符串
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。public class Solution { int index=0; public boolean isNumeric(ch原创 2018-12-23 21:51:28 · 69 阅读 · 0 评论 -
正则表达式匹配
请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配public class Solution { public boolean match(char[]...原创 2018-12-23 20:37:14 · 198 阅读 · 0 评论 -
并查集
package com.tank.practice.basicClass;import java.util.HashMap;import java.util.List;public class Code_29_UnionFind {//并查集 public static class Node { public int value; public N...原创 2018-11-30 14:44:16 · 118 阅读 · 0 评论 -
岛问题
package com.tank.practice.basicClass;public class Code_29_Islands { public static int countIslands(int[][] m) { if (m == null || m[0] == null) { return 0; } i...原创 2018-11-30 14:43:46 · 416 阅读 · 0 评论 -
汉诺塔问题
package com.tank.practice.basicClass;public class Code_28_Hanoi {//汉诺塔问题 public static void hanoi(int n) { if (n > 0) { hanoiCore(n,"left","right","mid"); } }...原创 2018-11-30 14:43:11 · 83 阅读 · 0 评论 -
快速排序
package com.tank.practice.basicClass;import java.util.Arrays;public class Code_5_QuickSort { public static void quickSort(int[] arr) { if (arr == null || arr.length < 2) { ...原创 2018-11-30 14:41:28 · 115 阅读 · 0 评论 -
堆排序
package com.tank.practice.basicClass;import java.util.Arrays;public class Code_6_HeapSort {//利用最大堆最终实现从小到大的排序 public static void heapSort(int[] arr) {//1. 建堆(heapInsert)——>调整堆(heapify)(将数据从...原创 2018-11-30 11:20:29 · 61 阅读 · 0 评论 -
最小路径和
package com.tank.practice.basicClass;public class Code_33_MinPath {//二维数组,都是正数,只能向右或向下,返回最小的路径和 public static int minPath1(int[][] m) { return process1(m, m.length-1, m[0].length-1); ...原创 2018-12-02 16:33:42 · 81 阅读 · 0 评论 -
蓄水池采样算法
蓄水池采样算法问题描述分析采样问题经常会被遇到,比如:从 100000 份调查报告中抽取 1000 份进行统计。从一本很厚的电话簿中抽取 1000 人进行姓氏统计。从 Google 搜索 “Ken Thompson”,从中抽取 100 个结果查看哪些是今年的。这些都是很基本的采用问题。既然说到采样问题,最重要的就是做到公平,也就是保证每个元素被采样到的概率是相同的。所以可以想到要...转载 2019-05-25 18:41:24 · 585 阅读 · 1 评论