
剑指offer
little_grees
这个作者很懒,什么都没留下…
展开
-
表示数值的字符串
AcWing打卡活动《剑指Offer》打卡活动周二第八题表示数值的字符串/** * 字符串有两种开头方式 * 其中A为数值的整数部分,B紧跟着小数点为数值的小数部分,C紧跟'e'或者'E'为数值的指数部分 * a. 以A为整数部分的开头 A[.[B]][e|EC] * * b. 以.B为小数部分的开头 .B[e|EC] * 其中,整数部分开头是可以有±号的,而...原创 2019-07-08 12:29:52 · 156 阅读 · 0 评论 -
机器人的运动范围
AcWing打卡活动《剑指Offer》打卡活动周二第一题机器人的运动范围class Solution { public int movingCount(int threshold, int rows, int cols) { // 给了m,n,k的范围,所以不需要进行校验 // 需要一个数组维护机...原创 2019-06-30 19:42:33 · 164 阅读 · 0 评论 -
周三第三题 树的子结构
AcWing打卡活动《剑指Offer》打卡活动周三第三题树的子结构/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) {...原创 2019-07-11 10:57:25 · 186 阅读 · 0 评论 -
周三第四题 二叉树的镜像
AcWing打卡活动《剑指Offer》打卡活动周三第四题 二叉树的镜像/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) {...原创 2019-07-11 10:58:58 · 152 阅读 · 0 评论 -
剪绳子
AcWing打卡活动《剑指Offer》打卡活动周二第二题 剪绳子/** * 1、设 ni >= 5, 3 * (ni - 3) >= ni? 2 * ni >= 9? 衡大于 * 2、ni = 4 时, 拆分为2 * 2 才为最大 * 3、2 * 2 * 2 < 3 * 3 故能拆分成3时,尽量拆分为三 * 4、除了边界情况不得已才会拆分出1...原创 2019-07-01 13:06:59 · 105 阅读 · 0 评论 -
二进制中1的个数
AcWing打卡活动《剑指Offer》打卡活动周二第三题二进制中1的个数/** * 思路 * 10010 - 1 = 10001 * 10010 & 10001 = 10000 -> 少了一个1 * 11100 - 1 = 11011 * 11100 & 11011 = 11000 -> 同样少了一个1 * 按照这个思路不停的&am...原创 2019-07-01 13:28:36 · 178 阅读 · 0 评论 -
数值的整数次方
AcWing打卡活动《剑指Offer》打卡活动周二第四题数值的整数次方class Solution { public double Power(double base, int exponent) { double res = 1; for(int i = 0; i < Math.abs(exponent)...原创 2019-07-01 13:47:40 · 115 阅读 · 0 评论 -
在O(1)时间删除链表结点
AcWing打卡活动《剑指Offer》打卡活动周二第五题在O(1)时间删除链表结点/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } *...原创 2019-07-01 14:15:32 · 132 阅读 · 0 评论 -
周三第五题 二叉树的镜像
AcWing打卡活动《剑指Offer》打卡活动周三第五题 二叉树的镜像/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) {...原创 2019-07-11 16:31:13 · 246 阅读 · 0 评论 -
周三第七题 包含min函数的栈 - Java
AcWing打卡活动《剑指Offer》打卡活动周三第七题 包含min函数的栈/** * 思路 * 需要一个额外的栈,用以记录最小值 * 例子:如压入如下顺序 * 3 -1 2 -2 5 * 则recordStack 的内容为 * 3 -1 -1 -2 -2 * * */ class MinStack { Stack<Int...原创 2019-07-12 10:03:07 · 120 阅读 · 0 评论 -
周三第八题 栈的压入、弹出序列 - Java
AcWing打卡活动《剑指Offer》打卡活动周三第八题 栈的压入、弹出序列/** * 思路 * 使用一个栈(stackV)依次压入pushV数组的值 * 使用一个变量j记录弹出顺序 * 在压入的过程中,如果该栈(stackV)的第一个元素等于popV[j],则弹出来(碰到之后必须弹出,不然后面将会没有机会弹出) * 计数器加一 * 如果popV中的元素弹完,则表示...原创 2019-07-12 15:17:46 · 149 阅读 · 0 评论 -
周三第十一题 之字形打印二叉树 - Java
AcWing打卡活动《剑指Offer》打卡活动周三第十一题 之字形打印二叉树/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int ...原创 2019-07-19 16:42:11 · 231 阅读 · 0 评论 -
周三第九题 不分行从上往下打印二叉树 Java
AcWing打卡活动《剑指Offer》打卡活动周三第九题 不分行从上往下打印二叉树/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int ...原创 2019-07-19 16:52:39 · 161 阅读 · 0 评论 -
合并两个排序的链表
AcWing打卡活动《剑指Offer》打卡活动周三第二题合并两个排序的链表/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } * 思...原创 2019-07-10 20:13:11 · 154 阅读 · 0 评论 -
反转链表
AcWing打卡活动《剑指Offer》打卡活动周三第一题反转链表/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } * * ...原创 2019-07-10 19:57:35 · 106 阅读 · 0 评论 -
矩阵中的路径
AcWing打卡活动《剑指Offer》打卡活动周一第十一题 矩阵中的路径class Solution { public boolean hasPath(char[][] matrix, String str) { if(matrix == null || str == null || matrix.length <= 0) { ...原创 2019-06-30 16:37:55 · 160 阅读 · 0 评论 -
删除链表中重复的节点
AcWing打卡活动《剑指Offer》打卡活动周二第六题删除链表中重复的节点/** * 定义一个虚拟头结点,值为-1,这样就可以保证头结点不会被删除 * 使用两个引用,分别用来校验是否值一样 * 该题会完全删除掉重复的节点 * 由样例可知,不会出现负数值 * Definition for singly-linked list. * public class...原创 2019-07-03 15:59:25 · 159 阅读 · 0 评论 -
不修改数组找出重复的数字
AcWing打卡活动《剑指Offer》打卡活动第一周第二题不修改数组找出重复的数字/** * AcWing * 由题目的特性,可根据数组的长度,逐个检查范围,如数组的长度为8 * 则会使用二分法,检查左半边索引值(即1~4)在整个数组中的数量, * 逐渐缩小范围 * @param nums * @return 重复数字...原创 2019-06-28 19:38:50 · 169 阅读 · 0 评论 -
找出数组中重复的数字
AcWing打卡活动《剑指Offer》打卡活动第一周第一题不修改数组找出重复的数字/** * 前提条件是 数组中的元素必须小于数组的长度且大于-1 * @param numbers * @return -1 未找到或者参数校验失败 */ static int duplicate(int numbers[]) { ...原创 2019-06-28 19:49:25 · 374 阅读 · 0 评论 -
二维数组中的查找
AcWing打卡活动《剑指Offer》打卡活动第一周第三题二维数组中的查找/*由题目中二维数组的特性可得,每行的最右边最大,每列的从上之下依次递增,故如若从右至左(若行最大值大于小于目标值,则可直接跳过该行),从上至下遍历(若最小值大于目标值,则可直接跳过该列),则可大大提高效率。*/class Solution { public boolean searchA...原创 2019-06-29 03:48:54 · 112 阅读 · 0 评论 -
替换空格
AcWing打卡活动《剑指Offer》打卡活动周一第四题替换空格/** * 如若从前向后遍历,时间复杂度将会是O(n^2), * 如若从后至前遍历,提前拿到数组扩容的空间,则时间复杂度 * 将会优化到O(n) * create by yifeng */public class Solution { public String replaceSpaces(S...原创 2019-06-29 07:18:29 · 223 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
AcWing打卡活动《剑指Offer》打卡活动周二第九题调整数组顺序使奇数位于偶数前面/** * 思路 * a.使用两个索引分别指向数组的第一个和最后一个元素 * b.当第一个索引指向的元素为偶数和第二个索引指向的元素为奇数时, * 交换两个索引指向的值 * c.循环b操作,停止条件为 begin > end * 1 & 1 = 1; 0 &...原创 2019-07-10 10:18:20 · 137 阅读 · 0 评论 -
链表中倒数第k个节点
AcWing打卡活动《剑指Offer》打卡活动周二第十题链表中倒数第k个节点/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } *...原创 2019-07-10 10:41:14 · 220 阅读 · 0 评论 -
二叉树的下一个节点
AcWing打卡活动《剑指Offer》打卡活动周一第七题二叉树的下一个节点public TreeNode inorderSuccessor(TreeNode p) { // 中序遍历, 左根右 // 若该节点有右子节点,则遍历该节点的右子节点的子节点 if(p.right != null) { ...原创 2019-06-29 16:12:10 · 117 阅读 · 0 评论 -
用两个栈实现队列
AcWing打卡活动《剑指Offer》打卡活动周一第八题用两个栈实现队列/** * 用两个栈实现队列 * 该题无需考虑时间复杂度,只需要实现操作即可 * create by yifeng */public class Question09 { public static void main(String[] args) { } cl...原创 2019-06-29 16:32:44 · 162 阅读 · 0 评论 -
链表中环的入口结点
AcWing打卡活动《剑指Offer》打卡活动周二第十一题链表中环的入口结点/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * ...原创 2019-07-10 15:33:56 · 140 阅读 · 0 评论 -
旋转数组的最小数字
AcWing打卡活动《剑指Offer》打卡活动周一第十题旋转数组的最小数字/** * 利用旋转数组的特点,左边数组要比右边数组打,结合二分法即可即可解出 **/class Solution { public int findMin(int[] nums) { if(nums.length <= 0) { // 参数校验 ...原创 2019-06-30 14:34:05 · 91 阅读 · 0 评论 -
斐波那契数列
AcWing打卡活动《剑指Offer》打卡活动周一第九题斐波那契数列/** * 1 1 2 3 5 * 如果使用递归,则会多出很多多余的计算 */class Solution { public int Fibonacci(int n) { // 使用从下至上的方式 if(n == 0) { re...原创 2019-06-30 14:47:21 · 318 阅读 · 0 评论 -
周三第十题 分行从上往下打印二叉树 Java
AcWing打卡活动《剑指Offer》打卡活动周三第十题 分行从上往下打印二叉树/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x)...原创 2019-07-19 16:53:55 · 228 阅读 · 0 评论