随笔分类 -  剑指offer

摘要:剑指 Offer 15. 二进制中1的个数 知识点:数学;位运算 题目描述 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为 汉明重量).)。 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定 阅读全文 »
posted @ 2021-08-13 22:01 Curryxin 阅读(62) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 65. 不用加减乘除做加法 知识点:数学;位运算 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。 示例 输入: a = 1, b = 1 输出: 2 解法一:位运算 不能用四则运算,那其实可以用的只要逻辑运算和位运算了, 阅读全文 »
posted @ 2021-08-13 21:55 Curryxin 阅读(78) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 40. 最小的k个数 知识点:Top-K;数组;排序;分治;堆;单调; 题目描述 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 输入:arr = [3,2,1], k = 2 输出:[ 阅读全文 »
posted @ 2021-08-12 16:54 Curryxin 阅读(44) 评论(0) 推荐(0) 编辑
摘要:239. 滑动窗口的最大值 知识点:队列;滑动窗口;单调 题目描述 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 阅读全文 »
posted @ 2021-08-12 09:12 Curryxin 阅读(671) 评论(2) 推荐(0) 编辑
摘要:剑指 Offer 30. 包含min函数的栈 知识点:栈;单调 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。。 示例 MinStack minStack = new MinStack() 阅读全文 »
posted @ 2021-08-11 22:26 Curryxin 阅读(34) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 59 - II. 队列的最大值 知识点:队列;单调 题目描述 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_val 阅读全文 »
posted @ 2021-08-11 21:58 Curryxin 阅读(53) 评论(0) 推荐(0) 编辑
摘要:53. 最大子序和(剑指 Offer 42) 知识点:数组;前缀和;哨兵;动态规划;贪心;分治; 题目描述 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 阅读全文 »
posted @ 2021-08-11 19:16 Curryxin 阅读(349) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 53 - II. 0~n-1中缺失的数字 知识点:数组,二分查找; 题目描述 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 输入: [0,1,3] 输出: 阅读全文 »
posted @ 2021-08-05 10:37 Curryxin 阅读(86) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 53 - I. 在排序数组中查找数字 I 知识点:数组,二分查找; 题目描述 统计一个数字在排序数组中出现的次数。 示例 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 输入: nums = [5,7,7,8,8,10], target = 阅读全文 »
posted @ 2021-08-05 10:26 Curryxin 阅读(109) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 55 - II. 平衡二叉树 知识点:二叉树,递归 题目描述 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 示例 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / 阅读全文 »
posted @ 2021-07-27 13:46 Curryxin 阅读(40) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 55 - I. 二叉树的深度 知识点:二叉树,递归 题目描述 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 示例 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3, 阅读全文 »
posted @ 2021-07-27 13:13 Curryxin 阅读(71) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 28. 对称的二叉树 知识点:二叉树;递归 题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 示例 输入:root = [1,2,2,3,4,4,3] 输出:true 输入:root = [1,2,2,null,3,null, 阅读全文 »
posted @ 2021-07-27 13:00 Curryxin 阅读(74) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 27. 二叉树的镜像 知识点:二叉树;递归;栈 题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 示例 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 解法一:递归法 函数功能:二叉树镜像; 1、终止条件:root==null 阅读全文 »
posted @ 2021-07-27 12:29 Curryxin 阅读(40) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 09. 用两个栈实现队列 知识点:栈;队列; 题目描述 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )。 阅读全文 »
posted @ 2021-07-26 22:43 Curryxin 阅读(66) 评论(0) 推荐(0) 编辑
摘要:260. 只出现一次的数字 III(剑指 Offer 56 -I) 知识点:数组;位运算;消消乐 题目描述 给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 进阶:你的算法应该具有线性时间复杂度。你能否仅使 阅读全文 »
posted @ 2021-07-23 22:32 Curryxin 阅读(88) 评论(0) 推荐(0) 编辑
摘要:137. 只出现一次的数字 II(剑指offer 56-II) 知识点:哈希表;位运算 题目描述 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 输 阅读全文 »
posted @ 2021-07-23 21:54 Curryxin 阅读(214) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 58 - II. 左旋转字符串 知识点:字符串; 题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 示例 输入: s 阅读全文 »
posted @ 2021-07-22 21:45 Curryxin 阅读(46) 评论(0) 推荐(0) 编辑
摘要:151. 翻转字符串里的单词 知识点:字符串;双指针 题目描述 给你一个字符串 s ,逐个翻转字符串中的所有 单词 。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。 说明: 输入字符串 s 可以在前面 阅读全文 »
posted @ 2021-07-21 22:49 Curryxin 阅读(84) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 05. 替换空格 知识点:; 题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 输入:s = "We are happy." 输出:"We%20are%20happy." 解法一: 因为我们不知道最后替代后的长度是多少,所以可以用可变长的数组String 阅读全文 »
posted @ 2021-07-21 21:42 Curryxin 阅读(34) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 52. 两个链表的第一个公共节点 知识点:链表; 题目描述 输入两个链表,找出它们的第一个公共节点。 如下面的两个链表: 示例 示例1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 阅读全文 »
posted @ 2021-07-21 09:44 Curryxin 阅读(46) 评论(0) 推荐(0) 编辑

Live2D
欢迎阅读『剑指offer』
点击右上角即可分享
微信分享提示