随笔分类 - #算法#
摘要:https://www.cnblogs.com/chavin/p/11217036.html
阅读全文
摘要:子序列:不需要连续 子串:需要连续,两个不等时,为0 解法: https://www.cnblogs.com/wangkundentisy/p/9346376.html 从最优子结构和重叠子问题的角度考虑最长公共子序列: https://www.cnblogs.com/hapjin/p/557248
阅读全文
摘要:package 笔试; import java.util.ArrayList; import java.util.List; public class 字符串全排列 { public static void main(String[] args) { char[] str = new char[] {'A','B','C'}; System.out.println(getString(str));
阅读全文
摘要:哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。 哈夫曼编码,主
阅读全文
摘要:Dijstra: https://www.jianshu.com/p/ff6db00ad866 自己实现的github地址:https://github.com/heyboom/Dijkstra BFS: https://github.com/CyC2018/CS-Notes/blob/master
阅读全文
摘要:* 选择排序和冒泡排序思想的重要区别: * 选择排序是:位置拿着自己的数字 和后面的对比,亲自选择最小的。 * 冒泡排序是:位置坐等着后面的位置把它们中的最小数字拿过来,然后和自己的数字做最终的决策。 * * 注意的一点是,都有两个for循环。 * 第一个for循环既可以看作是迭代次数,也可以看作是
阅读全文
摘要:随机过程/马尔科夫过程: 依据假设:状态转移概率不按时间变化 (即,明天的状态只和今天的有关,和前天大前天没关系) https://zhuanlan.zhihu.com/p/26453269 马尔科夫模型: https://www.zhihu.com/question/20962240 看这个人的回
阅读全文
摘要:整个的复习思路可以是先从github了解jieba,知道jieba分词,词性标注和关键字提取的使用 再通过 https://my.oschina.net/u/3800567/blog/2253644 这个系列文章熟悉jieba的源码 其中,关键字提取的算法,TF-IDF,Text-Rank算法的讲解
阅读全文
摘要:谷歌推出的入门系列 https://developers.google.com/machine-learning/crash-course/?hl=zh-cn 神经网络简介 https://www.cnblogs.com/MrPan/p/9495215.html 梯度下降法看明白的: https:/
阅读全文
摘要:从这个开始,加上算法导论 https://blog.csdn.net/u013309870/article/details/75193592 这个比较全 ,但是有许多看不懂 http://cppblog.com/menjitianya/archive/2015/10/23/212084.html 0
阅读全文
摘要:什么是动态规划? 动态规划(Dynamic Programming)是通过组合子问题的解来解决问题的。动态规划是用于求解包含重叠子问题的最优化问题的方法。其基本思想是,将原问题分解为相似的子问题。在求解的过程中通过子问题的解求出原问题的解。 动态规划的分类: 1. 线性规划:拦截导弹,合唱队形,挖地
阅读全文
摘要:1 public class EightQueenDemo { 2 3 public static int count = 0; 4 public boolean check(int array[][], int num, int i, int j) { 5 for(int k = 0; k = 0 && t >= 0; s--, t--) {...
阅读全文
摘要:1.判断时候有环(链表头指针为head) 对于这个问题我们可以采用“快慢指针”的方法。就是有两个指针fast和slow,开始的时候两个指针都指向链表头head,然后在每一步 操作中slow向前走一步即:slow = slow->next,而fast每一步向前两步即:fast = fast->next
阅读全文
摘要:描述:给定一个有序链表,若有一个以上相同节点,则将该元素值的节点均删除。 情形1: 输入:1->2->2->3->4->4->5 输出:1->3->5 情形2: 输入:1->1->1->2->3 输出:2->3 思路:这道题的难点在于要将重复元素无保留的全部删除。所以必须要找到重复元素的前一个元素,
阅读全文
摘要:/* * 从0,1数组中找到第一个1出现的位置 * 1一旦出现,则以后全为1 * 如:0011111 */ public class FindFirstOne { //参数:数组a,低位low,高位a.length-1 //返回第一个1出现的位置 //如果全是0,返回数组长度 public static int find(int[] a,int low,i...
阅读全文
摘要:import java.util.Arrays; public class MergeSort { public static void merge(int[] a,int low,int mid,int high) { int i,j,k; int[] b=new int[a.length]; for(k=low;k<=hig...
阅读全文
摘要:import java.util.Arrays; public class QuickSort { //三数取中法。取出不大不小的那个位置 public static int getPivotPos(int[] a,int low,int high) { int mid=(low+high)/2; int pos=low; if(...
阅读全文
摘要:package testpackage; import java.util.Arrays; public class Heap { //建立大顶堆 public static void buildMaxHeap(int[] a) { for(int i=(a.length/2)-1;i>=0;i--) { ...
阅读全文
摘要:1 import java.util.Arrays; 2 3 /* 4 * 思路: 5 * 1.方法adjustDown:对于一个数组a[],针对第i个数进行向下(直到len-1)调整,使得该位置成为大顶堆 6 * 2.方法bulidMaxHeap:从len/2-1位置到0位置,循环调用adjustDown,使其成为大顶堆 7 * 3.方法heapSort:建立大顶堆,让...
阅读全文

浙公网安备 33010602011771号