这篇文章上次修改于 3 个月前,可能其部分内容已经发生变化,如有疑问可询问作者。

查找一个值的索引

题目描述

简要说明

给定一个排序过后的数组和一个目标值,查找给定目标值在数组中的索引值,若不存在这个值,则返回如果该值存在时的索引值。(注意是,排序过的数组)
思想:
因为是排序过的数组,所以只要一次遍历就可以了。
如果找到该值,则返回当前下标;如果该值在比较时,数组中的值已经大于目标值,则只可能在当前位置上可以按照当前的顺序插入该值,所以也应该返回当前下标。

实现

算法比较简单,故使用速度更快的 C 语言实现。
运行时间: 4ms。内存使用: 7.3 MB

数数和说数

题目描述

简要描述

给定一个序号,返回该序号的规律字符串。
规律:
  1. 第一个永远是 "1"
  2. 第二个是第一个的描述后的数字,例如第一个的"1", 可以这么说,一个 1,所以一个表示成 1, 1 表示成 1,所以结果是11
  3. 那么第三个就是在第二个的基础上,也就是21,因为是 2 个 1.

思想

这里,我想的有点复杂了,所以时间和空间复杂度很高。
首先,他是从第一个开始到第 n 个的循环,每次算出上一个的结果。
n == 1, res = "1"
从第二个开始,每次循环中,提取出当前的 res 再来一个循环,记录 res 中前一个数字和当前遍历到的数字是否相同,bPostion == j ? count ++。如果不相同,则把当前的记录的 countbPostion 合并为字符串,push 到一个 临时数组中,当最外层循环结束后,把临时数组中的每一个字符串合并入 res,并且清空临时数组。对其他变量进行初始化。进行下一次循环。

实现

使用坑爹的 JS 实现。

反转整数

题目描述

简要描述

输入一个32 位的整数−2^31, 2^31 − 1, 输出它的反转后的值,如果溢出范围,则输出 0.

思路

注意判断是否溢出。

实现

使用 limit.h 中的 INT_MIN INT_MAX常量判断是否溢出。

亲亲留个评论再走呗

正在加载评论区...