摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重复结点被删除之后,链表如图3.4(b)所示。 思路 设置一个preNode,用于记录当前结点的前一个结点,再设置一个布尔变量ne 阅读全文
posted @ 2018-09-18 23:03 华仔要长胖 阅读(2502) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 思路 通常那样从头开始查找删除需要的时间为O(n),要在O(1)时间删除某结点,可以这样实现:设待删除结点i的下一个结 阅读全文
posted @ 2018-09-18 16:27 华仔要长胖 阅读(1098) 评论(2) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 思路 陷阱:n过大时是大数问题,不能简单用int或者long数据输出,需要采用字符串或 阅读全文
posted @ 2018-09-18 09:25 华仔要长胖 阅读(2130) 评论(2) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 思路 这道题很容易实现,但需要 阅读全文
posted @ 2018-09-17 19:27 华仔要长胖 阅读(1284) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。 思路 遇到与二进制有关的题目,应该想到位运算(与、或、异或 阅读全文
posted @ 2018-09-17 15:48 华仔要长胖 阅读(1608) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 给你一根长度为n绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]*k[1]*…*k[m]可能的最大乘积是多少?例如当绳 阅读全文
posted @ 2018-09-17 10:31 华仔要长胖 阅读(2376) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 地上有一个m行n列的方格。一个机器人从坐标(0, 0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 阅读全文
posted @ 2018-09-17 08:55 华仔要长胖 阅读(1748) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不 阅读全文
posted @ 2018-09-16 22:50 华仔要长胖 阅读(3526) 评论(0) 推荐(0) 编辑
摘要: 快速排序一般采用递归方法(详见快速排序及其优化),但递归方法一般都可以用循环代替。本文实现了java版的非递归快速排序。 更多:数据结构与算法合集 思路分析 采用非递归的方法,首先要想到栈的使用,通过阅读递归调用部分的代码,思考如何用栈来代替。递归调用的核心代码是 pivot = partition 阅读全文
posted @ 2018-09-15 22:29 华仔要长胖 阅读(7721) 评论(0) 推荐(0) 编辑
摘要: 本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5} 阅读全文
posted @ 2018-09-14 21:50 华仔要长胖 阅读(3532) 评论(1) 推荐(0) 编辑