![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
SHIXU_SHI
善良!正直!
展开
-
剑指41. 数据流中的中位数
1、题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两种操作的数据结构: void addNum(int num) - 从数据流中添加一个整数到数据结构中。 double findMedian() - 返回目前所有元素的中位数。 2、示原创 2021-06-21 23:46:09 · 69 阅读 · 0 评论 -
剑指 38. 字符串的排列
题目描述 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 输入:s = “abc” 输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”] class Solution { public: vector<string> ans; vector<bool> flag; vector<string> permutation(string s) { .原创 2021-06-18 08:26:06 · 78 阅读 · 0 评论 -
剑指30. 包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例 MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.min(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返.原创 2021-06-14 20:08:40 · 77 阅读 · 0 评论 -
剑指07. 重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right.原创 2021-06-12 21:16:21 · 57 阅读 · 1 评论 -
剑指16. 数值的整数次方
题目描述 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。 示例 输入:x = 2.00000, n = 10 输出:1024.00000 输入:x = 2.00000, n = -2 输出:0.25000 解释:2-2 = 1/22 = 1/4 = 0.25 代码 class Solution { public: double myPow(double x, int n) { if(x==0) return .原创 2021-06-12 21:08:33 · 52 阅读 · 0 评论 -
剑指16. 替换空格
题目描述 请实现一个函数,把字符串中的每个空格替换成"%20"。 你可以假定输入字符串的长度最大是 1000。 注意输出字符串的长度可能大于 1000。 样例 输入:“We are happy.” 输出:“We%20are%20happy.” 方法:在原字符串的基础上修改 class Solution { public: string replaceSpaces(string &str) { int sum=0; int len=str.lengt.原创 2021-06-10 15:08:54 · 56 阅读 · 0 评论 -
15. 二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 样例 输入数组: [ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15] ] 如果输入查找数值为7,则返回true, 如果输入查找数值为5,则返回false。 class Solution { public: bool searchArray(vector<vect.原创 2021-06-10 14:37:26 · 67 阅读 · 0 评论 -
2021-06-10
题目 给定一个长度为 n+1 的数组nums,数组中所有的数均在 1∼n 的范围内,其中 n≥1。 请找出数组中任意一个重复的数,但不能修改输入的数组。 样例 给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。 返回 2 或 3。 法一 class Solution { public: int duplicateInArray(vector<int>& nums) { int l=1,r=nums.size()-1; .原创 2021-06-10 10:54:42 · 113 阅读 · 0 评论 -
剑指13. 找出数组中重复的数字
菲关系好原创 2021-06-10 09:39:02 · 63 阅读 · 0 评论