
算法
文章平均质量分 51
尽拣寒枝不肯栖
这个作者很懒,什么都没留下…
展开
-
胜者树与败者树
胜者树与败者树 胜者树和败者树都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。 不同的是,胜者树的中间结点记录的是胜者的标号;而败者树的中间结点记录的败者的标号。 胜者树与败者树可以在log(n)的时间内找到最值。任何一个叶子结点的值转载 2016-03-29 00:37:30 · 289 阅读 · 0 评论 -
BFS CCF 游戏
试题编号:201604-4试题名称:游戏时间限制:1.0s内存限制:256.0MB问题描述:问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。 方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如原创 2016-09-10 17:28:26 · 679 阅读 · 3 评论 -
搜狗校招笔试题编程之一
题目:定义两个合数的距离为两个合数之间的质数的个数。现在输入n个偶数,求这n个偶数两两距离的和。输入:第一行输入一个整数n。第二行到第n+1行为从小到大排序的n个合数。输出:输出一个数为总的距离和。注意:其中n是几万以内的数,n个合数中每个合数为几百万以内的数。分析:针对n和每个合数,我们可以看到,对于n个数,我们可以使用O(n*n)的算法,但是对于遍历从1到该合数原创 2016-09-12 21:41:30 · 728 阅读 · 0 评论 -
蓄水池算法
问题起源于编程珠玑Column 12中的题目10,其描述如下: How could you select one of n objects at random, where you see the objects sequentially but you do not know the value of n beforehand? For concreteness, how woul原创 2016-08-24 15:22:00 · 366 阅读 · 0 评论 -
卡特兰数
一、故事背景 卡特兰数是离散数学中的一个重要数列,是很多生活场景的一个抽象,比如买早餐啦,买电影票啦等等。在很多大公司的笔试或者面试题中也常涉及到。----------------------------------------------------------------------------- 二、卡特兰数的引出 在x-y坐标平面上,考虑两种一格一格转载 2016-09-21 10:41:00 · 486 阅读 · 0 评论 -
小米考试(电话号码)
import java.io.BufferedInputStream;import java.util.Arrays;import java.util.Scanner;public class T2 {public static void main(String[] args) {Scanner scanner = new Scanner(new Buffere原创 2016-09-23 23:27:50 · 341 阅读 · 0 评论 -
堆排序
Java排序算法(三):堆排序堆积排序(Heapsort)是指利用堆积树(堆)这种资料结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。堆排序是不稳定的排序方法,辅助空间为O(1), 最坏时间复杂度为O(nlog2n) ,堆排序的堆序的平均性能较接近于最坏性能。 堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(转载 2016-09-24 00:45:27 · 258 阅读 · 0 评论 -
字典树
1323: ZZY and his little friendsTime Limit: 5 Sec Memory Limit: 256 MBSubmit: 239 Solved: 103[Submit][Status][Web Board]Description zzy养了一只小怪兽和N只凹凸曼,单挑的话每只凹凸曼都不是小怪兽的对手,所以必须由两只凹凸曼合作来原创 2016-09-21 21:34:10 · 277 阅读 · 0 评论 -
关于数组的面试题
Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册 博文 博主 梦醒潇湘loveloveyou1314.blog.chinaunix.net通过别人的经验来提高自己的同时,自己要多多努力~~2016中国数据库技术大会门票申请新注册用户开通“博客写作”功能,需要申请与实名认证互转载 2016-09-22 00:01:40 · 375 阅读 · 0 评论 -
小米 树高度
我的复杂算法:package mi;import java.io.BufferedInputStream;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class T3 { public static void main(String[] args) { S原创 2016-09-27 01:32:53 · 650 阅读 · 0 评论 -
机器学习算法学习札记
机器学习算法学习札记第一部分:概论一、概论1. 分类、聚类分类和聚类是对于结果的类别是否预先设定。Input有标签的为分类的情形,反之为聚类。2.线性模型、树模型根据特征使用方式分为线性模型和树模型。将多个特征综合考虑,得到一个标签为线性模型。而将多个特征单独考虑,每次按照一个特征分为几类,为树模型。3.分类、回归根据输出值是否连续,分为分类和回归。输出为连续的为回归模型,...原创 2019-01-31 14:01:23 · 779 阅读 · 0 评论 -
约瑟环问题(丢手绢)
题目:n个人围成一圈,起始编号为0-n-1。从0开始依次报数,报到m则离开圆圈。问最后离开的人的编号多少?分析:以每个人离开作为一个周期,下一次假设所有人编号变化(其实是映射到)新的编号0-n-2。这里的映射关系可以通过取模获得:每次离开一个人,离开前总人数N,m-1的人离开,那么下次编号和上次编号映射关系是:(x-m)%n因此,可以形成动态规划序列。答案:``...原创 2019-05-09 22:02:02 · 917 阅读 · 0 评论 -
使用异或交换变量
# -*- coding: utf-8 -*-# @Time : 2019/5/8 15:41# @Author : RIO# @desc: 交换变量x = 1y = 2def swap(a, b): a = a ^ b b = a ^ b a = a ^ b return a, bprint(swap(x, y))...原创 2019-05-20 11:48:15 · 395 阅读 · 0 评论 -
leetcode
今天做了1,2题。1题是用hashmap降低时间复杂度的问题。2.是个linklist的问题:里面涉及两个问题,关于类的对象,变量的问题。类的对象是类的一个引用,可以改变对象的引用,但是类的值在类对象更改类的变量时会发生改变。对于同一个类的两个引用A,B。A改变变量值会导致B的变量值也改变,但是若是改变了A的引用,即把引用C赋值给A,那么B不受影响。public Lis原创 2016-05-08 01:47:16 · 273 阅读 · 0 评论 -
堆排序、胜者树、败者树
在顺序存储结构中,堆排序是一种非常不错的高级选择排序算法,普通情况和最差情况下都可以将时间复杂度控制在O(n * logn)。堆排序可以用在顺序存储结构,是因为完全二叉树的一种独特性质。而这里还要先提一下满二叉树。啥叫满二叉树?满二叉树是这样一种二叉树,它的每一层都是“满”的,设根部为第0层,则每一层都有2^n个节点。所有节点的度数要么是2,要么是0(叶子)。那完全二叉树呢转载 2016-03-29 00:39:13 · 905 阅读 · 0 评论 -
胜者树与败者树(二)
胜者树和败者树都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。不同的是,胜者树的中间结点记录的是胜者的标号;而败者树的中间结点记录的败者的标号。 胜者树与败者树可以在log(n)的时间内找到最值。任何一个叶子结点的值改变后,利用中间结点的信息,还是能够快速地找到最值。在k路归并排序中经常用到。转载 2016-03-29 00:38:38 · 437 阅读 · 0 评论 -
KMP算法
真实一篇好视频,网址如下:http://v.youku.com/v_show/id_XMTM2MjczMzQyMA==.html?from=s1.8-1-1.2现在我是明白一件事:碰到问题不要急着去百度,先明白问题出在哪,这个最重要。其次,下载东西去官网最靠谱,安装东西看官网文档。老外讲课也是非常清楚易懂,赞!原创 2016-03-24 16:11:58 · 257 阅读 · 0 评论 -
一致性hash
转载请说明出处:http://blog.youkuaiyun.com/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正转载 2016-03-21 22:39:43 · 219 阅读 · 0 评论 -
红黑树好文章(二)
之前看了很多写红黑树的博客,但是感觉都讲的不太清楚!没说这样操作如何使他保持平衡的,于是疑惑重重,就看不下去了,一次不经意看到一个人说维基百科的红黑树讲的好,我就随便点了一下一看——这下疯了~,怎么讲的这么好!可以说是把一个复杂的问题,讲得简单化!这太幸福了! 于是我就慢慢学会了!强烈推荐维基的这个讲解,再也找不到比这还好的讲解了!不知道它上边其它的怎么样,反正这个很好!!既然学会了,走过来了,我转载 2016-03-20 21:02:31 · 355 阅读 · 0 评论 -
并查集
import java.util.Scanner;public class T1012 { static int[] Tree = new int[1001]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n, m,count; while ((n = sc.原创 2016-03-06 20:39:02 · 230 阅读 · 0 评论 -
LPS
给一个字符串,找出它的最长的回文子序列的长度。例如,如果给定的序列是“BBABCBCAB”,则输出应该是7,“BABCBAB”是在它的最长回文子序列。 “BBBBB”和“BBCBB”也都是该字符串的回文子序列,但不是最长的。注意和最长回文子串的区别(参考:最长回文串)!这里说的子序列,类似最长公共子序列LCS( Longest Common Subsequence)问题,可以是不连续的。这就是转载 2016-04-04 00:47:29 · 673 阅读 · 0 评论 -
设计模式文章(一)
几种常用的设计模式介绍1. 设计模式的起源最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在1970年他的《建筑的永恒之道》里描述了投计模式的发现,因为它已经存在了千百年之久,而现代才被通过大量的研究而被发现。在《建筑的永恒之道》里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个转载 2016-03-21 22:31:14 · 257 阅读 · 0 评论 -
0022算法笔记——【贪心算法】背包问题,最优装载问题
1、背包问题 (1)0-1背包问题:给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包的容量为C。应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 注:在选择装入背包的物品时,对每种物品i只有2种选择,即装入背包或不装入背包。不能将物品i装入背包多次,也不能只装入部分的物品i。 0-1背包问题可用动态规划算法来求解,具体过程可参看笔者博文转载 2016-03-20 01:20:37 · 12150 阅读 · 0 评论 -
迭代,递归好文章
先讲个故事吧。从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?‘从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……’”。这个故事永远也讲不完,因为没有递归结束条件。老师讲递归时总是说,递归很简单,一个递归结束条件,一个自己调用自己。如果递归没有结束转载 2016-03-18 21:28:55 · 369 阅读 · 0 评论 -
动态规划进阶
作者:Hawstein出处:http://hawstein.com/posts/dp-novice-to-advanced.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处。前言本文翻译自TopCoder上的一篇文章: Dynamic Programming:转载 2016-03-18 10:43:41 · 353 阅读 · 0 评论 -
代码思路跟我的不一样,感觉很好
题目:题目描述:Output the k-th prime number.输入:k≤10000输出:The k-th prime number.样例输入:37样例输出:517代码import java.util.Scanner;public class T1040 { publi原创 2016-03-07 00:11:53 · 355 阅读 · 0 评论 -
可以输出最短路径的Dijkstra算法
为了好找保存最短路径的dijkstra算法,特此转载,谢谢!public class DijkstraShortPath { private static int M = 10000; // 此路不通 public static void main(String[] args) { int[][] weight1 = { // 邻接矩阵 { 0, 3, 2000, 7, M },转载 2016-03-10 00:11:28 · 633 阅读 · 0 评论 -
红黑树好文章(三)
一步一图一代码,一定要让你真正彻底明白红黑树 作者:July 二零一一年一月九日-----------------------------本文参考:I、 The Art of Computer Programming Volume III、 Introduction to Algorithms, Second EditionIII、The Annota转载 2016-03-20 21:03:24 · 277 阅读 · 0 评论 -
MCMC(三)MCMC采样和M-H采样
MCMC(一)蒙特卡罗方法 MCMC(二)马尔科夫链 MCMC(三)MCMC采样和M-H采样 MCMC(四)Gibbs采样 在MCMC(二)马尔科夫链中我们讲到给定一个概率平稳分布ππ, 很难直接找到对应的马尔科夫链状态转移矩阵PP。而只要解决这个问题,我们就可以找到一种通用的概率分布采样方法,进而用于蒙特卡罗模拟。本篇我们就讨论解决这个问题的...转载 2019-09-02 10:44:06 · 684 阅读 · 0 评论