![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
_奔跑的蜗牛
以梦为马,莫负韶华!
展开
-
蓝桥杯-栈的应用-表达式的计算
问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。 输入格式 输入一行,包含一个表达式。 输出格式 输出这个表达式的值。 样例输入 1-2+3*(4-5) 样例输出 -4 数据规模和约定 表达式长度不超过100,表达式运算合法且运算过程都在int内进行。 这道题需要用到数据结构中原创 2017-07-30 23:46:46 · 369 阅读 · 0 评论 -
层层递进-广度优先搜索算法
广度优先搜索算法常用于通过队列求最短路径,下面只实现了搜索算法1、算法思想广度优先搜索算法是通过一层一层的遍历的,遍历思想如下: 1、 选取根节点r 2、 遍历r的子节点,并计算根节点r到子节点的权值,注意的是当前节点的到根节点的权值等于当前节点的父节点到根节点的权值 3、 依次遍历所有节点 4、 所有节点只能遍历一遍,即当一个节点有两个父节点时,只能被一个父节点遍历...原创 2018-03-28 22:21:44 · 575 阅读 · 0 评论 -
最短路径
说到最短路径,我们自然就会想到迪杰斯特拉(Dijkstra)和弗洛伊德(Floyd)两个算法,下面我来跟大家分享一下这两个算法一、Dijsktra1.定义概述Dijsktra(迪杰斯特拉)算法主要用于计算一个节点到其他任意节点的最短路径。需要注意的是图中不存在负权边。2.算法描述1)算法思想设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,...原创 2018-03-28 19:22:51 · 242 阅读 · 0 评论 -
不撞南墙不回头-深度优先搜索算法
深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次. 今天介绍算法实现的两种形式,一种是通过数组交换位置、一种是通过数组保存元素是否被使用package 搜索.深度优先搜索DFS;public class Main { public st...原创 2018-03-28 10:56:20 · 783 阅读 · 0 评论 -
三种交换值的方法
三种交换方法1、通过中间变量交换public void swap(int a, int b){ int tmp = a; a = b; b = tmp;}2、通过加减交换//该方法两数相加可能会超出int范围而损失精度public void swap(int a, int b){ a = a + b; b = ...原创 2018-03-28 08:43:05 · 1313 阅读 · 1 评论 -
蓝桥杯Java-动态规划-拦截导弹
题目:拦截导弹 问题描述: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计...转载 2017-10-23 15:37:35 · 1746 阅读 · 0 评论 -
算法-水管工游戏
参考:《啊哈!算法》1、题目水管工游戏是指如下图中的矩阵中,一共有两种管道,一个是直的,一个是弯的,所有管道都可以自由旋转,最终就是要连通入水口可出水口。其中的树为障碍物。2、算法思路本题使用的是深度优先搜索算法,先标识入水口方向,在每次探索新管道的时候上根据入水口方向进行扩展,然后根据管道的类型来判断下一个节点的入水口方向。3、代码package 搜索...原创 2018-03-29 21:58:54 · 2596 阅读 · 1 评论 -
排序-快速排序
1. 算法思路 快速排序是常用的、平均时间复杂度为 O(NlogN) 的排序算法 快速排序算法的思路是首先选取一个基准数,然后以这个数为基准,将数列中大于这个数的放到该数的右边,小于该数的放到左边,然后两边在各选一个基准数,再依次排序。2. 实现代码首先运用的事递归的方法,需要传入数组最左边的和最右边的下标,选取最左边的数为基准数,然后最右边的下标...原创 2018-02-25 08:12:25 · 191 阅读 · 0 评论 -
判断两个区间有无交集
有两个区间A[a1,b1], B[a2,b2],判断这两个区间有没有交集。我们可以分为两种思维来判断:1. 正向思维:判断所有相交的情况/**判断所有可能相交的情况 * 1. A[1,5], B[4,8] A尾部与B首部相交(b1端必须在[a2,b2]之间) * 2. A[1,5], B[2,4] A包含B(B的两个端点都位于A中) * 3. A[2,5], B[1,3] A首部与B原创 2017-07-29 12:15:27 · 19035 阅读 · 10 评论 -
蓝桥杯-未名湖边的烦恼
题目:未名湖边的烦恼 问题描述 每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法) 输入格式原创 2017-10-23 08:52:35 · 315 阅读 · 0 评论 -
关于数组的排序问题(冒泡排序,选择排序,插入排序)
方法一:冒泡排序法代码: public int[] bubbleSort(int[] a){ //冒泡排序算法 //每趟不断将相邻记录两两比较,并按“前小后大”(或“前大后小”)规则交换。 int len = a.length; for(int i = len-1;i>=1;i--){ for(int j = 0;j<=i原创 2017-07-29 13:07:13 · 245 阅读 · 0 评论 -
埃氏筛法求范围内的质数
一、算法思路首先构建范围内从 2 开始的自然数,例如 20 以内的指数取第一个数为第一个质数既 2,然后去除自然数序列中能被2整除的数 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20取剩下数列中的第一个数既3为第二个质数,然后去除数列中能被3整除的数 3,5,7,9,11,13,15,17,19继续去数列的第一个数既5为第三个质数,...原创 2018-05-15 09:26:06 · 328 阅读 · 0 评论