摘要: 归并排序可以采用递归方法(见:归并排序),但递归方法会消耗深度位O(longn)的栈空间,使用归并排序时,应该尽量使用非递归方法。本文实现了java版的非递归归并排序。 更多:数据结构与算法合集 思路分析 递归排序的核心是merge(int[] arr, int start, int mid, in 阅读全文
posted @ 2018-11-15 20:30 华仔要长胖 阅读(1451) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 请定义一个队列并实现函数max得到队列里的最大值,要求函数max、push_back和pop_front的时间复杂度都是O(1)。 思路 与滑动窗口的最大值一题相似,利用一个双端队列来存储当前队 阅读全文
posted @ 2018-11-15 19:14 华仔要长胖 阅读(1797) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。例如,如果输入数组{2, 3, 4, 2, 6, 2, 5, 1}及滑动窗口的大小3,那么一共存在6个滑动窗口,它们的最大值分别为{4 阅读全文
posted @ 2018-11-15 16:55 华仔要长胖 阅读(2227) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如输入字符串"abcdefg"和数字2,该函数将返回左旋转2位得到的结果"cdefga 阅读全文
posted @ 2018-11-15 15:07 华仔要长胖 阅读(1188) 评论(1) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I 阅读全文
posted @ 2018-11-15 14:12 华仔要长胖 阅读(1389) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、4~6和7~8。 思路 指针法 阅读全文
posted @ 2018-11-15 10:56 华仔要长胖 阅读(789) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,输出任意一对即可。 思路 从头开始遍历数字,确定一个数字后,对后面的数字遍历,判断和是否为 阅读全文
posted @ 2018-11-15 10:15 华仔要长胖 阅读(879) 评论(0) 推荐(0) 编辑