![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
孤独狗蛋儿
这个作者很懒,什么都没留下…
展开
-
n阶乘尾部有多少个零?
思路 错误思路计算出 n! 结果后判断,是不可以行的,结果太大会溢出。正确思路有这样的现象:从0开始,每加5,其阶乘尾部便会增加一个0。比如:5!有一个0,10!有两个0,15!有三个0...现象的原因:5和任意偶数相乘就会产生0,而偶数的个数远比5的个数多,所以每增加5 结尾就会增加一个零。按照这个现象:n! 尾部0的个数 == n/5。可是这样还不完善...原创 2018-04-14 19:16:37 · 3449 阅读 · 0 评论 -
非递减旋转数组找最小值_C++
非递减旋转数组找最小值题目给一个非递减数组的旋转数组,求该数组的最小值。了解分析题目之前,先知道什么是非递减数组?什么是旋转数组?非递减数组:数组后面的元素 >= 数组前面的元素。旋转数组:将数组的前几位,移至数组尾部,构成的新数组称之为原数组的旋转数组。思路 对于有顺序的数组首先想到的,是二分法查找。 但二分查找时存在一特殊...原创 2019-01-05 12:33:27 · 194 阅读 · 0 评论 -
判断二维数组是否包含某数
判断二维数组是否包含某数 题目已知一个整数型二维数组,行和列的数值都是递增的。现在给定数值'x',判断二维数组是否包含'x'。方法假设二维数组如下图排列,取二维数组右上角数值和'x'比较:(1) 如果比'x'大,则这一列就剔除;(2) 如果比'x'小,则这一行就剔除。 代码#include <vector>#include &...原创 2019-01-05 12:36:19 · 1242 阅读 · 0 评论 -
链表逆序C++
链表逆序C++题目将给定链表逆序,返回逆序后的链表头。思路创建三个指针,一个执行当前节点,一个指向前节点,一个指向后节点。由于挺简单,直接代码就能看明白。代码#include <stdio.h>class linklist{ public: linklist(int tmp) :value(tmp) ...原创 2019-01-05 12:37:11 · 367 阅读 · 1 评论 -
快速排序
快速排序题目将乱序数组按从小到大排列。数组中是允许出现重复数字的。思路 (1) 在数组中找个基准值(一般取开头/中间/结尾的数值),以该基准值为界限,将小于基准值的数放在基准值左边,大于基准值的值放在基准值右边。 (2) 基准值左边使用(1)中的方法,递归执行多次后,可以将左边排好。 (3)基准值右边也一样,使用(1)中的方法,递...原创 2019-01-14 13:08:49 · 407 阅读 · 0 评论 -
找出数组中任一重复的数_C++
目录数组中任一重复的数题目思路代码数组中任一重复的数题目一个长度为n的数组,数组中的值属于0~(n-1)范围内。现已知该数组中一定有重复的数字,请找出任意一个重复的数字。思路如果该数组中没有重复的数字,那么下标和下标对应的值就相等了,即是array[i] == i。利用好这点,寻求解题方法。方法一:(1) 将数组从小到大排序。(2) 遍历判断 array[i] 和 i 之间的关系,...原创 2019-07-19 18:38:10 · 210 阅读 · 0 评论