每天一道算法题

每天一道算法题(第二期)

2019-10-19  本文已影响0人  鸡汤小弟

前言

算法这个活动很严,每天必须打卡,而且不限制语言,群内已有PHP、Python、Java、Javascript等语言,欢迎大家参加,并坚持。能坚持的公众号回复算法。本公众号以JS为主,解题思路均以js来举例。

上周回顾:
1、两个数组的交集 II
2、1比特与2比特字符
3、二进制求和
4、两数之和
5、加一

爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数

题解:


只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:
你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?

题解


报数

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:

1.     1
2.     11
3.     21
4.     1211
5.     111221

1 被读作 "one 1" ("一个一") , 即 11

11 被读作 "two 1s" ("两个一"), 即 21

21 被读作 "one 2", "one 1"("一个二" , "一个一") , 即 1211

给定一个正整数n(1 ≤ n ≤ 30),输出报数序列的第 n 项。
注意:整数顺序将表示为一个字符串。

题解:


最后一个单词的长度

给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 0 。

说明:一个单词是指由字母组成,但不包含任何空格的字符串。

题解:


各位相加

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。

题解:

第二期结束,下期见。如果有一起学习的朋友,可以加微信群。


image.png
上一篇 下一篇

猜你喜欢

热点阅读