
剑指offer题目笔记
Allenlzcoder
拒绝拖延症!!!
展开
-
【重点】【回溯】【大数】剑指 Offer17:打印从1到最大的n位数
力扣中描述简单了,本质是考察大数算法。原创 2023-11-30 01:21:22 · 264 阅读 · 0 评论 -
【重点】【单调栈】剑指 Offer 59II:队列的最大值
力扣,https://leetcode.cn/problems/dui-lie-de-zui-da-zhi-lcof/description/与滑动窗口最大值思路一致!原创 2023-11-26 17:47:44 · 179 阅读 · 0 评论 -
【链表】剑指offer18:删除链表指定节点
【代码】【done】剑指offer18:删除链表指定节点。原创 2023-11-25 23:00:36 · 452 阅读 · 0 评论 -
【重点】【位操作】剑指offer56-II:数组中数字出现的次数
有限状态自动机推导式太复杂,略去~原创 2023-11-23 10:38:39 · 214 阅读 · 0 评论 -
【重点】【位操作】剑指Offer56-I:找出数组中2个只出现1次的整数
题目:一个整型数组nums里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。注意:相同的数异或为0,不同的异或为1。0和任何数异或等于这个数本身。原创 2023-11-23 01:26:28 · 282 阅读 · 0 评论 -
【重点】【二分搜索】剑指 Offer 53 - II:0~n-1中缺失的数字
力扣,原创 2023-11-21 22:51:11 · 173 阅读 · 0 评论 -
【重点】【二分查找】剑指offer53:在排序数组中查找数字出现次数
力扣,https://leetcode.cn/problems/zai-pai-xu-shu-zu-zhong-cha-zhao-shu-zi-lcof/description/二分查找,边界问题。原创 2023-11-21 14:24:19 · 107 阅读 · 0 评论 -
【特例】【找规律】剑指offer44:找到第 k 位数字
数学找规律,参考链接:https://leetcode.cn/problems/shu-zi-xu-lie-zhong-mou-yi-wei-de-shu-zi-lcof/solutions/219252/mian-shi-ti-44-shu-zi-xu-lie-zhong-mou-yi-wei-de-6/力扣,https://leetcode.cn/problems/shu-zi-xu-lie-zhong-mou-yi-wei-de-shu-zi-lcof/description/原创 2023-11-20 10:38:40 · 78 阅读 · 1 评论 -
【重点】【LCA】剑指offer68:二叉树最近公共祖先|235. 二叉搜索树的最近公共祖先
LCA(lowest common ancestor)问题力扣,【二叉搜索树】https://leetcode.cn/problems/er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian-lcof/description/【普通二叉树】https://leetcode.cn/problems/er-cha-shu-de-zui-jin-gong-gong-zu-xian-lcof/原创 2023-11-18 20:43:31 · 144 阅读 · 0 评论 -
【DP】剑指offer63:股票的最大利润(121.买卖股票的最佳时机)
力扣188,https://leetcode.cn/problems/gu-piao-de-zui-da-li-run-lcof/description/(注意:本题与主站 121 题相同:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/)动态规划思路;原创 2023-11-15 11:03:20 · 160 阅读 · 0 评论 -
剑指offer47_new:珠宝的最高价值
题目:力扣166,https://leetcode.cn/problems/li-wu-de-zui-da-jie-zhi-lcof/description/现有一个记作二维矩阵 frame 的珠宝架,其中 frame[i][j] 为该位置珠宝的价值。注意:珠宝的价值都是大于 0 的。除非这个架子上没有任何珠宝,比如 frame = [[0]]。每次可以移动到右侧或下侧的相邻位置。到达珠宝架子的右下角时,停止拿取。只能从架子的左上角开始拿珠宝。原创 2023-11-14 00:59:20 · 99 阅读 · 1 评论 -
【重点】【DP】剑指offer46_new:解密数字
题目:力扣165,https://leetcode.cn/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/description/请根据上述规则将密文 ciphertext 解密为字母,并返回共有多少种解密结果。数字 0-25 分别对应字母 a-z。原创 2023-11-14 00:35:41 · 194 阅读 · 0 评论 -
【重点】【DP】剑指offer——面试题43:n个骰子的点数
剑指offer——面试题43:n个骰子的点数【注意】此题再牛客网上没有OnlineJudge,在此补充解法。 题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。...转载 2018-09-06 17:32:08 · 365 阅读 · 0 评论 -
【重点】【大数算法】剑指offer——面试题12:打印1到最大的n位数
剑指offer——面试题12:打印1到最大的n位数此题在牛客网上没有OnlineJudge,在此补充两种做法。 参考网址:https://blog.csdn.net/yanxiaolx/article/details/52049810 题目:输入数字n,按顺序打印出1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 陷阱:用整数会溢出。考虑大数问题,就是输...原创 2018-08-31 21:58:49 · 601 阅读 · 0 评论 -
【重点】二叉树三种遍历方式的迭代与递归实现
剑指offer——复习1:二叉树三种遍历方式的迭代与递归实现本博客转载自:https://blog.csdn.net/xiaominkong123/article/details/51567437 二叉树的三种遍历为:前序遍历,中序遍历和后序遍历。 遍历的实现可分为递归和非递归。递归法与二叉树的定义相似,非递归法采用栈去模拟实现。 定义树节点struct BinaryTreeNo...原创 2018-04-06 22:58:57 · 429 阅读 · 2 评论 -
【重点】【DFS】剑指offer——面试题67——机器人的运动范围
剑指offer——面试题67:机器人的运动范围(回溯法)此题和66题均是典型的回溯法题目,对比记忆思路!class Solution {public: int movingCount(int threshold, int rows, int cols) { bool *visited = new bool[rows * cols]; memset...原创 2018-04-06 17:27:42 · 404 阅读 · 1 评论 -
【重点】【DFS+回溯】剑指offer——面试题66:矩阵中的路径(回溯法)
剑指offer——面试题66:矩阵中的路径(回溯法)1 算法及代码此题是回溯法的典型例题,思路以及代码均是书中所讲。要具体实现很有参考价值,借鉴之! 现在把书中代码贴在下面,并对其中用到的一些既熟悉又陌生的语法知识进行总结。class Solution {public: bool hasPath(char* matrix, int rows, int cols, c...原创 2018-04-06 16:50:26 · 480 阅读 · 1 评论 -
【重点】【单调队列】剑指offer——面试题65:滑动窗口的最大值
剑指offer——面试题65:滑动窗口的最大值Solution1:笨蛋方法啊。。class Solution {public: vector<int> maxInWindows(const vector<int>& num, unsigned int size) { vector&原创 2018-04-05 17:16:13 · 262 阅读 · 0 评论 -
【重点】【堆】剑指offer——面试题64:数据流中的中位数
剑指offer——面试题64:数据流中的中位数Solution1:最笨的方法了。。。class Solution {public: void Insert(int num) { num_stream.push_back(num); } double GetMedian() { sort(num_stream.begin(),num...原创 2018-04-03 11:09:37 · 269 阅读 · 1 评论 -
剑指offer——面试题63:二叉搜索树的第k个结点
剑指offer——面试题63:二叉搜索树的第k个结点Solution1:未认真审题,二叉搜索树是把结点值是有序的。下面的方法虽然笨一点,但思路是对的,很奇怪怎么只能部分AC。。。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x...原创 2018-04-03 10:43:28 · 270 阅读 · 0 评论 -
【重点】【二叉树】剑指offer——面试题62:序列化二叉树(297.二叉树的序列化与反序列化)
剑指offer——面试题62:序列化二叉树刚开始就不太懂序列化是几个意思。。 反序列化的代码不是很懂啊,待会儿问问别人~/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), le...原创 2018-04-02 16:04:08 · 276 阅读 · 1 评论 -
【二叉树】【BFS】剑指offer——面试题61:按之字形顺序打印二叉树
剑指offer——面试题61:按之字形顺序打印二叉树Solution1:基于上一题的解法,缺点:效率低下!/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), ...原创 2018-04-02 10:37:10 · 311 阅读 · 1 评论 -
【BFS】剑指offer——面试题60:把二叉树打印成多行
剑指offer——面试题60:把二叉树打印成多行其实是书上的思路 这种记录每行有几个点的方法真是hin棒棒棒啊~/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(N...原创 2018-04-02 10:04:56 · 333 阅读 · 0 评论 -
【重点】【二叉树】剑指offer——面试题59:对称的二叉树
剑指offer——面试题59:对称的二叉树书中的思路:针对二叉树的前序遍历,定义一种遍历算法,先遍历右子结点再遍历左子结点,并考虑进NULL的情况/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...原创 2018-03-31 15:14:51 · 287 阅读 · 1 评论 -
【重点】【二叉树】剑指offer——面试题58:二叉树的下一个结点
剑指offer——面试题58:二叉树的下一个结点这个题要认真分析一下。。。 Solution1:自己想出来的破算法/*struct TreeLinkNode { int val; struct TreeLinkNode *left; struct TreeLinkNode *right; struct TreeLinkNode *next; ...原创 2018-03-30 23:45:54 · 306 阅读 · 2 评论 -
【链表】剑指offer——面试题57:删除链表中重复的结点
剑指offer——面试题57:删除链表中重复的结点Solution1:自己想的破算法/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: L...原创 2018-03-30 22:31:37 · 317 阅读 · 1 评论 -
【重点】剑指offer——面试题56:链表中环的入口
剑指offer——面试题56:链表中环的入口快慢指针是一类很经典的算法,在这里贴一个讲解的比较清楚的博客: https://www.cnblogs.com/songdechiu/p/6686520.html/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : v...原创 2018-03-30 18:18:07 · 203 阅读 · 2 评论 -
剑指offer——面试题55:字符流中第一个不重复的字符
剑指offer——面试题55:字符流中第一个不重复的字符对此题最大的感想是: 1)区分deque(双端队列)和queue(队列); 2)要熟悉queue的基本函数 此题答案如下:class Solution{public: //Insert one char from stringstream void Insert(char ch) { str_...原创 2018-03-30 11:36:47 · 333 阅读 · 1 评论 -
【todo+低频题】剑指offer——面试题54:表示数值的字符串
剑指offer——面试题54:表示数值的字符串参考网址:https://www.nowcoder.com/profile/9717187/codeBookDetail?submissionId=15761119 利用特殊字符把字符串分割为整数段这个思想值得借鉴!class Solution {public: bool isNumeric(char* string) ...原创 2018-03-29 23:28:31 · 258 阅读 · 0 评论 -
【todo+低频】【难点】剑指offer——面试题53:正则表达式匹配
剑指offer——面试题53:正则表达式匹配这个属于不是那么好做的题目之一。。。参考网址:https://www.nowcoder.com/profile/3639006/codeBookDetail?submissionId=19276572 代码中的注释写的不是太清楚,加一点: 一、当模式中的第二个字符不是“*”时: 1、如果字符串第一个字符和模式中的第一个字符相匹配...原创 2018-03-29 14:32:30 · 472 阅读 · 2 评论 -
【细节】剑指offer——面试题52:构建乘积数组
剑指offer——面试题52:构建乘积数组Solution1:自己想出来的笨蛋算法!class Solution {public: vector<int> multiply(const vector<int>& A) { vector<int> B;原创 2018-03-26 23:55:58 · 411 阅读 · 2 评论 -
剑指offer——面试题51:数组中重复的数字
剑指offer——面试题51:数组中重复的数字Solution1: 在这个题中,变长数组为何无法被初始化,只能用set了。class Solution {public: // Parameters: // numbers: an array of integers // length: the length of...原创 2018-03-26 23:43:14 · 301 阅读 · 1 评论 -
【todo】【难点】剑指offer——面试题49:把字符串转换成整数
剑指offer——面试题49:把字符串转换成整数Solution1:代码写的比较啰嗦。。。。LeetCode上有相似的题目并考虑了溢出,可以参考LeetCode8答案class Solution { //题目没有考虑到溢出的情况,不是很完美呀~但在牛客网上也能AC了~public: int StrToInt(string str) { //1.去掉首尾空格;2.首字符只能是+、-...原创 2018-03-26 23:28:47 · 428 阅读 · 0 评论 -
【todo】【位操作】剑指offer——面试题47:不用加减乘除做加法
剑指offer——面试题47:不用加减乘除做加法Solution1:学习之 书上的思路就很好啊~class Solution {public: int Add(int num1, int num2) { int sum, carry; do { sum = num1 ^ num2; carry = ...原创 2018-03-26 22:35:12 · 761 阅读 · 2 评论 -
【todo】【特例】剑指offer——面试题46:求1+2+...+n
剑指offer——面试题46:求1+2+…+n题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 个人感觉这个题听创新的,现在把集中有代表性的解法总结在这里。Solution1:利用变长数组 C99标准引入了变长数组,它允许使用变量定义数组各维,关于变长数组详见《C Primer Plu...原创 2018-03-26 22:13:21 · 371 阅读 · 1 评论 -
【难点】【约瑟夫问题】【DP】剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)
剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)Solution1:自己想的垃圾算法class Solution {public: int LastRemaining_Solution(int n, int m) { vector<int> nums(n,0); int temp_count = 0, count = ...原创 2018-03-26 11:18:02 · 385 阅读 · 2 评论 -
【细节】剑指offer——面试题44:扑克牌顺子
剑指offer——面试题44:扑克牌顺子思路关键:这副扑克共有56张class Solution {public: bool IsContinuous( vector<int> numbers ) { //此幅牌共56张,13*4 + 2 + 2 = 56 set<int> kind_no_zero; int num_of_...原创 2018-03-25 23:22:15 · 346 阅读 · 0 评论 -
剑指offer——面试题42-2:翻转单词顺序
剑指offer——面试题42-2:翻转单词顺序Solution1:自己想的垃圾算法 对于c++中的string对象,substr()和erase()函数都是很常用的,常见用法必须熟练掌握!class Solution {public: string ReverseSentence(string str) { string str_copy = str, temp...原创 2018-03-25 22:56:30 · 322 阅读 · 0 评论 -
剑指offer——面试题42-1:左旋转字符串
剑指offer——面试题42-1:左旋转字符串自己想的垃圾算法class Solution {public: string LeftRotateString(string str, int n) { int i = 0; for(i = 0; i < n; i++) { LeftMoveOne(str); ...原创 2018-03-25 22:12:55 · 262 阅读 · 0 评论 -
剑指offer——面试题41-2:和为S的两个数字
剑指offer——面试题41-2:和为S的两个数字算法:双指针的经典用法class Solution {public: vector<int> FindNumbersWithSum(vector<int> array,int sum) { int low = 0, high = array.size() - 1; vec...原创 2018-03-25 21:55:04 · 244 阅读 · 0 评论