剑指offer
little_monkey_92
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指offer--把数组排成最小的数(java)
剑指offer--把数组排成最小的数 三种常见解法: 全排数组,列出所有可能的组合,然后找出其中最小的那一个。 时间复杂度:O(n!) TreeSet<String> str_map = new TreeSet<String>(); public String PrintMinNumber(int [] numbers) { if(numbers==nu...原创 2019-08-13 22:56:38 · 243 阅读 · 0 评论 -
剑指offer--数组中的逆序对(java)
剑指offer--数组中的逆序对 待补充原创 2019-08-19 10:43:16 · 390 阅读 · 0 评论 -
剑指offer--两个链表的第一个公共结点(java)
剑指offer--两个链表的第一个公共结点 两种常见解法: 暴力查找法,两层循环,第一层遍历一条链,镶嵌的遍历的是另一条,查找相同的那一块。 时间复杂度:O(n^2)public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { ListNode pHead2Temp = pHead2; while((pHead...原创 2019-08-19 11:29:53 · 210 阅读 · 0 评论 -
剑指offer--丑数(java)
剑指offer--丑数 两种常见解法: 遍历判断丑数。从2开始判断当前数是否为丑数,如果是则计数+1,直到计数达到N为止。 这个方法是计算每一个数是否为丑数,时间开销大。不推荐 时间复杂度:public int GetUglyNumber_Solution(int index) { int cnt = 1; int n = 2; while(cnt<index) { if(isU...原创 2019-08-14 14:25:04 · 157 阅读 · 0 评论 -
剑指offer--数组中出现次数超过一半的数字(java)
剑指offer--数组中出现次数超过一半的数字 三种解法: 首先排序,超过一半的那个数字一定在中间,但是注意通过遍历判断是否存在这样超过半数的数字,不能盲目就指定就是中间那个数字; 时间复杂度:O(nlogn) public int MoreThanHalfNum_Solution(int [] array) { if(array== null || array.length =...原创 2019-08-10 21:59:50 · 289 阅读 · 0 评论 -
剑指offer--最小的K个数(java)
剑指offer--最小的K个数 三种常见解法: 首先升序排序,然后取前k的元素;需要注意的是返回结果,否则AC不过 时间复杂度:O(nlogn) public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { ArrayList<Integer> list = ne...原创 2019-08-10 23:34:15 · 258 阅读 · 0 评论 -
剑指offer--数字在排序数组中出现的次数(java)
剑指offer--数字在排序数组中出现的次数 两种常见解法: 遍历一遍数组,进行查找,这个方法没有利用排序数组这个条件。时间复杂度较高 时间复杂度:O(n) //一层循环遍历数组,省略 2.利用排序数组这个条件,通过二分法来找到,找到第一个k的索引和最后一个数组的索引。 时间复杂度:O(logn) public int GetNumberOfK(int [] array , int...原创 2019-08-20 11:18:14 · 218 阅读 · 0 评论 -
剑指offer--整数中1出现的次数(java)
找规律原创 2019-08-12 15:27:34 · 183 阅读 · 0 评论 -
剑指offer--第一个只出现一次的字符(java)
剑指offer--第一个只出现一次的字符 两种常见解法: 全排数组,列出所有可能的组合,然后找出其中最小的那一个。 时间复杂度:O(n!) TreeSet<String> str_map = new TreeSet<String>(); public String PrintMinNumber(int [] numbers) { if(numbers==...原创 2019-08-17 11:54:13 · 199 阅读 · 0 评论
分享