上一页 1 2 3 4 5 6 7 8 9 ··· 26 下一页
摘要:一、题目 1、审题 2、分析 给出一个二维数组,每一行的元素、每一列的元素均有序。在此数组中查找 target 元素。 二、解答 1、思路 方法一、 在每一行中用二分查找法。 方法二、 从二维数组的右上角开始向前、向下定位: ①、若 target 小于当前元素,则 target 不可能在当前列,因为 阅读全文
posted @ 2018-11-11 17:45 skillking2 阅读(47) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整形数组,一个窗口大小 k,此窗口每次包含 k 个连续元素,依次向后移动,将每次窗口中的最大元素进行记录。 二、解答 1、思路 方法一、 采用双端队列 Deque 存储每次窗口中最大元素的下标 i,且队列中存储的下标是依次增大的。 ①、循环判断队列中元素值 < 阅读全文
posted @ 2018-11-11 16:53 skillking2 阅读(52) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整形数组,用另一个数组存储所给数组的除去当前下标元素外的所有元素的乘积。尝试用 O(n) 时间复杂度,常数额外空间。 二、解答 1、思路 方法一、 ① 新建数组 result,使用循环,为 result 赋值, result[i] = nums[0] * num 阅读全文
posted @ 2018-11-10 22:26 skillking2 阅读(37) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 求二叉树中 p、q 节点的最小共同祖先节点。 二、解答 1、思路 方法一、 采用循环查找。 ①、若 root 为 p 或者 q ,则返回 root ②、若 p、q 分布在 root 不同的左右子树,则返回 root ③、若 p、q 均为 root 左子树,则 root 阅读全文
posted @ 2018-11-10 14:28 skillking2 阅读(52) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一棵二叉查找树中的两个节点,求出这两个节点的最小共同祖先。 二、解答 1、思路 方法一、 当 p、q 中的一个是 root 节点时,或者 p、q 一个为root 左子树节点,一个为右子树节点,则 root 才是 他们的共同最小祖先。 方法二、 p、q一个为左孩子、一 阅读全文
posted @ 2018-11-09 16:53 skillking2 阅读(56) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、判断链表中的节点结构是否是回文形式。 二、解答 1、思路 ①、采用两个指针 fast、slow向后移动,最终 slow 移动到了中间的位置(可能右边节点数多 1 个) ②、将 slow 右边的所有节点进行翻转,最终 slow 指向右端的起始节点,fast 指向 head ③、 阅读全文
posted @ 2018-11-09 16:09 skillking2 阅读(35) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 使用栈来实现队列的功能。 二、解答 1、思路 方法一、 只修改 Pop 方法,使得栈中元素排序为队列的规则。 方法二、 使用两个 Stack,input、output。 push: 压入 input 栈。 pop、peek: 若 output 不为空,则对 output 阅读全文
posted @ 2018-11-08 17:32 skillking2 阅读(32) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 判断给出的数值是否为 2 的幂次方。 二、解答 1、思路 方法一、 采用 n & (n-1)每次消掉 n 最右边一个 1 的特点。而 2 的幂次方的二进制形式都是只包含一个 1. eg:2、4、8、16、、、 方法二、 正整数中,2 的幂次方最大为 2 << 30。 判 阅读全文
posted @ 2018-11-08 17:01 skillking2 阅读(32) 评论(0) 推荐(0) 编辑
摘要:一、n-1发生了什么 ①、二进制数 n 变成 n-1 后,如果最后一位是 0,将向前一位借 2,2-1=1。最后一位为1。如果前一位为0,将继续向前一位借2,加上本身少掉的1.则变为1。一直遇到1。减为0. 所以 二进制 xxxx10000 - 1 = xxxx01111 ②、n&n-1 按照上述 阅读全文
posted @ 2018-11-08 16:51 skillking2 阅读(1311) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一棵二分查找树,求出其中第 k 小的节点数值。 二、解答 1、思路 方法一、 使用 Stack 进行中序遍历。若常访问,则可以采用一个 List 存储。 方法二、 采用二分查找。 ①、先统计左子树长度 m,若 k < m + 1,则要查找的元素在左子树中。 ②、若 阅读全文
posted @ 2018-11-08 11:43 skillking2 阅读(59) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 26 下一页