剑指Offer
记录剑指Offer的刷题过程
双人与余
熟能生巧
展开
-
剑指Offer 03 从尾到头打印链表
题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 说明:本题目包含复杂数据结构ListNode,点此查看相关信息 解答 读完题第一想法就先正序存储链表,再从尾到头遍历 /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * }原创 2020-09-23 23:21:38 · 80 阅读 · 0 评论 -
剑指Offer02 替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解答 第一想法是直接调用replace方法 public String replaceSpace(StringBuffer str) { int index = str.indexOf(" "); while(index != -1){ str.replace(index,index+1,"%20");原创 2020-09-23 22:59:01 · 82 阅读 · 0 评论 -
剑指Offer 07 斐波那契数列
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。 n<=39 解答: 斐波那契数列特特点是前两项为1,后面所有项都是前两项之和。即当n>=2时,有A(n)=A(n-1)+A(n-2) 根据这个公式很自然的想到递归法: public class Solution { public int Fibonacci(int n) { int result; if(n<=0) retur原创 2020-09-21 22:49:21 · 117 阅读 · 0 评论 -
剑指Offer 01 二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解答: 先和二维数组最右上角的值比较,比它小就往左走继续比较,比它大就向下继续比较,循环此过程知道找到相等的值,如果走出去了还没找到就返回false public class Solution { public boolean Find(int [][] array,int target) {原创 2020-09-20 23:27:29 · 84 阅读 · 0 评论