随笔分类 - 算法
摘要:给定一个仅包含 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射(如图)。注意1不对应任何字母 输入:'23' 输出:['ad', 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'ce', 'cf'] 规律:2 个一算,拼成 1 个,继续和下一个一算,拼成
阅读全文
摘要:给定一个字符串 s ,计算具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是组合在一起的。要计算重复出现的子串的次数 输入:'00110011' 输出:6 解释:有6个子串具有相同数量的连续 1 和 0:‘0011’,‘01’,‘1100’,‘10
阅读全文
摘要:题目:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序 输入: 'let's take leetcode contest' 输出: 's'tel ekat edocteel tsetnoc' 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空
阅读全文
摘要:希尔排序 希尔排序是以它的创造者命名的,这个算法在插入排序的基础上做了很大的改善。希尔排序的核心理念与插入排序不同,它会首先比较距离较远的元素,而非相邻的元素。和简单地比较相邻元素相比,使用这种方案可以使离正确位置很远的元素更快的回到合适的位置。当开始用这个算法遍历数据集时,所有元素之间的距离会不断
阅读全文
摘要:冒泡排序 冒泡排序,它是最慢的排序算法之一,但也是一种最容易实现的排序。 之所以叫冒泡排序是因为使用这种排序算法时,数据值会像气泡一样从数组的一端漂浮到另一端。假设长在将一组数字按照升序排列,较大的值会浮动到数组的右侧,而较小的值则会浮动到数组的左侧。之所以会产生这种现象是因为算法会多次在数组中移动
阅读全文