剑指offer
敲代码的乔帮主
走在梦想的大道上,跌跌撞撞,时而悲伤,时而难过失落,是什么又让我扬起头继续向前呢?是心中的那一朵彼岸之花,牵使着你我之间的约定,成为我心中那一股永不可灭的骨气,终究是信仰。
展开
-
剑指offer03-寻找一维数组中重复的数字
1.题目描述在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。Input:{2, 3, 1, 0, 2, 5}Output:22.题目解析case1:一维数组在内存中占据连续的空间,因此我们可以根据下标定位对应的元素,总时间复杂度是O(n),空间复杂度是O(1)case2:不修改数组找出重复的数字,我们可以借助一个辅助数组,需要O(n)...原创 2020-11-17 21:18:21 · 364 阅读 · 0 评论 -
剑指offer04-二维数组中的查找是否含有某个数字
1.题目在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断这个数组中是否含有这个数字。2.思路解析...原创 2020-11-20 12:46:54 · 347 阅读 · 0 评论 -
剑指offer05-替换字符串中的空格
package www.niuke.offer;/* * 请实现一个函数,将一个字符串中的空格替换成“%20”。 * 例如,当字符串为We Are Happy. * 则经过替换之后的字符串为We%20Are%20Happy。 */public class test02 { public String replaceSpace(StringBuffer str) { int le原创 2017-07-20 19:43:44 · 494 阅读 · 0 评论 -
剑指offer06-从尾到头打印链表
package www.niuke.offer;import java.util.ArrayList;/* * 输入一个链表,从尾到头打印链表每个节点的值 */public class test03 { public static ArrayList printListFromTailToHead(ListNode listNode) { ArrayList原创 2017-07-20 19:45:28 · 459 阅读 · 0 评论 -
剑指offer07-根据前序和中序遍历重建二叉树
其实对于二叉树的各种遍历算法的具体实现难度远远大于理解,对我来说在上数据结构课时,就对前、中、后三种遍历思想有自认为还可以的理解(也就是说给我一棵树,我绝对可以准确的写出它的三种遍历序列,也可通过已知的前(后)序列和中序序列重新画出这棵树),但到了具体的代码实现就比较懵逼了。。。对递归这种需要在脑子中像计算机一样跑N遍的方式好难准确无误的推敲啊。。。每次遇到递归的算法就很尴尬,看的懂但是不会自己写原创 2017-07-20 20:00:35 · 678 阅读 · 0 评论 -
剑指offer09-用两个栈实现一个队列
思路:有两个栈,栈1和栈2.当入栈的时候,我们将它全放进栈1中,当需要出栈的时候,我们将栈1出栈到栈2中,然后再将栈2依次出栈。出完栈之后,再把stack2中的数pop出push到stack1,接受下次的操作。所以入栈的时候,思路很简单,注意到要将int类型转为Integer类型,我们使用了new Integer(int);当需要出栈的时候,我们用API提供的方法while(stack1.isEm原创 2017-12-12 15:46:19 · 352 阅读 · 0 评论