求大神看看,这漫画叫什么名字?

今天是小浩算法 “365刷题计划” 第85天穿插着为大家分享一道经典面试题目。额外说明的一点是,这道题本身很简单,但是却可以作为很多 中等/困难 题目的基础,

比如 超级次方,实现pow(x,n) 等等,在面试时需要额外小心。建议大家掌握!话不多说,直接看题。

本题原始版本出自《剑指offer》,leetcode或许是因为自身原因,并没有很好的进行移植。当然,这道题本身也确实不太好移植,尤其是测试样例的构建,很容易把系统搞崩掉,所以一些测试样例处理成内存溢出,也是情有可原。

题目:输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。

  • 用返回一个整数列表来代替打印

如果是第一次看到本题,应该是会想到????????????的解法。

直接通过 Math.pow 函数,计算出最大的 n 位十进制数,通过遍历求解。因为过于简单,所以直接上代码:

这种题解,应该不存在说有看不懂的。。。吧?(有的话,面壁思过!)

郑重申明(读我的文章必看):

  • 本系列所有教程都不会用到复杂的语言特性,大家无须担心没有学过相关语法,算法思想才是最重要的!

  • 作为学术文章,虽然风格可以风趣,但严谨,我是认真的。本文所有代码均在leetcode进行过测试运行。

“不允许使用math.pow,请手动实现一下”,“恶毒”的面试官发问了。

不让使用 math.pow , 那我们就不使用呗。根据上面的题解,我们已经把握到了关键,只要能找到 最大的 n 位十进制数,就可以解决问题。那我们就手动算一下:

(看起来还不错~但我肯定不会告诉你这是因为go语言提交少的缘故!)

“这道题目的名字叫做大数打印,如果阈值超出long类型,该怎么办呢?请手动实现一下!” 面试官总是可以想方设法为难咱们。(玩笑归玩笑,其实这个才是本题的核心)

到现在为止,本题才进入到关键环节。因为如果一个数很大,肯定没办法用单个变量类型进行表达。问题也发生了转化:如何使用其他的数据类型来模拟大数的表达?

这里先复习一下大数加法:在加法运算的时候假如有两个10000位数的两个数进行相加,那么用int、long、double型都装不下这么多位数,一般采用char数组来实现加法运算,解决精度的问题。说白了是啥意思,我们用 1234567 和 1234 来模拟一下:

  • 取两个数位数大的一个作为数组长度

  • 对两个数建立char数组,保存每一位上的值

  • 对于位数小的数,高位补0。

  • 同时创建sumArr,用来保存两数之和

当然,一般我们还使用一些比如 翻转存储计算 之类的技巧,这里就不说了,回头我会出一个单独的大数计算系列篇单独讲解。回到今天的题目。

对于本题,我们该如何模拟一个 “最大的n位十进制数” 呢?其实也是一样的,我们采用 char 数组进行存储。而我们每次递增1,相当于进行一次字符串相加的运算。但是这里额外要说明的一点是,我把题解恢复成了原题的要求:使用打印输出,而不是通过数组返回的形式。毕竟返回数组的形式只是 leetcode 为了兼容平台测试而改编的。这里我就直接给出从剑指offer改编的题解了(JAVA):

3 //声明字符数组,用来存放一个大数 12 //循环体退出标识 28 //进位之后减10,并把进位标识设置为1 48 // 到这里并没有继续往下实现一个存储数组的版本,是因为原题其实就是要求打印数值。 49 // 这道题目在leetcode上被改动成返回int数组的形式,也只是为了测试方便, 50 // 本身leetcode并没有提供对应的大数测试样例,也是担心其内存溢出。 51 // 总之大家知道本题的考察点所在就可以了。
  • 对最低位 nSum 的值递增(也就是字符串加1运算),当大于等于10时,我们把进位标识改为1,同时恢复对 nSum 减10(29-31)

  • 通过判断首位是否进位来判断到达最大的n位数情况。比如 n=4,只有对 9999 加 1,才会对第一个字符进位。

同样,我也实验了一下,如果我硬性的把代码改成数组的形式,然后在leetcode测试用例中构造 n = 10,就会出现这个:

(所以建议大家是在IDE里练习)

今天的题目到这里就结束了,如果想看其他面试题相关内容的,可以看:



如果你问我对学习算法有什么建议,这篇文章是必看的:

 小浩算法,每日

关注领取《图解算法》高清版

进群的小伙伴请加右侧私人微信(备注:进群)

