剑指 Offer 56 - I. 数组中数字出现的次数
题目描述一个整型数组 $nums$ 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 12输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1] 示例 2: 12输入:nums = [1 ...
Read more
剑指 Offer 15. 二进制中1的个数
题目描述编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是 ...
Read more
剑指 Offer 49. 丑数
题目描述我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例: 123输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 说明:    $1$ 是丑数。 ...
Read more
剑指 Offer 51. 数组中的逆序对
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 12输入: [7,5,6,4]输出: 5 限制: $0 <= 数组长度 <= 50000$ 算法(归并排序) ...
Read more
剑指 Offer 45. 把数组排成最小的数
题目描述输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 12输入: [10,2]输出: "102" 示例 2: 12输入: [3,30,34,5,9]输出: "3033459" 提示: ...
Read more
剑指 Offer 67. 把字符串转换成整数
题目描述请你来实现一个 $myAtoi(string s)$ 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 $atoi$ 函数)。 函数 $myAtoi(string s)$ 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾) ...
Read more
剑指 Offer 66. 构建乘积数组
题目描述给定一个数组 $A[0,1,…,n-1]$,请构建一个数组 $B[0,1,…,n-1]$,其中 $B[i]$ 的值是数组 $A$ 中除了下标 $i$ 以外的元素的积, 即 $B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]$。不能使用除法。 示例: ...
Read more
剑指 Offer 61. 扑克牌中的顺子
题目描述从 若干副扑克牌 中随机抽 $5$ 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 1: 12输入: [1,2,3,4,5]输出: True 示例 2: 1 ...
Read more
剑指 Offer 58 - II. 左旋转字符串
题目描述字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串”abcdefg”和数字2,该函数将返回左旋转两位得到的结果”cdefgab”。 示例 1: 12输入: s = "abcdefg", k = 2 ...
Read more
剑指 Offer 39. 数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 12输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2 限制: $1 <= 数组长度 <= 5 ...
Read more