
剑指offer
点滴~
进阶中的工程师
展开
-
63. 股票的最大利润
【代码】63. 股票的最大利润。原创 2024-11-02 23:12:39 · 105 阅读 · 0 评论 -
3. 数组中重复的数字
【代码】3. 数组中重复的数字。原创 2024-11-02 23:08:10 · 105 阅读 · 0 评论 -
59. 滑动窗口的最大值
【代码】59. 滑动窗口的最大值。原创 2024-11-02 23:01:56 · 133 阅读 · 0 评论 -
40. 最小的 K 个数
【代码】40. 最小的 K 个数。原创 2024-11-02 22:58:23 · 119 阅读 · 0 评论 -
9. 用两个栈实现队列
【代码】9. 用两个栈实现队列。原创 2024-11-02 22:54:02 · 83 阅读 · 0 评论 -
6. 从尾到头打印链表
【代码】6. 从尾到头打印链表。原创 2024-11-02 22:49:13 · 242 阅读 · 0 评论 -
24. 反转链表
【代码】24. 反转链表。原创 2024-10-31 23:03:40 · 222 阅读 · 0 评论 -
计数排序、桶排序、基数排序
import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Sort { // 打印函数 public static void print(int[] numbers) { for (int i = 0; i < numbers.lengt...原创 2018-11-16 11:09:38 · 229 阅读 · 0 评论 -
剑指offer系列之八:跳台阶问题
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。这种问题的思路一般是采用数学归纳法,当n=1时,只有一种跳法;当n=2时,青蛙可以一次跳2级,也可以一次跳两级,需要跳两次,所以有两种跳法;当n=3的时候,首先考虑一次跳1级的情况,由于有3级,所以还有2级没跳,而跳两级的跳法已经在前面n=2的情况中计算得到了;下面考虑一次跳2级的情况,同样跳完2级的...原创 2018-04-05 15:54:16 · 202 阅读 · 0 评论 -
剑指offer系列之七:斐波那契数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。Java算法实现:public int Fibonacci(int n) { int a=1,b=1,result=0; if(n<0){ return 0; }else if(n==1||n==2){ return 1; }else{ ...原创 2018-04-05 15:52:57 · 149 阅读 · 0 评论 -
剑指offer系列之六:用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。栈的特点是先进后出,而队列的特点是先进先出。题目中提到使用两个栈实现队列,好像有戏。现在问题是如何把栈的出栈和入栈与队列的入队和出队联系起来?因为现在只有栈,所以在实现的队列中,只能先往栈中添加元素,这点比较好理解;那么出队呢,由于先进去的元素被压在栈底,而如果是队列的话,必须是栈底的那个元素先出队。现在可...原创 2018-04-05 15:51:35 · 145 阅读 · 0 评论 -
剑指offer系列之五:旋转数组的最小值
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。这题其实不用考虑旋转数组的特性,采用顺序查找的方式也能很快写出实现代码。代码如下:public int minNumberInRotateArray(int [] array) { ...原创 2018-04-05 15:48:44 · 184 阅读 · 0 评论 -
剑指offer系列之四:重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。Java算法实现: public class TreeNode { int val; TreeNode left; T...原创 2018-04-03 21:07:03 · 126 阅读 · 0 评论 -
剑指offer系列之三:在二维数组中查找元素
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。Java算法实现:public class Solution { public boolean Find(int target, int [][] array) { for(int i=0;i<...原创 2018-04-03 21:05:25 · 139 阅读 · 0 评论 -
剑指offer系列之二:字符串空格替换
题目描述: 请实现一个函数,将一个字符串中的空格替换成”%20”。例如,当字符串为We Are Happy,则经过替换之后的字符串为We%20Are%20Happy。Java算法实现:方法一:public class Solution { public String replaceSpace(StringBuffer str) { String st = str.t...原创 2018-04-03 21:03:49 · 175 阅读 · 0 评论 -
剑指offer系列之一:从尾到头打印链表
题目描述: 给定一个链表,从尾部到头部打印输出链表结点的值。看到这个题目我的基本思路是:首先遍历一遍链表,统计出结点的个数,然后进行第二次遍历把每次访问的结点的值方到一个临时数组中,遍历结束之后,该临时数组中的值与正向遍历链表的值的顺序是一样的。那么在第三次遍历的时候,把上面的临时数组拷贝到另外一个临时数组中,只不过这次拷贝是从最后一个位置的值开始拷贝的,这样第三次遍历结束之后,第二个临时数组中的...原创 2018-04-03 21:02:21 · 177 阅读 · 0 评论 -
李开复:算法的力量
李开复:算法的力量算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的...转载 2018-04-02 00:13:29 · 295 阅读 · 0 评论