摘要: 给定一组字符,使用原地算法将其压缩。 压缩后的长度必须始终小于或等于原数组长度。 数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。 在完成原地修改输入数组后,返回数组的新长度。 示例 1: 输入: ["a","a","b","b","c","c","c"] 输出: 返回6,输入数组的 阅读全文
posted @ 2019-02-25 23:24 码到成功hy 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作 "one 1" ("一个一") , 即 11。 11 被读作 "two 1s" ("两个一"), 即 21。 21 被读作 "one 阅读全文
posted @ 2019-02-25 23:00 码到成功hy 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 给定一个单词,你需要判断单词的大写使用是否正确。 我们定义,在以下情况时,单词的大写用法是正确的: 全部字母都是大写,比如"USA"。 单词中所有字母都不是大写,比如"leetcode"。 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。 否则,我们定义这个单词没有正确使用大写字 阅读全文
posted @ 2019-02-25 22:59 码到成功hy 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 前面已经讲过冒泡排序的优化,现在对其进行进一步优化,直接看下面代码 阅读全文
posted @ 2019-02-13 18:29 码到成功hy 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 堆排序的基本思想(小顶堆) 1) 先将初始排列关键字序列(R1,R2...,Rn-1,Rn)构成小顶堆,此堆为初始的无序区.(这里是从最后一个非叶结点向前进行赛选) 2)将堆顶元素R1与最后一个元素Rn交换,此时得到新的无序区(R1,R2...,Rn-1)和新的有序区(Rn),并且Rn小于无序区所有 阅读全文
posted @ 2019-01-30 20:39 码到成功hy 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 选择排序 思想: 第一趟从n个数中找出最小的和第一个元素交换. 第二趟从第二个元素开始的n-1个数中找出最小的元素,与第二个元素交换 ... 第i趟从第i元素开始的n-i+1个数中找出最小的元素,与第i个元素交换,直到整个序列有序 阅读全文
posted @ 2019-01-20 19:37 码到成功hy 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 希尔排序 我们先在方法中找出它最大的间隔h, 第一趟,将要排序的一组数按增量h分成若干组,每组中记录的下标相差h, 对每组中全部元素进行排序。 第二趟,间隔为h = (h-1)/3,以后的每趟间隔都是h = (h-1)/3, 直到间隔变为1,整个要排序的数被分成一组,排序完成。 一般的初次取序列的一 阅读全文
posted @ 2019-01-20 19:11 码到成功hy 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 排序思想: 1.每次插入,都从前面的有序子表中查找出待插入元素应该被插入的位置; 2.给插入位置腾出空间,将待插入元素复制到表中的插入位置。 注意到该算法中,总是边比较边移动元素,下面将比较和移动操作分离开来, 即先折半查找出元素的待插入位置,然后再统一地移动待插入位置之后的所有元素。 阅读全文
posted @ 2019-01-19 14:11 码到成功hy 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 排序思想 1.从第一个元素开始,我们认为第一个元素已经被排序 2.取出下一个元素,在已经排序的元素序列中从后向前扫描 3.如果该元素(已排序)大于新元素,将该元素移到下一位置 4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置,将新元素插入到该位置 5.执行第二步骤,直到所有元素遍历完 稳 阅读全文
posted @ 2019-01-19 14:08 码到成功hy 阅读(139) 评论(0) 推荐(0) 编辑
摘要: (我们这块说升序思想) 排序思想:第一趟,从第一个记录开始到第n个记录,对n-1对相邻的两个记录关键字进行比较,若前者大于后者,两者进行交换,这样一趟结束后,最大的元素就在数组的末尾;第二趟,从第一个记录开始到第n-1个记录,对n-2对相邻的两个记录关键字进行比较,若前者大于后者,两者进行交换,这样 阅读全文
posted @ 2019-01-18 12:24 码到成功hy 阅读(192) 评论(0) 推荐(0) 编辑
获取

hahah

name age option