剑指offer
以工作为目的,坚持学习,许个大愿
葡萄味儿的柚子
这个作者很懒,什么都没留下…
展开
-
剑指10-斐波那契数列(著名的兔子繁殖问题)C++
斐波那契数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出:5来源:力扣原创 2020-07-31 21:55:41 · 837 阅读 · 0 评论 -
剑指09-两个栈实现队列--C++
两个栈实现队列题目描述:使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop(); // 返回 1queue.empty(); // 返回 false来源:力扣(L原创 2020-07-29 21:32:05 · 171 阅读 · 0 评论 -
剑指07-重建二叉树递归Python
重建二叉树题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:3/ 9 20/ 15 7来源:力扣(LeetCode)链接:重建二叉树题记递归解析:递推参数: 前序遍历中根节点的索引pre_root、中序遍历左边界in_left、中序遍历右边界in_right。原创 2020-07-28 17:15:14 · 171 阅读 · 0 评论 -
剑指05-替换字符串的空格-C++报错‘std::logic_error‘
替换字符串的空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”来源:力扣(LeetCode)链接:替换字符串的空格题记:先遍历一遍字符串,统计这个字符串的空格数,由此我们可以得到新的字符串的总长度。每替换一个空格,字符串长度增加2。从后往前遍历,一个指针P1指向原来字符串的末尾,另一个指针P2指向新的字符串的末尾。P1向前遍历,逐个将字符复制到P2所指位置直到遇到空格,把P1向前移原创 2020-07-27 13:53:32 · 552 阅读 · 0 评论 -
剑指06-从尾到头打印链表--递归-栈-C++/Python
从尾到头打印链表题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]题记:从尾到头,第一想到的数据结构应该是栈,栈的特点是先入后出,所以先来复习一下栈的基本操作:操作描述s.empty()如果栈为空返回true,否则返回falses.size()返回栈中元素的个数s.pop()删除栈顶元素但不返回其值s.top()返回栈顶的元素,但不删除该元素s.pus原创 2020-07-26 11:12:14 · 202 阅读 · 0 评论 -
剑指04-二维数组中的查找C++/python
二维数组中的查找题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 t原创 2020-07-25 11:06:47 · 121 阅读 · 0 评论 -
剑指03-数组中重复的数字-力扣
返回数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3来源:力扣(LeetCode)链接:数组中重复的数字题记:有题目要求时间复杂度O(n),空间复杂度O(1),侠义的理解为只遍历一次,不申请新的空间,好吧。如果能排序的话就很快搞定了,那么顺着这个思路走,把数字归为到对原创 2020-07-22 22:13:20 · 206 阅读 · 0 评论