题目:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出‘b’。
【剑指Offer】面试题49:丑数
题目:我们把只包含因子 2、3 和 5 的数称为丑数(Ugly Number)。求按从小到大的顺序的第 1500 个丑数。例如,6、8 都是丑数,但 14 不是,因为它包含因子 7。习惯上我们把 1 当作第一个丑数。
【剑指Offer】面试题45:把数组排成最小的数
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如,输入数组 {3, 32, 321},则打印出这 3 个数字能排出的最小数字 321323。
【剑指Offer】面试题43:1~n整数中1出现的次数
题目:输入一个整数 n,求 1~n 这 n 个整数的十进制表示中 1 出现的次数。例如,输入 12,1~12 这些整数中包含 1 的数字有 1、10、11 和 12,1 一共出现了 5 次。
【剑指Offer】面试题39:数组中出现次数超过一半的数字
题目:数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字。例如,输入一个长度为 9 的数组 {1, 2, 3, 2, 2, 2, 5, 4, 2}。由于数组 2 在数组中出现了 5 次,超出数组长度的一半,因此输出 2。
【数据结构与算法】快速排序
快速排序(英语:Quick sort),又称划分交换排序(partition-exchange sort),简称快排,一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序 n 个项目要 $O(n\,log\,n)$ 次比较。在最坏状况下则需要 $O(n^2)$ 次比较,但这种状况并不常见。事实上,快速排序 $O(n\,log\,n)$ 通常明显比其他算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地达成。