
剑指offer
gegeyanxin
这个作者很懒,什么都没留下…
展开
-
【剑指offer】二维有序数组中查找
题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题:利用好有序性。 一开始想的是从左上角开始找,先确定在哪一行,后来发现不对,比左边数大的有可能在右边,也有可能在下面。 所以从左下或者右上找比较合理。大小只有一个方向。 运行时间...原创 2019-08-13 16:59:37 · 177 阅读 · 0 评论 -
【剑指offer】求链表中倒数第k个节点
链表是自己编写的数据结构,没有官方的类和方法可用。 看到解题中一个方法很好,用两个指针,第一个指针先移动k,定出一个大小为k的窗口,然后两个窗口一起移动。 最后,当先移动的窗口到了末尾时,另一个指针就是要找的节点。 /* class ListNode { int val; ListNode next = null; ListNode(int val) { ...原创 2019-08-12 09:57:24 · 100 阅读 · 0 评论 -
【剑指offer】从尾到头打印链表
题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 方法一、容易想到的是遍历链表,存入数组,然后逆序存入ArrayList中,返回。本办法,但是运行也快。 方法二、递归:很巧 public class Solution { ArrayList<Integer> arrayList=new ArrayList<Integer>(); ...原创 2019-08-25 16:17:08 · 204 阅读 · 0 评论 -
【剑指offer】反转链表
反转链表是很常见的操作。考研时候由于初接触数据结构,对链表理解还不是很顺,现在看来,很好理解了。 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { ...原创 2019-08-12 15:43:32 · 149 阅读 · 0 评论 -
【剑指offer】斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现...原创 2019-08-12 17:36:02 · 225 阅读 · 0 评论 -
【剑指offer】替换空格 多种解法
方法一、用java自带方法 运行时间:27ms 占用内存:9548k public static String replaceSpace(StringBuffer str) { // 方法一、偷懒解法:用java自带库 return str.toString().replace(" ", "%20"); } 方法二、新定义一个StringBuffer,碰到空格就替换后追加...原创 2019-08-13 10:27:39 · 126 阅读 · 0 评论