一. 算法内容: 将一组未排序的数字,按照从小到大的顺序排序。 二 . 算法思路及步骤: 算法将元素分为两部分,假想有一条分界线,它的左边是已排序的元素,右边是未排序的元素。算法将相邻数字两两比较,如果前一个数字大于后一个数字,那么交换这两个数,否则向后移动一个数,继续执行比较操作。每趟比较将最大的 ...
分类:
编程语言 时间:
2020-06-24 00:31:52
阅读次数:
69
前言 递归,是一个非常重要的概念,也是面试中非常喜欢考的。因为它不但能考察一个程序员的算法功底,还能很好的考察对时间空间复杂度的理解和分析。 本文只讲一题,也是几乎所有算法书讲递归的第一题,但力争讲出花来,在这里分享四点不一样的角度,让你有不同的收获。 时空复杂度的详细分析 识别并简化递归过程中的重 ...
分类:
其他好文 时间:
2020-06-21 11:42:43
阅读次数:
68
滴滴2019年php高级研发工程师面试题总结一 算法 基本排序算法要会写,时间复杂度要会推算, 主要是冒泡排序, 快速排序, 选择排序.查找算法,要会写二分查找法, 实际场景要会应用.实例算法思路要明白,基本算法看多了, 我觉得是几种思路的变换, 需要自己领悟.面试中考过: 猴子选大王 斗地主项目设 ...
分类:
Web程序 时间:
2020-06-20 21:54:50
阅读次数:
104
####题目描述 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。 A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。 每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是”1 X Y”,表示 ...
分类:
编程语言 时间:
2020-06-18 01:03:18
阅读次数:
98
题目链接:http://poj.org/problem?id=2054 贪心算法,思路参考yxc,涉及树的合并与缩点,将所有触发点构成的链全部缩进根节点即可得到最终的结果。证明: 代码如下: #include<iostream> using namespace std; const int maxn ...
分类:
编程语言 时间:
2020-06-16 15:01:14
阅读次数:
52
贪心算法 思路: 从头开始遍历数组,用end记录当前步所能到达的截止位置,maxPos记录下一步所能到达的最大位置,当遍历到当前步截止位置时,步数加一,end更新为下一步所能到达的最大位置,继续遍历。 代码: class Solution: def jump(self, nums: List[int ...
分类:
其他好文 时间:
2020-05-27 12:00:19
阅读次数:
64
1.理论基础 这次接触了JML————进行规格化设计的一种语言,用来表示一个接口要干些什么事,相比直接用文字叙述,这样的方式更加规范,不会千人千面,读起来也不会很费劲,我一般是猜测它想要干什么,再去细读是不是我想的那样,以下列举一下JML的规范: + 原子表达式 \result:表示返回值。 \ol ...
分类:
其他好文 时间:
2020-05-23 18:36:12
阅读次数:
49
java排序 冒泡排序(相邻比较) 算法思路: 1、比较相邻的元素。如果第一个比第二个大,就交换它们两个; 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数; 3、针对所有的元素重复以上的步骤,除了最后一个; 4、重复步骤1~3,直到排序完成。 pub ...
分类:
编程语言 时间:
2020-05-15 19:51:26
阅读次数:
73
题目内容 题目: 手里面n张不同牌面的牌,编写一个洗牌程序,让随机取出一张牌的概率相同。 要求: 说明算法思路、分析时间复杂度、用Array编写洗牌程序、编写测试用例。 算法思路 时间复杂度 时间复杂度应该为:O(n) 实现程序 下面给出4种实现方法、比较各种方法的好坏,其中shuff ...
分类:
其他好文 时间:
2020-05-14 23:53:40
阅读次数:
82
回溯算法就是个多叉树的遍历问题,关键就是在前序遍历和后序遍历的位置做一些操作,算法框架如下: result = []def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径, ...
分类:
编程语言 时间:
2020-05-13 00:38:31
阅读次数:
81