14部,才,看来还要赶工……

  • (再温暖的眼神也击不中盲人的心) 17:05:37

  • 26看过 其中有很多看完之后觉得很烂! 这个排名有问题,lz转帖的时候应该注意到. 这些排名似乎不是一个组织评出的. 比如第一个感觉像是young jump自己评的,所以全都是集英社旗下的漫画. 后面那些更不靠谱.

  • 惭愧啊,看的不多,要加强做功课啦

  • 哑然失笑 既然如此经典为何会被腰斩 还不止一部=.=

  • (寻你千百度,你依然对我视若无睹) 11:07:41

    不少看的是动画,漫画没看过. 居然没五星物语,难道不够经典吗

  • 难道没有成人漫画么??可怜了我们这帮长大了的漫友 还得跟着一帮小朋友一起看...

  • 从一堆陌生的名字里面找熟人是很刺激的。。所以我狡辩的话就是:偶看动漫是有自己的选择和个性的~

  • 11....其中有个种类 一个都么看过...

  • 《封神演义》《通灵王》《游戏王》《棋魂》《网球王子》《足球小将》《三叶草》《NANA》《浪客剑心》 樱桃小丸子》《七龙珠》  圣斗士星矢》《灌篮高手》 《一吻定情》

  • (有那么一瞬间想当石头蹦出的猴子) 00:19:18

  • 26 为何没有浦泽大神的monster??而且浦泽大神的一部都没有,还有《铳梦》这样的经典都没有 ~~~

  • 《ONE PIECE》《地狱先生》 《ZOMBIE POWDER》《神风怪盗》 《游戏王》 《棋魂》《HUNTER *HUNTER》《网球王子》《足球小将》 《NANA》 《浪客剑心》《樱桃小丸子》《幽游白书》《七龙珠》 《圣斗士星矢》 《灌篮高手》 《一吻定情》《圣斗士星矢》18

  • 看了这么多年才12部 要死了 唉~~~~~~ 可是觉得很多经典的没有上 这??????

  • 知道的有53部 没看完的有9部 看完的有27部

  • 那个... 《天使传说》和《天使禁猎区》是一回事么?

  • 22, 决定都找来看看。

  • 13:59:26 Iris   24...   《无赖男》梅泽春人著,是不是就是《圣子到》呀? --------------------------- 两本啦 不过似乎一般人都喜欢《圣子到》 上面的漫画 我原来只看了个位数 历史漫画里面我觉得《花之庆次》很不错 其他 《超市猎人》 什么的 居然可以不上榜…… 鸟山明的《阿拉蕾》我也觉得绝对可以排上号的 看过的《小类人》《枪神》都觉得相当好 反正我对少女漫画 或者画风类似的一律不看就是了

  • 《NARUTO》岸本齐史著,一至二卷。 ------------------ 粗粗看 以为还在连载的不算呢 有火影 怎么可以没有死神……

  • (若说后悔,是否一切都能倒退) 15:59:36

    革命道路尚需努力啊,我要加油赶了

  • 确定是经典嘛??? 我会补上滴--

  • 22 …… 咋觉得好多经典都没有?

  • 囧ing~俺无言滴倒下了==#

  • 真正看过的只有11部 其他的都是略有耳闻或看了一小截

  • 日本的漫画家成千上万,在这个竞争激烈的行业中,想在周刊上连载是非常遥远的梦。所以很多人刚开始的时候都是画同人或者是做漫画家的助手,然后自己有机会再出道。

    但是还有一种方式,就是画下海番。不少漫画家通过这样的方式赚到第一桶金和人气后,开始转型上岸,下面就盘点一下几个熟悉的已经上岸的漫画家,不知道你有没有看过他们的作品呢?

    东清彦,是的没有错,作品有《校园漫画大王》《四叶妹妹》等这样比较清纯的日常漫画,但他确实曾经过下海。不过他画的四叶妹妹等作品确实很治愈,是不是被他那样日常的画风所欺骗了呢。

    Tony大神,同人界的知名人物,虽说不画动漫,但作为动漫迷或多或少都会看到他的同人作品,而且非常有个人特色。上岸后主要为小说和游戏做插画和CG,有人说他画功一般,但挡不住别人喜欢他的风格,如果有兴趣可以搜索他的上岸作品哦。

    武田弘光老师,相信大部分人都看过他的作品,上岸后的主要作品是《魔具少女》,这个动漫已经被动画化了哦。看看这画风是不是很熟悉呢,武田大神画的同人都是这个画风,说不定你曾经看过哦。

    佐伯俊(tosh),代表作是《食戟之灵》,人称药王。看过药王的都知道,里面每个人吃东西都要来一波夸张的幻想爆衣。相信很多人从画风就知道他以前是干什么的,话说能把吃货动漫画成这样的场景也算是一股清流。

    如月群真大神,这个名字相信多大数人就算不知道也可能有印象。曾经是桂正和的助手,果然人以群分,画风非常相似。最新消息,如月大神开始画一般向动漫,作品名字是《恋爱志向学生会》,连载9月开始。喜欢的话可以关注一下大神的上岸作品哦。

    以上是壹周菌总结几位漫画家,不知道你看过多少部他们的作品呢?

    【本文由动漫壹周谈发布,喜欢请关注转发点赞评论,你的关注是我们更新的动力】

    欢迎关注我的公众号:动漫壹周谈

    我要回帖

    更多关于 不知道漫画名怎么办 的文章

     

    随机推荐