算法
29DCH
In me the tiger sniffs the rose.
展开
-
c++模拟FIFO页面置换算法
随机一访问串和驻留集的大小,通过模拟程序显示淘汰的页号并统计命中率。示例:输入访问串:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1驻留集大小:3算法的实现:FIFO淘汰算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面进行淘汰。该算法实现只需把一个进程已调入内存的页面,按访问的时间先后顺序链接成一个队列,并设置一个指针,该指针始终指向“最老“的页面。7 ...原创 2018-12-12 10:47:08 · 1529 阅读 · 0 评论 -
java选择排序可视化
直接上代码以及效果:AlgoFrame.javapackage Test;import java.awt.*;import javax.swing.*;public class AlgoFrame extends JFrame{ private int canvasWidth; private int canvasHeight; public AlgoFr...原创 2018-11-25 15:19:55 · 341 阅读 · 0 评论 -
中奖问题---蒙特卡洛算法实现
题目如图:这其实是一个基础的概率问题蒙特卡洛算法实现代码如下:package Test;public class WinningPrize { private double chance; private int playTime; private int N; public WinningPrize(double chance, int playT...原创 2018-11-24 22:26:17 · 1444 阅读 · 0 评论 -
蒙提霍尔悖论(三门问题)解析
三门问题(Monty Hall problem)亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Let’s Make a Deal。问题名字来自该节目的主持人蒙提·霍尔(Monty Hall)。参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两...原创 2018-11-24 21:35:57 · 8358 阅读 · 0 评论 -
蒙特卡洛算法及其实例的可视化
这里先简单介绍一下蒙特卡洛算法,是一种统计学的方法,也是一种模拟的思想.通过大量随机样本,去了解一个系统,进而得到要计算的值(近似值).样本量越大,模拟出来的值越准确.1.求PI值利用面积,pi=落在圆内的点的数量/点的总数量*4;代码:AlgoFrame.javapackage Test;import java.awt.*;import java.util.LinkedLis...原创 2018-11-24 20:34:18 · 2671 阅读 · 0 评论 -
随机模拟算法--分钱模拟问题可视化
详情见 http://www.sohu.com/a/159448526_499017最近在知乎上看到一个很有趣的问题:房间里有100个人,每人都有100元钱,他们在玩一个游戏。每轮游戏中,每个人都要拿出一元钱随机给另一个人,最后这100个人的财富分布是怎样的?这很显然是个概率问题,一般人凭直觉都会认为最后的财富分布每个人是相差不多的,但其实这个问题正好可以反映当下社会贫富差距的问题,这也告诉我...原创 2018-11-24 15:08:16 · 686 阅读 · 0 评论 -
leetcode347 Top K Frequent Elements(前K个高频元素)
题目链接:https://leetcode.com/problems/top-k-frequent-elements/知识点:优先队列,详细见我的博客 https://blog.csdn.net/CowBoySoBusy/article/details/84338996思路:维护一个k个元素的优先队列,如果遍历到的元素比队列中最小频率的元素频率高,则取出队列中最小频率的元素,将新元素入队....原创 2018-11-22 18:29:46 · 184 阅读 · 0 评论 -
leetcode279 Perfect Squares(完全平方数)
题目链接:https://leetcode.com/problems/perfect-squares/description/知识点:图论问题,最短路径,队列实现广度优先算法思路:这题运用贪心的思想是行不通的。举出一个反例如下:标准解:12 = 4 + 4 + 4.贪心解:12=9 + 1 + 1 + 1.显然贪心求出来的组成和的完全平方数的个数比最优情况下要多。所以采用转化为...原创 2018-11-22 12:34:00 · 201 阅读 · 0 评论 -
java以及c++模拟处理机调度的时间片轮转算法实现
实验研究内容:输入进程的个数,每个进程的名称及每个进程需要工作的时间,本实验中假定对CPU时间片设置为一个时间单位,首先输入进程的个数,然后输入进程名称,最后输入进程所需要的处理时间。然后通过模拟程序,显示以下信息:1)处理机对进程的调度过程。2)计算每个进程的周转时间(假设N个进程在0时刻几乎同时达到,处理机对进程的调度顺序和输入进程的顺序一致)。三、示例:若输入:3A ...原创 2018-11-21 20:06:12 · 1550 阅读 · 0 评论 -
leetcode144 Binary Tree Preorder Traversal(二叉树的前序遍历)
题目链接https://leetcode.com/problems/binary-tree-preorder-traversal/知识点:树,递归,栈,迭代等。思路:1.递归进行树的前序遍历2.借助栈来进行迭代AC代码:1.递归class Solution {public: vector<int> res; vector<int&a原创 2018-11-14 21:57:09 · 136 阅读 · 0 评论 -
java插入排序可视化
直接上代码和效果图:AlgoFrame.javapackage Test;import java.awt.*;import javax.swing.*;public class AlgoFrame extends JFrame{ private int canvasWidth; private int canvasHeight; public AlgoFr...原创 2018-11-25 16:18:30 · 379 阅读 · 1 评论 -
java归并排序可视化
1.自顶向下AlgoFrame.javapackage Test;import java.awt.*;import javax.swing.*;public class AlgoFrame extends JFrame { private int canvasWidth; private int canvasHeight; public AlgoFrame...原创 2018-11-26 18:10:54 · 685 阅读 · 0 评论 -
java快速排序可视化
AlgoFrame.javaimport java.awt.Graphics2D;import java.awt.Graphics;import java.awt.Dimension;import java.awt.Color;import java.awt.RenderingHints;import javax.swing.*;public class AlgoFrame ex...原创 2018-11-26 21:01:19 · 661 阅读 · 0 评论 -
记Google的一道面试题(java) Beautiful Numbers
Beautiful Numbers思路:13->三进制->11111+13+133=1313%3=1,13/3=44%3=1,4/3=11%3=1,1/3=01.第一种情况:数据范围比较小代码:package test;import java.io.BufferedReader;import java.io.InputStreamReader;import...原创 2018-12-09 22:59:29 · 505 阅读 · 0 评论 -
java swing实现的扫雷游戏
详细代码见我的相应github仓库:https://github.com/29DCH/Mine-Sweeper欢迎fork源码到你自己的仓库下面。效果图:java swing实现的扫雷游戏,实现了基本逻辑.主要用到了floodfill(漫水填充)算法和knuth-shuffling-algorithm(Fisher–Yates也被称作高纳德(Knuth)随机置乱算法,随机洗牌算法)代码...原创 2018-12-09 15:51:26 · 746 阅读 · 0 评论 -
约瑟夫环问题C++实现
题目就不说了,学过算法或者看过一些编程思维故事的人应该都有了解这个经典的问题。这里直接看代码和运行结果。#include <bits/stdc++.h>using namespace std;int n,m;int main(){ while(cin>>n>>m) { int man[n]= {0}; i...原创 2018-12-20 12:37:44 · 6891 阅读 · 0 评论 -
C++模拟处理机HRRN调度算法
本实验随机输入的进程个数、进程名称、进程提交到系统的时间、进程运行所需时间。通过模拟程序。显示以下信息:1)处理机对进程的调度过程。2)计算这N个进程的平均周转时间。三、HRRN(最高响应比调度算法)原理最高响应比调度:在每次调度作业时,先计算后备队中每个作业的响应比,然后挑选响应比高者投入运行。响应比R定义:R=(w+S)/S(R:响应比,W=等待时间,S=运行时间)响应比R= ...原创 2018-12-05 09:40:23 · 2364 阅读 · 0 评论 -
采用BFS(队列)实现走迷宫问题的可视化
详细代码见我的相应github仓库:https://github.com/29DCH/Walking-the-maze欢迎fork源码到你自己的仓库下面。效果图:代码:AlgoFrame.javapackage Test;import java.awt.*;import javax.swing.*;public class AlgoFrame extends JFrame...原创 2018-12-01 16:59:17 · 746 阅读 · 0 评论 -
采用非递归(栈)实现走迷宫问题的可视化
效果图:代码如下:AlgoFrame.javapackage Test;import java.awt.*;import javax.swing.*;public class AlgoFrame extends JFrame{ private int canvasWidth; private int canvasHeight; public AlgoF...原创 2018-12-01 16:22:13 · 425 阅读 · 0 评论 -
采用DFS实现走迷宫问题的可视化
详细代码见我的相应github仓库:https://github.com/29DCH/Walking-the-maze欢迎fork源码到你自己的仓库下面。效果图:直接上代码:AlgoFrame.javapackage Test;import java.awt.*;import javax.swing.*;public class AlgoFrame extends JFra...原创 2018-12-01 15:11:45 · 820 阅读 · 0 评论 -
c++模拟处理机调度的SJF调度算法(短作业优先)
实验内容:本实验首先输入进程的个数,然后输入进程名称,最后输入每个进程提交到系统的时间和每个进程所需要的处理时间。然后通过模拟程序,显示以下信息:1)处理机对进程的调度过程。2)计算这N个进程的平均周转时间。注意:1、 作业在运行过程中不能抢断,只有作业运行完毕才能允许其它作业运行。2、 如果两个作业的处理时间相等,则提交时间早的优先执行。输入:4A 0.1 5B 0.1...原创 2018-11-28 08:29:19 · 2433 阅读 · 0 评论 -
java堆排序可视化
import java.awt.*;import javax.swing.*;public class AlgoFrame extends JFrame{ private int canvasWidth; private int canvasHeight; public AlgoFrame(String title, int canvasWidth, int ca...原创 2018-11-26 21:27:10 · 562 阅读 · 2 评论 -
小米2018秋招笔试题之24点
有n个1~23的整数,写一个算法,求出有多少个相互不同的子集合的和为24点。 输入描述:输入数据包含一组每组的第一行包括一个整数n(1 <= n <= 23)第二行包括n个整数1 <= 整数 <= 23)输出描述:对于每个测试实例,要求输出能组成24点的所有子集合的数量(子集合相互不同)。如果不存在,则输出0。每个测试实例的输出占一行。示例...原创 2018-09-06 09:55:21 · 2241 阅读 · 0 评论 -
网易2018秋招笔试题之射击游戏
小易正在玩一款新出的射击游戏,这个射击游戏在一个二维平面进行,小易在坐标原点(0,0),平面上有n只怪物,每个怪物有所在的坐标(x[i], y[i])。小易进行一次射击会把x轴和y轴上(包含坐标原点)的怪物一次性消灭。小易是这个游戏的VIP玩家,他拥有两项特权操作:1、让平面内的所有怪物同时向任意同一方向移动任意同一距离2、让平面内的所有怪物同时对于小易(0,0)旋转任意同一角度小易要进行...原创 2018-09-03 08:54:08 · 813 阅读 · 0 评论 -
腾讯2018秋招笔试题之纸牌游戏
题目描述 牛牛和羊羊正在玩一个纸牌游戏,这个游戏一共有n张纸牌,第i张纸牌上写着数字ai。 牛牛和羊羊轮流抽牌,牛牛先抽,每次抽牌,他们也可以从纸牌堆中任意选择一张抽出,直到纸牌被抽完。 他们的得分等于他们抽到的纸牌数字总和。 现在假设牛牛和羊羊都采用最优策略,请你计算出游戏结束后牛牛得分减去羊羊得分等于多少。输入描述 输入包括两行。 第一行包括一个正整数n(1 &lt;=...原创 2018-08-20 15:46:52 · 1117 阅读 · 0 评论 -
百度2018秋招笔试题之最大子序列
对于字符串x和y, 如果擦除x中的某些字母(有可能全擦掉或者都不擦)能够得到y,我们就称y是x的子序列。例如."ncd"是"nowcoder"的子序列,而"xt"不是。现在对于给定的一个字符串s,请计算出字典序最大的s的子序列。输入描述:输入包括一行,一个字符串s,字符串s长度length(1 ≤ length ≤ 50).s中每个字符都是小写字母输出描述:输出一个字符串...原创 2018-08-27 16:18:22 · 757 阅读 · 0 评论 -
百度2018秋招笔试题之字符覆盖
小度有一个小写字母组成的字符串s.字符串s已经被写在墙上了.小度还有很多卡片,每个卡片上有一个小写字母,组成一个字符串t。小度可以选择字符串t中任意一个字符,然后覆盖在字符串s的一个字符之上。小度想知道在选取一些卡片覆盖s的一些字符之后,可以得到的字典序最大的字符串是什么。输入描述:输入包括两行,第一行一个字符串s,字符串s长度length(1 ≤ length ≤ 50),s中每个字符...原创 2018-08-27 15:28:04 · 473 阅读 · 0 评论 -
腾讯2018秋招笔试题之贪吃的小Q
小Q的父母要出差N天,走之前给小Q留下了M块巧克力。小Q决定每天吃的巧克力数量不少于前一天吃的一半,但是他又不想在父母回来之前的某一天没有巧克力吃,请问他第一天最多能吃多少块巧克力。 输入描述: 每个输入包含一个测试用例。 每个测试用例的第一行包含两个正整数,表示父母出差的天数N(N<=50000)和巧克力的数量M(N<=M<=100000)。输出描述: 输出一个数表...原创 2018-08-20 11:37:17 · 1138 阅读 · 0 评论 -
百度2018秋招笔试题之完成括号匹配
合法的括号匹配序列被定义为:1. 空串""是合法的括号序列2. 如果"X"和"Y"是合法的序列,那么"XY"也是一个合法的括号序列3. 如果"X"是一个合法的序列,那么"[X]"也是一个合法的括号序列4. 每个合法的括号序列都可以由上面的规则生成例如"", "[]", "[][][]", "[[][]]&quo原创 2018-08-27 15:08:46 · 793 阅读 · 0 评论 -
百度2018秋招笔试题之字符串匹配
牛牛有两个字符串A和B,其中A串是一个01串,B串中除了可能有0和1,还可能有'?',B中的'?'可以确定为0或者1。 寻找一个字符串T是否在字符串S中出现的过程,称为字符串匹配。牛牛现在考虑所有可能的字符串B,有多少种可以在字符串A中完成匹配。例如:A = "00010001", B = "??"字符串B可能的字符串是"00","01","10","11",只有"11&qu原创 2018-08-26 22:22:49 · 859 阅读 · 0 评论 -
京东2018秋招笔试题之整除
题目描述牛牛对整除非常感兴趣。牛牛的老师给他布置了一道题:牛牛的老师给出一个n,然后牛牛需要回答出能被1到n之间(包括1和n)所有整数整除的最小的数。牛牛犯了难,希望你能编程帮他解决这个问题。输入描述输入包括一个整数n(1<=n<=100000)输出描述输出一个整数,即满足要求的最小整数。答案可能很大,请输出这个整数对于987654321取模的结果输入示例3...原创 2018-08-22 12:40:00 · 842 阅读 · 0 评论 -
腾讯2018秋招笔试题之画家小Q
【题目描述】画家小 Q 又开始他的艺术创作。小 Q 拿出了一块有 NxM 像素格的画板, 画板初始状态是空白 的,用’X’表示。 小 Q 有他独特的绘画技巧,每次小 Q 会选择一条斜线, 如果斜线的方向形如’/’,即斜率为 1,小 Q 会选择这 条斜线中的一段格子,都涂画为蓝色,用’B’表示;如果对角线的方向形如’\’,即斜率为-1,小 Q 会选择这条 斜线中的一段格子,都涂画为黄色,用’Y’表示...原创 2018-08-19 12:48:08 · 1264 阅读 · 3 评论 -
腾讯2018秋招笔试题之安排机器
【题目描述】小 Q 的公司最近接到 m 个任务, 第 i 个任务需要 xi 的时间去完成, 难度等级为 yi。 小 Q 拥有 n 台机器, 每台机器最长工作时间 zi, 机器等级 wi。 对于一个任务,它只能交由一台机器来完成, 如果安排给它的机器的最长工作时间小于任务需要的时间, 则不能完成,如果完成这个任务将获得 200 * xi + 3 * yi 收益。 对于一台机器,它一天...原创 2018-08-19 11:33:14 · 470 阅读 · 0 评论 -
京东2018秋招笔试题之求幂
东东对幂运算很感兴趣,在学习的过程中东东发现了一些有趣的性质: 9^3 = 27^2, 2^10 = 32^2 东东对这个性质充满了好奇,东东现在给出一个整数n,希望你能帮助他求出满足 a^b = c^d(1 ≤ a,b,c,d ≤ n)的式子有多少个。 例如当n = 2: 1^1=1^1 1^1=1^2 1^2=1^1 1^2=1^2 2^1=2^1 2^2=2^2 一共有6个满...原创 2018-08-20 21:30:15 · 1383 阅读 · 0 评论 -
网易2018秋招笔试题之字符串碎片
一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,"aaabbaaac"是由下面碎片组成的:'aaa','bb','c'。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的平均长度是多少。 输入描述:输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s只含小写字母('a'-'z')输出描述:输出一个整数,表示所有...原创 2018-08-28 16:57:33 · 408 阅读 · 0 评论 -
网易2018秋招笔试题之游历魔法王国
魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树。小易现在在0号城市,每次行动小易会从当前所在的城市走到与其相邻的一个城市,小易最多能行动L次。如果小易到达过某个城市就视为小易游历过这个城市了,小易现在要制定好的旅游计划使他能游历最多的城市,请你帮他计算一下他最多能游历过多少个城市(注意0号城市已经游历了,游历过的城市不重复计算)。输入描述:输入包...原创 2018-08-28 19:37:58 · 218 阅读 · 0 评论 -
网易2018秋招笔试题之合唱
小Q和牛博士合唱一首歌曲,这首歌曲由n个音调组成,每个音调由一个正整数表示。对于每个音调要么由小Q演唱要么由牛博士演唱,对于一系列音调演唱的难度等于所有相邻音调变化幅度之和, 例如一个音调序列是8, 8, 13, 12, 那么它的难度等于|8 - 8| + |13 - 8| + |12 - 13| = 6(其中||表示绝对值)。现在要对把这n个音调分配给小Q或牛博士,让他们演唱的难度之和最小,...原创 2018-09-03 07:43:58 · 279 阅读 · 0 评论 -
美团点评2018秋招笔试题之硬币兑换
A 国一共发行了几种不同面值的硬币,分别是面值 1 元,2 元,5 元,10 元,20 元,50 元, 100 元。假设每种面值的硬币数量是无限的,现在你想用这些硬币凑出总面值为 n 的硬币, 同时你想让选出的硬币中,不同的面值种类尽可能多;在面值种类尽可能多的情况下,你想让选择的硬币总数目尽可能多,请问应该怎么选择硬币呢?输入描述:第一行包含一个数字n,表示要凑出的面值。1 ≤ n...原创 2018-09-04 22:33:07 · 633 阅读 · 0 评论 -
搜狐2018秋招笔试题之Unix路径简化
简化 Unix 风格的路径,需要考虑的包括 "/../", "//", "/./" 等情况输入描述: Unix 风格的路径输出描述: 简化后的Unix 风格路径示例1输入 /a/./b/../../c/输出 /c知识点:Unix路径信息,栈“/.” 表示本级目录,可以忽略“/..” 表示返回上一级目录,即若上一级目录存在,连同“/..”一并删除,否则只删除“/...原创 2018-09-01 22:29:22 · 284 阅读 · 0 评论 -
京东2018秋招笔试题之分解整数
小Q的数学老师给了小Q一个整数N,问小Q能否将W分解为两个整数X和Y相乘,并且满足X为奇数,Y为偶数,即能否找到奇数X和偶数Y满足X * Y = N,小Q被这个问题难住了,希望能你来帮助他计算。输入描述:输入的第一行包含一个正整数t( 1<= t <= 1000 ),表示测试样例数。接下来的t行,每行一个正整数N (2 <= N < 2^63),表示给出的N。保证不...原创 2018-08-25 20:40:18 · 449 阅读 · 0 评论