剑指offer刷题笔记(第二遍)
hellodake
这个作者很懒,什么都没留下…
展开
-
[剑指offer]大可日常打卡-树
8.二叉树的下一个节点 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:中序遍历,左根右, 如果一个节点右孩子不为空的话,那么返回他的右子树的最左节点; 如果右孩子为空,可能有两种情况,(1)该节点是父节点的左节点,那么返回父节点即可,(2)该节点是父节点的右节点,那么把p指向它的父节点,...原创 2018-07-05 11:34:37 · 558 阅读 · 0 评论 -
[剑指offer]大可日常打卡-字符串
5.替换空格 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class Solution { public String replaceSpace(StringBuffer str) { if(str==null||str.length()...原创 2018-07-19 16:51:06 · 168 阅读 · 0 评论 -
[剑指offer]大可日常打卡-递归
43.1~n整数中1出现的次数题目描述:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。思路:遍历?每一个都算一下?暴力拆解!...原创 2018-08-14 16:18:33 · 147 阅读 · 0 评论 -
[剑指offer]大可日常打卡-链表
6.从尾到头打印链表题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* ...原创 2018-08-16 20:56:35 · 155 阅读 · 0 评论 -
[剑指offer]大可日常打卡-数组
4.二维数组中的查找题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:从右上角的数开始比,要是等于就返回true;小于target就row++;大于target就col--,所以列的--应该在最外层循环,满足当前列所对应的那个条件,r...原创 2018-08-13 13:33:52 · 212 阅读 · 0 评论 -
数组中重复的数字|||数组中只出现一次的数
1.找出数组中重复的数字题目描述:在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。思路1:把数组进行排序,然后比对。改变了数组结构。 public static ArrayList<Int...原创 2018-08-22 10:15:15 · 715 阅读 · 0 评论 -
二分快速幂
题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。思路:把指数转化为二进制,比如8^11=8^8*8^1*8^0;(11=1011)从右往左算!!先算低位,然后把一直累乘到res上!考虑几种情况:base=0,e<1;非法输入; base!=0,e>0; base!=0,e<0; base...原创 2018-08-20 14:12:46 · 192 阅读 · 0 评论