摘要: 题目: 思路: 首先我们要确定进行转换的数的可能性为三种,即负数,正数与0; 其次十进制以上的转化情况。例:11进制中,10用A表示, 然后最后考虑到的是获取进制数的顺序 代码示例: import java.util.Stack; public class Solution4 { public st 阅读全文
posted @ 2020-12-30 14:24 忧愁的chafry 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 首先明确了这个可以在一次循环中解决即时间复杂度为O(n) 其次,在循环中,我们应能知道起始的位置,然后终止于哪个位置,当碰到终止的时候必然是元素为已经纳入我们统计中的元素。然后我们要如何确认这个元素在哪个位置,并且把一些废弃的元素丢弃掉,重新到下一次统计,直至目标数组遍历完全。 所以 阅读全文
posted @ 2020-12-30 14:22 忧愁的chafry 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 原理:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 图解: 桶排序: 计数排序: 基数排序: 代码示例: import java.util.ArrayList; import java.util.Arrays; import ja 阅读全文
posted @ 2020-12-30 14:14 忧愁的chafry 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 解法用了三种: 1,采用搭建小顶堆的方式通过把节点塞入堆内自动排序,然后取出最小值,直至堆内为空,元素加入堆中的时间复杂度为O(longk),总共有kn个元素加入堆中,因此,时间复杂度是O(nklogk),空间复杂度的话是O(K),因为堆内存放数据量是根据有多少个链表来的 2,链表1 阅读全文
posted @ 2020-12-30 14:12 忧愁的chafry 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 题目: 思路: 解法有两种: 1,顺序排序,需要额外创建一个数组大小为m+n,然后比较A与B,遍历填充进新数组。然后把数组再次填充回A里面,所以次数为2*(m+n),当m+n趋于无穷大时,2就被忽略了,时间复杂度为O(m+n),空间复杂度为O(m+n) 2,对于第一种方法如果要优化的点可以从空间开始 阅读全文
posted @ 2020-12-30 14:11 忧愁的chafry 阅读(214) 评论(0) 推荐(0) 编辑