随笔分类 - Algorithm
算法
摘要:import java.util.Stack; class getMin{ Stack<Integer> stack; int min; public getMin(){ stack = new Stack<Integer>(); min = Integer.MIN_VALUE; } public
阅读全文
摘要:public static int max=0; public static void process(int[] arr,int index,int k){ if(k==0||index==arr.length){//如果已经将k个0变成1了,或者到达了字符串末尾了 int tmp=0;//开始统
阅读全文
摘要:class Solution{ public static void main(String[] args) { String s1 = "abeababeabf"; String s2 = "abeabf"; System.out.println(KMP(s1,s2)); } public sta
阅读全文
摘要:class Solution{ public static void main(String[] args) { int[] nums = new int[]{4,6,8,5,9}; heapSort(nums2); for(int i:nums2) System.out.print(i+" ");
阅读全文
摘要:class LRU{ static class Node{ public int key; public int val; public Node next; public Node prev; public Node(int k,int v){ this.key = k; this.v = v;
阅读全文
摘要:/** 归并排序 */ class Solution{ // static int count = 0; public static void main(String[] args) { int[] nums = new int[]{7,3,2,6,0,1,5,4}; merge(nums,0,nu
阅读全文
摘要:Reservoir Algorithm 蓄水池抽样算法 给定一个数据流,长度为n(从1开始),在只遍历一遍的情况下,能够随机取出m个不同数据的方法 Algorithm 1 若接受的数据量<=m,则直接放入到蓄水池中 2 当接受到第i(i>m)个数据的时候,在[1,i]中随机取得一个随机数d,如果d落
阅读全文
摘要:写在最前:要注意洗牌算法与水塘采样算法之间的区别 水塘抽样是一系列的随机算法,其目的在于从包含n个项目的集合S中选取k个样本,其中n为一很大或未知的数量,尤其适用于不能把所有n个项目都存放到主内存的情况。 洗牌算法就是将数据完全打乱的一种算法思想,类似于我们打扑克时候的洗牌。 洗牌算法 public
阅读全文
摘要:背包问题 import java.util.*; class Solution{ public static void main(String[] args) { int[] v = new int[]{0,1,2,3,4}; int[] w = new int[]{0,2,4,4,5}; int
阅读全文
摘要:最长回文子序列 题目:给定一个字符串s,找到其中最长的回文子序列(注意,子序列跟子串是不一样的。子序列是从字符串中取出元素,相对顺序不变,但是可以不挨着。子串肯定是截取一段) 解法 递归 自顶向下的备忘录 自底向上的动态规划 - 状态定义:dp[i][j]表示s的第i个字符到第j个字符之间组成的子序
阅读全文
摘要:cutRod问题 问题:有一根铁条,不同的长度收益不同,求如何切割,可以让铁条的收益最大,铁条的收益与长度的对应关系如下表所示 length 0 1 2 3 4 5 6 7 8 9 10 profit 0 1 5 8 9 10 17 17 20 24 30 解决方案 递归 分成子问题,例如4可以分为
阅读全文

浙公网安备 33010602011771号