![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
大丁锅
打工了打工了打工了
展开
-
贪心算法及几个经典案例
贪心算法 一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态转载 2017-10-14 17:24:17 · 1143 阅读 · 0 评论 -
游历魔法王国(校招)
魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树。小易现在在0号城市,每次行动小易会从当前所在的城市走到与其相邻的一个城市,小易最多能行动L次。如果小易到达过某个城市就视为小易游历过这个城市了,小易现在要制定好的旅游计划使他能游历最多的城市,请你帮他计算一下他最多能游历过多少个城市(注意0号城市已经游历了,游历过的城市不重复计算)。 输入描述: 输入包括两行原创 2017-10-16 19:57:08 · 1127 阅读 · 1 评论 -
约瑟夫环
约瑟夫环问题:一圈共有N个人,开始报数,从1开始数到3,报到3的离开,然后重新开始报数,问最后剩下的人的编号? 样例输入: 10 样例输出: 4 约瑟夫环问题分析: N个人报数,每次数到三的人离开,假设每三个人是一个圈,需要走N-1圈,每圈需要离开一个人,当走完N-1圈时,剩下最后一个人就是需要找的人,在每次有人离开时需要删除那个人的下标。import java.util.*;原创 2017-11-14 16:55:17 · 298 阅读 · 0 评论 -
大数阶乘问题
一个整型变量只能用来存贮较小的n!的值,当 n 较大时,可将阶乘值中的每一个数字放在一个一维数组的一个元素中。使用这方法,打印n!的值 ; * 输入描述 * 整数n * 输出描述 * n!的值 * 输入样例 * 18 * 输出样例 * 6402373705728000 分析: 针对大数的阶乘来说,一般int,long是无法容纳结果的,会产生溢出,所原创 2017-11-21 18:53:29 · 582 阅读 · 0 评论 -
大数阶乘问题(来自大佬博客的方法)
Java计算阶乘(n!)需要使用实现使用BigDecimal类,因为用int最多正确算到12!,用long最多正确算到20!计算机中提供了长整型和双精度等能存储较大数的数据类型,但在有些时候,这样的数据类型不能满足实际用的需求,比如大数的阶乘。请编写程序,实现大数阶乘的算法。要求能计算N(6<=N<=300)的阶乘。 import java.math.BigDecimal; im转载 2017-11-21 19:08:22 · 1419 阅读 · 2 评论 -
链表的逆序输出与两个有序链表的合并
#include <stdio.h> #include <stdlib.h> struct node{ int data; struct node *next; }; int main() { struct node *head , *p , *q , *t; int i , n , a; void reverse(struct ...原创 2018-07-01 15:08:05 · 983 阅读 · 0 评论 -
C语言实现顺序队列
在顺序队列中,通常让队尾指针rear指向刚进队的元素的位置,让队首指针front指向刚出队的元素的位置。因此,元素进队的时候rear指针要向后移动,元素出队的时候front指针也要向后移动。这样经过一系列的操作后,两个指针最终会到达数组的末端处,虽然队中已没有了元素,但是仍然无法插入元素,这就是所谓的“假溢出”。为了解决假溢出的问题,可以将数组弄成一个环状,让rear和front指针沿着环走,这样...原创 2018-08-11 09:47:08 · 8987 阅读 · 0 评论